Zabbix6.0监控入门

1. Zabbix 监控系统入门简介

  • Zabbix 是一个基于 WEB 界面的提供分布式系统监控的企业级的开源解决方案,Zabbix 能监视各种网络参数,保证服务器系统的安全稳定的运行,并提供灵活的通知机制以让 SA 快速定位并解决存在的各种问题。Zabbix 分布式监控系统的优点如下:

    1. 支持自动发现服务器和网络设备;
    2. 支持底层自动发现;
    3. 分布式的监控体系和集中式的 WEB 管理;
    4. 支持主动监控和被动监控模式;
    5. 服务器端支持多种操作系统:Linux、Solaris、HP-UX、AIX、FreeBSD、OpenBSD、MAC 等;
    6. Agent 客户端支持多种操作系统:Linux、Solaris、HP-UX、AIX、FreeBSD、Windows 等;
    7. 基于 SNMP、IPMI 接口方式、Agent 方式;
    8. 安全的用户认证及权限配置;
    9. 基于 WEB 的管理方法,支持自由的自定义事件和邮件、短信发送;
    10. 高水平的业务视图监控资源,支持日志审计,资产管理等功能;
    11. 支持高水平 API 二次开发、脚本监控、自 Key 定义、自动化运维整合调用。

2. Zabbix 监控组件及流程

  • Zabbix 监控组件如图所示,主要由五大组件,分别是 Zabbix server端、Zabbix Proxy、Agent 客户端,其中 Zabbix Server 端包括:WEB GUI、Database、Zabbix_Server

在这里插入图片描述

  • Zabbix 监控系统具体监控系统流程如图所示:

在这里插入图片描述

  • Zabbix 监控完整流程包括:Agentd 安装在被监控的主机上,Agent 负责定期收集客户端本地各项数据,并发送到 Zabbix Server 端,Zabbix Server 收到数据,将数据存储到数据库中,用户基于 Zabbix WEB 可以看到数据在前端展现图像。

  • Zabbix 监控某个具体的项目,该项目会设置一个触发器阀值,当被监控的指标超过该触发器设定的阀值,会进行一些必要的动作,动作包括:邮件、微信报警或者执行命令等操作。如下为 Zabbix 完整监控系统,各个部分负责的工作:

    1. Zabbix Server:负责接收 agent 发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行;
    2. Database Storage:专用于存储所有配置信息,以及存储由 Zabbix 收集到的数据;
    3. Web interfaceZabbixGUI 接口,通常与 Server 运行在同一台主机上;
    4. Proxy:常用于分布监控环境中,代理 Server 收集部分被监控端的监控数据并统一发往 Server 端;
    5. Zabbix Agent:部署在被监控主机上,负责收集本地数据并发往 Server端或 Proxy 端;
  • Zabbix 监控部署在系统中,会包含常见的四个程序:zabbix_server 、zabbix_get、zabbix_agentd 、zabbix_proxy、zabbix_sender 等。四个程序启动后分别对应四个进程,如下为每个进程的功能:

    1. Zabbix_server:Zabbix 服务端守护进程,其中 zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy 的数据最终均是提交给Zabbix_Server
    2. Zabbix_Agentd:客户端守护进程,负责收集客户端数据,例如收集 cpu负载、内存、硬盘使用情况等;
    3. Zabbix_getZabbix 数据获取工具,单独使用的命令,通常在 server或者 proxy 端执行获取远程客户端信息的命令;
    4. Zabbix_senderzabbix 数据发送工具,用于发送数据给 server 或者proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致 zabbix超时。于是我们在脚本执行完毕之后,使用 sender 主动提交数据;
    5. Zabbix_proxyzabbix 分布式代理守护进程,分布式监控架构需要部署 Zabbix_Proxy

3. Zabbix 监控方式及数据采集

  • Zabbix 分布式监控系统监控客户端的方式常见有三种,分别是 Agent 方式、SNMP、IPMI 方式,三种方式特点如下:

    1. AgentZabbix 可以基于自身 Zabbix_agent 客户端插件监控 OS 的状态,例如 CPU、内存、硬盘、网卡、文件等;
    2. SNMPZabbix 可以通过简单网络管理协议(Simple Network Management Protocol,SNMP)协议监控网络设备或者 windows 主机等,通过设定 SNMP 的参数将相关监控数据传送至服务器端,交换机、防火墙等网络设备一般都支持 SNMP 协议;
    3. IPMI:智能平台管理接口(Intelligent Platform Management Interface,IPMI)即主要应用于设备的物理特性,包括:温度、电压、电扇工作状态、电源供应以及机箱入侵等。IPMI 最大的优势在于无论OS 在开机还是关机的状态下,只要接通电源就可以实现对服务器的监控;
  • Zabbix 监控客户端分为主动监控与被动监控,主被动模式以客户端为参照,Zabbix 监控客户端默认为被动模式,可以修改为主动模式,只需要在客户端配置文件中添加。可以关闭被动模式的方法:在配置文件中加入 StartAgents=0,即为关闭被动模式。主被动监控模式区别如下:

    1. Zabbix 主动模式:Agent 主动请求 server 获取主动的监控项列表,并主动将监控项内需要检测的数据提交给 server/proxyzabbix agent首先向 ServerActive 配置的 IP 请求获取 active items,获取并提交active tiems 数据值 server 或者 proxy
    2. Zabbix 被动模式:Serveragent 请求获取监控项的数据,agent 返回数据,Server打开一个TCP连接,Server发送请求agent.pingAgent接收到请求并且响应,Server 处理接收到的数据。

4. Zabbix 监控平台概念

  • Zabbix 监控系统包括很多监控概念,掌握 Zabbix 监控概念能对 Zabbix 监控快速的理解,如下为 Zabbix 常用术语及解。
常用术语解释
主机(host)被监控的网络设备,可以写 IP 或者 DNS
主机组(host group)主机组用于管理主机,可以批量设置权限
监控项(item)具体监控项,items 值由独立的 keys 进行识别
触发器(trigger)为某个 items 设置触发器,达到触发器会执行action 动作
事件(event)例如达到某个触发器,称之为一个事件
动作(action)对于特定事件事先定义的处理方法,默认可以发送信息及发送命令
报警升级(escalation)发送警报或执行远程命令的自定义方案,如隔 5分钟发送一次警报,共发送 5 次等
媒介(media)发送通知的方式,可以支持 Mail、SMS、Scripts等
通知(notification)通过设置的媒介向用户发送的有关某事件的信息
远程命令达到触发器,可以在被监控端执行命令
模板(template)可以快速监控被监控端,模块包含:item、trigger、graph、screen、application
web 场景(web scennario)用于检测 web 站点可用性,监控 HTTP 关键词
web 前端(frontend)Zabbix 的 web 接口
图形(graph)监控图像
屏幕(screens)屏幕显示
幻灯(slide show)幻灯显示

5. Zabbix6.0 监控平台部署

IP地址服务
192.168.10.10nginx、php-fpm、mysql、zabbix-server
192.168.10.20zabbix-agent

5.1. 关闭防火墙

#关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service

5.2. 部署 Nginx + PHP 环境并测试

#安装nginx
cat > /etc/yum.repos.d/nginx.repo << 'EOF'
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF

yum  -y install  nginx

#安装 php
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum install -y epel-release
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-gd php72w-mbstring php72w-pdo php72w-xml php72w-fpm php72w-mysqlnd php72w-opcache php72w-ldap php72w-bcmath

#修改nginx配置文件
rm -rf /etc/nginx/conf.d/default.conf
vim  /etc/nginx/conf.d/zabbix.conf
   server {
      listen       80;
      server_name  sxy.zabbix.com;
      root        /usr/share/nginx/html;
      location / {
        index  index.php index.html index.htm;
      }
      location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
      }
    }


#修改 php 配置
vim  /etc/php-fpm.d/www.conf
user = nginx
group = nginx
listen = 0.0.0.0:9000

vim /etc/php.ini
max_execution_time = 300		
max_input_time = 600			
post_max_size = 80M				
date.timezone = Asia/Shanghai	

#创建测试文件,启动服务
vim /usr/share/nginx/html/index.php
<?php
phpinfo();
?>
systemctl start nginx   php-fpm

5.2.1. 测试访问

  • 修改C:\Windows\System32\drivers\etc\hosts
  • 添加以下内容:192.168.10.10 sxy.zabbix.com
  • 打开浏览器访问:http://sxy.zabbix.com/index.php

在这里插入图片描述

5.3. 安装数据库并配置

#安装mysql
yum  -y  install  https://repo.mysql.com/mysql80-community-release-el7-7.noarch.rpm
yum -y install mysql-community-server
#启动mysql
systemctl start mysqld
#查询mysql的默认密码为:ueFgj11+,k1l
grep "pass" /var/log/mysqld.log 
2024-04-08T08:30:06.031992Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ueFgj11+,k1l
#修改密码和密码策略
mysql -uroot -p    ---回车后,输入ueFgj11+,k1l
#修改密码
alter user 'root'@'localhost' identified by '123456Qaz.';
#修改密码策略
vim  /etc/my.cnf
添加以下内容
validate_password.policy=0
validate_password.length=4
#重启mysql
systemctl  restart  mysqld
#创建用户和数据库并授权
create database zabbix charset utf8;
create user 'zabbix'@'localhost' identified with mysql_native_password by 'zabbix';
grant all on zabbix.* to 'zabbix'@'localhost';

5.4. 安装 Zabbix 相关软件包

#下载zabbix6.0源码包
cd   /data
wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.28.tar.gz
tar  -xf  zabbix-6.0.28.tar.gz
#安装依赖包
yum install -y mysql-devel pcre-devel openssl-devel zlib-devel libxml2-devel net-snmp-devel net-snmp libssh2-devel OpenIPMI-devel libevent-devel openldap-devel libcurl-devel fping gcc gcc-c++ make
#创建用户
useradd -s /sbin/nologin -M zabbix
#编译安装
cd /data/zabbix-6.0.28/
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent  --with-mysql  --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
make && make install
ln -s /usr/local/zabbix/sbin/zabbix_* /usr/local/sbin/

#导入zabbix初始数据

mysql -uroot -p123456Qaz. zabbix <  /data/zabbix-6.0.28/database/mysql/schema.sql
mysql -uroot -p123456Qaz. zabbix <  /data/zabbix-6.0.28/database/mysql/images.sql
mysql -uroot -p123456Qaz. zabbix <  /data/zabbix-6.0.28/database/mysql/data.sql

#修改配置文件指定数据库:
cp -rp  /usr/local/zabbix/etc/zabbix_server.conf  /usr/local/zabbix/etc/zabbix_server.conf.bak
vim   /usr/local/zabbix/etc/zabbix_server.conf 
 DBHost=localhost
 DBName=zabbix
 DBUser=zabbix
 DBPassword=zabbix
 #准备 systemctl 服务管理文件
 cat > /usr/lib/systemd/system/zabbix-server.service << EOF
[Unit]
Description=Zabbix Server with MySQL DB
After=syslog.target network.target mysqld.service

[Service]
Type=simple
ExecStart=/usr/local/zabbix/sbin/zabbix_server -f
User=zabbix

[Install]
WantedBy=multi-user.target
EOF

#启动zabbix_server服务
systemctl start zabbix-server.service
#查询是否启动成功
netstat -ntlp | grep zabbix
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      1669/zabbix_server  
tcp6       0      0 :::10051                :::*                    LISTEN      1669/zabbix_server

5.5. 迁移zabbix的前端代码至/usr/share/nginx/html

#删除测试文件
rm -rf /usr/share/nginx/html/*
#把zabbix前端代码移到/usr/share/nginx/html/
mv /data/zabbix-6.0.28/ui/*  /usr/share/nginx/html/
#修改前端代码所属组所属主
chown -R nginx. /usr/share/nginx/html/
#重启nginx
systemctl  restart nginx

5.6. 打开浏览器访问sxy.zabbix.com

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 解决zabbix显示图像下边文字乱码情况:
cd /usr/share/nginx/html/assets/fonts/
备份默认语言
mv  DejaVuSans.ttf   DejaVuSans.ttf.bak
上传新的语言
进入windows C:\Windows\Fonts目录下下载自己想要的语言传到服务器上并改成系统默认语言的名字
 mv  SIMSUN.TTC   DejaVuSans.ttf

6. 添加监控主机

#安装zabbix-agent
yum -y install zabbix6.0-agent.x86_64
#修改配置文件
vim /etc/zabbix_agentd.conf
server=192.168.10.10      #指定了Zabbix代理将要与之通信的Zabbix服务器的主机名或IP地址
ServerActive=192.168.10.10     #它用于主动模式下,即Zabbix代理会主动向Zabbix服务器发送数据
Hostname=10.20     #Hostname的设置则帮助Zabbix服务器识别来自哪个设备的监控数据

#启动服务
systemctl start zabbix-agent.service

7. 快速入门

7.1. 登录和配置用户

7.1.1. 登录

在这里插入图片描述

  • 这是Zabbix的“欢迎”界面。输入用户名 Admin 以及密码 zabbix 以作为 Zabbix超级用户登录。将授予访问配置和管理菜单的权限

7.1.2. 防止暴力破解

  1. 为了防止暴力破解和词典攻击,如果发生连续五次尝试登录失败,Zabbix界面将暂停30秒。
  2. 在下次成功登录后,将会在界面上尝试登录失败的IP地址。

7.1.3. 创建用户

  • 可以在管理 → 用户 下查看用户信息
    在这里插入图片描述
  • 点击 创建用户添加一个新用户
    在创建的用户表单中,请确保将你的用户添加到现有的 用户组, 例如 ‘Zabbix administrators’.
    在这里插入图片描述
  • 权限选项卡有一个必填字段角色。该角色决定用户可以查看哪些前端元素,以及允许用户执行哪些操作。点击选择,然后从列表中选择一个角色。例如,选择Admin role以允许访问除管理之外的所有Zabbix前端部分。稍后,你可以修改权限或创建更多用户角色。选择角色后,权限将显示在同一选项卡中:
    在这里插入图片描述

7.2. 新建主机

  • Zabbix中的主机是一个你想要监控的网络实体(物理的,或者虚拟的)。Zabbix中,对于主机的定义非常灵活。它可以是一台物理服务器,一个网络交换机,一个虚拟机或者某些应用程序。

7.2.1. 添加主机

  • Zabbix中,可以通过配置 → 主机或者监测 → 主机,查看已配置的主机信息。默认已有一个名为’Zabbix server’的预先定义好的主机。但我们需要学习如何添加另一个。
  • 点击创建主机来新增一台主机。将会展示出一个主机配置表。
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 其他操作可以查询我的zabbix40的相关文档,里面有自定义监控项等操作,这里就不掩饰了,基本操作一样。
  • 12
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值