一、什么是Zbbix
Zabbix 是企业级开源分布式监控软件,由Alexei Vladishev开发,采用Server/Client架构,用来监控服务器、网络设备、数据库、中间件、网站、云资源等IT基础设施,采集指标、绘图、阈值告警。

二、Zbbix核心组件
 
1. Zabbix Server(核心服务端)
整个监控平台的中枢。负责:接收监控数据、计算触发器阈值、判断是否触发告警、管理所有主机/模板配置、下发采集任务。所有数据最终汇总到Server。

2. Zabbix Database(数据库,MySQL)
存放全部配置信息、采集到的监控历史数据、告警事件。也就是你后面要创建zabbix库、导入zabbix数据库脚本。

3. Zabbix Web(Web前端)
基于PHP,Nginx/Apache作为web服务器。提供可视化页面:添加主机、配置监控项、查看图表、查看告警、管理模板。就是你当前配置nginx+php72w的这部分。

4. Zabbix Agent(被监控端代理程序)
部署在被监控的服务器上,分Agent(C语言)、Agent2(Go语言带插件)。负责在本机采集CPU、内存、磁盘、进程等本地指标,主动上报给Server;也支持被动模式,由Server主动拉取数据。

- 被动模式:Server主动连Agent获取数据

- 主动模式:Agent定时主动把数据推送给Server(大规模环境推荐主动模式,减轻server压力)

5. Zabbix Proxy(可选,分布式代理)
跨机房、跨地域大规模集群使用。作为数据中转站,接收多个Agent上报数据,临时缓存,再转发给Zabbix Server。可以分担Server压力,解决跨网段防火墙问题。Proxy本身不存储永久数据。

6. Zabbix Java Gateway(可选)
专门用来监控Java应用(JVM),Server本身无法直接采集JMX指标,需要Java Gateway作为中间代理。

7. 辅助工具: zabbix_get (命令行手动获取监控项,调试)、 zabbix_sender (自定义脚本推送监控数据)

三、Zabbix四大核心概念
 
1. Host(主机):被监控对象,Linux服务器、交换机、MySQL实例,在Web页面创建主机。

2. Item(监控项):具体采集指标,例如 cpu.util 、 memory.free 、磁盘使用率。每个item有采集周期、数据类型。

3. Trigger(触发器):阈值判断规则。例如:内存空闲小于500M就触发问题。 {web01:vm.memory.size[free].last()} < 524288000 。触发器状态:OK / PROBLEM。

4. Action(动作):触发器触发告警之后执行操作。比如发送邮件、钉钉/企业微信告警,执行远程命令。

四、监控采集方式
 
1. Zabbix Agent(Linux服务器首选,采集系统指标)

2. SNMP:网络设备(交换机、路由器,设备不用装agent)

3. ICMP Ping:主机存活检测

4. TCP端口检查:检测端口是否监听(nginx 80端口、mysql3306)

5. HTTP/WEB监控:监控网站访问状态、响应时间(就是你现在搭建的zabbix web页面)

6. JMX:Java应用JVM监控,依赖Java Gateway

7. 自定义脚本:shell/python脚本,zabbix_sender上报自定义指标
 
五、基础工作流程
 
1. 管理员在Zabbix Web界面添加主机,绑定模板(Item、触发器),配置存入MySQL数据库。

2. Zabbix Server读取数据库配置,调度采集任务。

3. 被监控主机上Agent按照周期采集指标,上报给Server(主动模式);或者Server主动拉取(被动模式)。

4. Server收到监控数据,存入数据库。

5. Server持续计算Trigger触发器:指标达到阈值 → 状态变为PROBLEM。

6. 触发Action动作,推送告警通知。

7. 用户在Web前端查看监控图表、告警事件。
 
六、两种部署架构
 
1. 单机架构
Zabbix Server、MySQL、Zabbix Web全部部署在同一台虚拟机,适合学习、小规模环境,几十台以内主机监控。也就是你这套:nginx + php7.2 + mysql + zabbix-server

2. 分布式Proxy架构(生产大规模)
多机房,每个机房部署一台Zabbix Proxy,机房内所有机器Agent上报给Proxy,Proxy汇总转发给中心Zabbix Server。优势:跨机房网络延迟低、分担中心Server压力、隔离网络。
 
七、优缺点
 
✅ 优点
 
1. 开箱即用,内置大量模板,Linux、MySQL、Nginx直接监控;

2. 告警体系成熟,支持邮件、钉钉、短信;

3. 自带绘图,历史数据持久化存储;

4. 支持自定义脚本扩展,简单易上手;

5. Web界面功能齐全。
 
❌ 缺点
 
1. 底层使用关系型数据库,监控主机上万台后,数据库压力大,历史数据查询变慢;

2. 时间序列性能弱于Prometheus;

3. 自定义监控指标多的时候,需要手动写脚本;

七、实操部署

1、首先完成LNMP架构的搭建

//关闭 selinux 与防火墙
systemctl disable --now firewalld
setenforce 0
hostnamectl set-hostname zbx-server


cd /etc/yum.repos.d/

mv CentOS-Base.repo CentOS-Base.repo.bak #备份原有CentOS基础源

curl -o CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo #替换阿里云CentOS7基础源

yum clean all && yum makecache #清理重建yum缓存

yum install -y epel-release.noarch #安装epel源

yum clean all && yum makecache #清理重建yum缓存

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm #安装webtatic源,提供php7.2包

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 #安装php

vim /etc/nginx/conf.d/zabbix.conf #在conf.d目录下新建zabbix.conf文件并配置

server {
  listen 80;  #监听本机80端口
  server_name zabbix.lc.com;  #网站域名
  root /data;  #网页根目录
  
  location / {
    index index.php;  #默认首页优先加载index.php
  }
  
  location ~ \.php$ { #正则匹配拦截所有.php结尾的请求,交给php-fpm解析
    fastcgi_pass 127.0.0.1:9000;  #将php请求转发给本地php-fpm,php-fpm默认监听9000端口
    fastcgi_index index.php;  #默认首页
    fastcgi_param SCRIPT_FILENAME /data$fastcgi_script_name; #传递参数给php-fpm,告诉php解释器php文件的物理路径
    include fastcgi_params;  #引用nginx内置fastcgi通用参数文件
  }
}

vim /etc/php-fpm.d/www.conf #修改php进程池配置文件

8 user = nginx #第8行修改运行用户

10 group = nginx #第10行修改运行组

vim /etc/php.ini #修改php全局配置文件

368 max_execution_time = 300 #第368行脚本最大执行时间,30s不够改成300s

378 max_input_time = 600 #第378行接收数据最长等待时间,600s

656 post_max_size = 80M  #第656行POST提交数据最大大小,默认较小,改为80M

877 date.timezone = Asia/Shanghai #第877行设置php时区上海时区,否则zabbix页面时间报错,时间不一致

mkdir -p /var/www/zabbix #创建zabbix网站前段根目录

vim /var/www/zabbix/index.php #编写测试文件
cat /var/www/zabbix/index.php 
<?php
phpinfo();
?>

systemctl enable --now nginx php-fpm #立即启动服务并设置开机自启


修改 C:\Windows\System32\drivers\etc\hosts #测试访问(添加hosts解析)
192.168.0.11 zabbix.lc.com
 
浏览器访问:http://zabbix.lc.com/index.php

2、部署数据库,要求MySQL5.7或者Mariadb10.5及以上版本


cat > /etc/yum.repos.d/mariadb.repo << EOF    #配置 Mariadb yum源
[mariadb]
name = MariaDB
baseurl = https://archive.mariadb.org/mariadb-10.5.28/yum/centos7-amd64/
gpgkey = https://archive.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck = 0
EOF

yum clean all && yum makecache   #清理元数据缓存和重新拉取仓库元信息
yum install -y MariaDB-server MariaDB-client   #安装mariadb服务端程序和客户端工具

systemctl enable --now mariadb  #启动mariadb并设置开机自启



mysql_secure_installation  #初始化数据库
先输入 回车 -> n -> Y (设置root密码,如abc123) -> 后面一直Y

mysql -u root -pabc123  #登录数据库

3、完成数据库关于zabbix库的创建以及zabbix用户的授权

CREATE DATABASE zabbix character set utf8 collate utf8_bin; #创建zabbix数据库,字符集utf8,排序规则utf8_bin(区分大小写,Zabbix强制要求)

GRANT all ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix'; #创建本地zabbix账号,仅允许localhost连接,授予zabbix库全部权限,密码zabbix
GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';  #创建允许任意IP访问的zabbix账号,远程也能连接,密码zabbix
flush privileges;  #刷新权限,让授权立即生效


库名为zabbix 用户为zabbix 密码为zabbix

4、将代码目录中的database中的sql导入到数据库 并需要按顺序导入

wget -c https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.25.tar.gz  # wget:网络下载工具;-c 断点续传,网络中断后可以接着下载不用重下

cd /opt
tar xvf zabbix-6.0.25.tar.gz #解压
 
ls /opt/zabbix-6.0.25/database/mysql
data.sql  double.sql  history_pk_prepare.sql  images.sql  Makefile.am  Makefile.in  schema.sql
 
#按照顺序依次导入数据库
cd /opt/zabbix-6.0.25/database/mysql
mysql -uroot -pabc123 zabbix < schema.sql
mysql -uroot -pabc123 zabbix < images.sql
mysql -uroot -pabc123 zabbix < data.sql
mysql -uroot -pabc123 zabbix < double.sql
mysql -uroot -pabc123 zabbix < history_pk_prepare.sql

5、源码编译安装zabbix server 6.0.25版本

//编译安装 zabbix Server 服务端
#安装依赖包
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  #创建 zabbix 用户
 
#编译安装
cd /opt/zabbix-6.0.25/
 
./configure \
--sysconfdir=/etc/zabbix/ \
--enable-server \
--with-mysql \
--with-net-snmp \
--with-libxml2 \
--with-ssh2 \
--with-openipmi \
--with-zlib \
--with-libpthread \
--with-libevent \
--with-openssl \
--with-ldap \
--with-libcurl \
--with-libpcre
 
make install
 
#检查版本
zabbix_server --version
zabbix_server (Zabbix) 6.0.25

6、修改zabbix的配置文件 编写server文件 启动zabbix

#修改 zabbix server 配置文件,修改数据库的密码
vim /etc/zabbix/zabbix_server.conf 
......
LogFile=/var/log/zabbix/zabbix_server.log		# 38行,指定 zabbix 日志路径
DBPassword=zabbix					# 123行,指定 zabbix 数据库的密码
 
mkdir -p /var/log/zabbix  #编译安装不会创建需要手动创建目录
[root@localhost log]# chown -R zabbix.zabbix /var/log/zabbix #修改目录的属主和属组,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/sbin/zabbix_server -f
User=zabbix
 
[Install]
WantedBy=multi-user.target
EOF
 
systemctl daemon-reload   #重载systemd识别配置
systemctl enable --now zabbix-server  #设置zabbix服务开机自启并立即启动
systemctl status zabbix-server #查看zabbix服务状态
 
netstat -lntp | grep 10051			#zabbix_server 默认监听 10051 端口

7、部署 Web 前端,完成ui界面导入到nginx的指定root目录

//部署 Web 前端,进行访问
cp -af /opt/zabbix-6.0.25/ui/* /data/  #复制ui前端到nginx根目录
 
chown -R nginx:nginx /data/  #修改目录的属主和属组

chown -R nginx:nginx /data/  #查看下修改有没有生效

8、在宿主机的web界面访问zabbix

浏览器访问:http://192.168.0.11/ 或者http://zabbix.lc.com/index.php
【Default language】选择 Chinese(zh_CN),点击下一步,再次点击下一步
【密码】输入 zabbix,点击下一步
【Zabbix主机名称】输入 zabbix-监控;【默认时区】选择 Asia/Shanghai,点击下一步
 
安装完成后,默认的登录账号和密码为:Admin/zabbix

9、完成zabbix agent2的部署

看到上面的报警页面,因为服务端没有安装zabbix agent会报错,需要自己监控自己

另外图形界面的字符集乱码 需要调整

//源码编译安装 zabbix 客户端,实现 zabbix 服务端自我监控我这个包里自带agent2


cd /opt/zabbix-6.0.25 #切换到zabbix目录
./configure --help | grep agent2 #查看编译选项是否存在agent2

yum install -y golang #编译安装agent2需要go编译器使用yum下载golang


./configure --prefix=/usr/local/zabbix  --enable-agent2  
#configure开启agent2,其实可以在安装zabbix-server时加上的,我是准备yum安装agent2的但是yum安装不了因为没有源,所以只能源码装了

make && make install #编译安装

ls /usr/local/zabbix/sbin/zabbix_agent2 #查看编译后的二进制程序

mkdir -p /usr/local/zabbix/logs #因为是源码编译安装的agent2不会创建logs目录需要手动创建
chown -R zabbix:zabbix /usr/local/zabbix  #修改目录的属主和属组


cat > /etc/systemd/system/zabbix-agent2.service << EOF #准备 systemctl 服务管理文件
[Unit]
Description=Zabbix Agent2
After=network.target

[Service]
User=zabbix
Group=zabbix
Type=simple
ExecStart=/usr/local/zabbix/sbin/zabbix_agent2 -c /usr/local/zabbix/etc/zabbix_agent2.conf
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload  #重载systemd识别配置


vim /usr/local/zabbix/etc/zabbix_agent2.conf #修改配置文件:Server、ServerActive、Hostname

11 PidFile=/usr/local/zabbix/logs/zabbix_agent2.pid  #第11行修改pid文件路径,取消注释

28 LogFile=/usr/local/zabbix/logs/zabbix_agent2.log #第28行添加日志文件路径,取消注释

74 Server=127.0.0.1,192.168.0.11  #第74行因为服务端和agent2在一台机器上所以可以不加真实IP可以使用默认的回环IP可加可不加,我这里加上了

127 ServerActive=192.168.0.11:10051 #第127行修改zabbixserverIP

138 Hostname=Zabbix server   #第138行修改为服务端网页上显示主机名要一样


/usr/local/zabbix/sbin/zabbix_agent2 -c /usr/local/zabbix/etc/zabbix_agent2.conf #校验配置语法


systemctl enable --now zabbix-agent2 #设置开机自启并立即启动
 
netstat -lntp | grep 10050			#客户端 zabbix_agent2 默认监听 10050 端口
 
 
//解决 zabbix-server Web页面中文乱码问题
yum install -y wqy-microhei-fonts
 
\cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /data/assets/fonts/DejaVuSans.ttf
 
刷新浏览器页面

10、添加zabbix 客户端主机

systemctl disable --now firewalld
setenforce 0
hostnamectl set-hostname zbx-agent01
 
 
//服务端和客户端都配置时间同步
yum install -y ntpdate
ntpdate -u ntp.aliyun.com
 
 
//服务端和客户端都设置 hosts 解析
cat > /etc/hosts << EOF
192.168.0.11 zbx-server
192.168.0.12 zbx-agent01
EOF
 
 
//源码安装 zabbix-agent2
//从服务端将压缩包传输给客户端
scp /opt/zabbix-6.0.25.tar.gz root@192.168.0.12:/opt

//客户端解压
tar -xf zabbix-6.0.25.tar.gz

yum install -y golang #编译安装agent2需要go编译器使用yum下载golang


./configure --prefix=/usr/local/zabbix  --enable-agent2 
#configure开启agent2

make && make install #编译安装

ls /usr/local/zabbix/sbin/zabbix_agent2 #查看编译后的二进制程序

mkdir -p /usr/local/zabbix/logs #因为是源码编译安装的agent2不会创建logs目录需要手动创建
useradd -s /sbin/nologin -M zabbix  #创建 zabbix 用户
chown -R zabbix:zabbix /usr/local/zabbix  #修改目录的属主和属组

#准备 systemctl 服务管理文件
cat > /etc/systemd/system/zabbix-agent2.service << EOF 
[Unit]
Description=Zabbix Agent2
After=network.target

[Service]
User=zabbix
Group=zabbix
Type=simple
ExecStart=/usr/local/zabbix/sbin/zabbix_agent2 -c /usr/local/zabbix/etc/zabbix_agent2.conf
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload  #重载systemd识别配置


vim /usr/local/zabbix/etc/zabbix_agent2.conf #修改配置文件:Server、ServerActive、Hostname

11 PidFile=/usr/local/zabbix/logs/zabbix_agent2.pid  #第11行修改pid文件路径,取消注释

28 LogFile=/usr/local/zabbix/logs/zabbix_agent2.log #第28行添加日志文件路径,取消注释

74 Server=192.168.0.11  #第74行修改成服务端IP

127 ServerActive=192.168.0.11 #第127行修改zabbixserverIP

138 Hostname=zbx-agent01   #第138行修改主机名


/usr/local/zabbix/sbin/zabbix_agent2 -c /usr/local/zabbix/etc/zabbix_agent2.conf #校验配置语法这里有坑使用这条命令会创建属主是root的日志文件,可能导致后续服务启动不成功建议执行完后记得删除zabbix-agent日志目录下属主是root的日志

启动服务需要在zabbix网页先创建主机,点击左边菜单栏【配置】中的【主机】,点击【创建主机】
【主机名称】输入 zbx-agent01
【可见的名称】输入 zbx-agent01-192.168.0.12
【模板】搜索 Linux ,选择 Linux by Zabbix agent
【群组】选择 Linux servers
【Interfaces】点击添加 客户端,【IP地址】输入 192.168.0.12
 

创建完成后启动服务并查看端口

systemctl enable --now zabbix-agent2 #设置开机自启并立即启动
 
netstat -lntp | grep 10050			#客户端 zabbix_agent2 默认监听 10050 端口

服务启动后可在网页端查看可用性,变成绿色即为成功,需要等待1-2分钟。

11、在服务端验证 zabbix-agent01 的连通性 

cd /opt/zabbix-6.0.25/  #切换到源码编译目录

./configure --prefix=/usr/local/zabbix --enable-agent #安装 zabbix 主动获取数据的命令,只编译工具

make -j $(nproc) #使用多核编译

ls /opt/zabbix-6.0.25/src/  #查看工具文件是否加载

cp /opt/zabbix-6.0.25/src/zabbix_get/zabbix_get /usr/local/zabbix/sbin/ #将get文件复制到安装目录sbin

cp /opt/zabbix-6.0.25/src/zabbix_sender/zabbix_sender /usr/local/zabbix/sbin/ #将sender文件复制到安装目录sbin

ls /usr/local/zabbix/sbin/  #查看sbin下的文件
zabbix_agent2  zabbix_agentd  zabbix_get  zabbix_sender  zabbix_server

ln -s /usr/local/zabbix/sbin/zabbix_get /usr/local/bin/zabbix_get #做全局软链接

ln -s /usr/local/zabbix/sbin/zabbix_sender /usr/local/bin/zabbix_sender #做全局软链接
 
zabbix_get -V  #查看版本号有输出版本号表示安装成功
zabbix_get (Zabbix) 6.0.25 

 
zabbix_get -s '192.168.0.12' -p 10050 -k 'agent.ping' #测试连通性
输出为1代表连通

12、常用键值

//系统CPU
#1分钟平均负载,每CPU
zabbix_get -s 192.168.0.12 -k "system.cpu.load[percpu,avg1]"

#CPU空闲百分比
zabbix_get -s 192.168.0.12 -k "system.cpu.util[,idle]"

#用户态CPU
zabbix_get -s 192.168.0.12 -k "system.cpu.util[,user]"

#系统态CPU
zabbix_get -s 192.168.0.12 -k "system.cpu.util[,system]"

#上下文切换
zabbix_get -s 192.168.0.12 -k "system.cpu.switches"


//内存
#总内存(字节)
zabbix_get -s 192.168.0.12 -k "vm.memory.size[total]"

#空闲内存
zabbix_get -s 192.168.0.12 -k "vm.memory.size[free]"

#可用内存(含buffer/cache,重点看这个)
zabbix_get -s 192.168.0.12 -k "vm.memory.size[available]"

#Swap总大小
zabbix_get -s 192.168.0.12 -k "vm.swap.size[,total]"

#Swap已使用
zabbix_get -s 192.168.0.12 -k "vm.swap.size[,pused]"


//磁盘
#磁盘/分区使用率百分比  示例根分区 /
zabbix_get -s 192.168.0.12 -k "vfs.fs.size[/,pused]"

#磁盘剩余空间(字节)
zabbix_get -s 192.168.0.12 -k "vfs.fs.size[/,free]"

#磁盘读IOPS
zabbix_get -s 192.168.0.12 -k "vfs.dev.read[sd1,ops]"

#磁盘写IOPS
zabbix_get -s 192.168.0.12 -k "vfs.dev.write[sd1,ops]"


//网络
#网卡入流量字节,eth0换成实际网卡名
zabbix_get -s 192.168.0.12 -k "net.if.in[eth0,bytes]"

#网卡出流量字节
zabbix_get -s 192.168.0.12 -k "net.if.out[eth0,bytes]"

#TCP连接总数
zabbix_get -s 192.168.0.12 -k "net.tcp.total"

# established已建立连接
zabbix_get -s 192.168.0.12 -k "net.tcp[established]"


//系统通用
#系统开机运行时间(秒)
zabbix_get -s 192.168.0.12 -k "system.uptime"

#进程数量
zabbix_get -s 192.168.0.12 -k "proc.num[]"

#检查指定进程是否存在,返回进程数量,0代表进程没启动
zabbix_get -s 192.168.0.12 -k "proc.num[nginx]"

#获取文件行数,监控日志报错常用
zabbix_get -s 192.168.0.12 -k "vfs.file.regmatch[/var/log/messages,error]"

13、自定义监控内容

案列:自定义监控客户端服务器登录的人数
需求:限制登录人数不超过 3 个,超过 3 个就发出报警信息

//1.明确需要执行的 linux 命令
who | wc -l


//2.创建 zabbix 的监控项配置文件,用于自定义 key
vim /usr/local/zabbix/etc/zabbix_agent2.conf

#可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中

273 Include=/usr/local/zabbix/etc/zabbix_agent2.d/*.conf #取消注释273行加上文件路径

#自定义监控项的格式如下
Format: UserParameter=<key>,<shell command>
 
//切换到agent2.d目录
cd /usr/local/zabbix/etc/zabbix_agent2.d/
//编写自定义配置文件
vim UserParameter_login.conf
UserParameter=login.user,who|wc -l
//修改文件属主与属组
chown zabbix:zabbix /usr/local/zabbix/etc/zabbix_agent2.d/UserParameter_login.conf
//重启服务
systemctl restart zabbix-agent2.service 

//服务端执行
zabbix_get -s '192.168.0.12' -p 10050 -k 'login.user'

14、在 Web 页面创建自定义监控项模板

1、创建模版:点击左边菜单栏【配置】中的【模板】,点击【创建模板】
【模板名称】设置成 Template Login User
【可见的名称】设置成 Template Login User
【群组】选择 Template
【描述】可自定义如输入当前系统会话数
点击 【添加】,此时就可在【名称】中搜索到 Template Login User 了

2、创建监控项:点击 Template Login User 模板名称进入
点击上方菜单栏【监控项】,点击右上角【创建监控项】
【名称】设置成 Number of login users
【键值】设置成 login.user            #键值必须要与自定义的监控项配置文件中设置的保持一致
【更新间隔】设置成 10s
【历史数据保留时长】Storage period    30d        #保留时间可自定义设置

先点击测试,输入客户端地址和端口进行测试获取值,然后再点击 【添加】

3、创建触发器(当监控项获取到监控的值后和触发器预设的值进行对比,判断是否报警)

点击上方菜单栏【触发器】,点击右上角【创建触发器】
【名称】设置成 Number of login users is greater than 3
【严重性】设置成 一般严重        #根据严重程度可自定义设置
【表达式】点击添加,【监控项】点击选择 Number of login users,【功能】选择 last(),【结果】选择 > 3,点击 【插入】
点击 【添加】

4、创建图形

点击上方菜单栏【图形】,点击右上角【创建图形】
【名称】设置成 Number of login users
【宽】、【高】可直接采用默认值
【监控项】点击添加勾选相关监控项 Number of login users,【功能】选择 最大,其它可保持默认值
点击 【添加】

5、将主机与模板关联起来(一个主机可以关联多个模板)
点击左边菜单栏【配置】中的【主机】,点击你要关联的主机
【模板】搜索 login,选择 Template Login User,点击【更新】 

此时就点击【监测】中的【主机】,点击你关联主机的【图形】,点击过滤器搜索login即可查看到相关的监控项指标

测试一下多开几个终端这是三个

四个

完整图形

超过三个页面报警提示

6、设置邮件报警:点击左边菜单栏【管理】中的【报警媒介类型】,点击【创建媒体类型】
【名称】设置成 qq_Email
【SMTP服务器】设置成 smtp.qq.com
【SMTP服务器端口】设置成 465
【SMTP HELO】设置成 qq.com
【SMTP电邮】设置成 自己的邮箱地址,例如 123456789@qq.com

【安全链接】选SSL/TLS
【认证】选择 用户名和密码
【用户名称】设置成 自己的邮箱地址,例如 123456789@qq.com
【密码】可登录QQ邮箱页面,点击【设置】-->【账号与安全】开启pop3服务即可【生成授权码】
【描述】可自定义
点击上方菜单栏【Message templates】,点击【添加】-【Message type】选择 问题,点击【添加】
点击 【添加】,并测试功能


点击左边菜单栏【User settings】-->【Profile】-->【报警媒介】,点击【添加】
【类型】选择 qq_Email
【收件人】设置成 123456789@qq.com
【当启用时】设置成 1-7,00:00-24:00
【如果存在严重性则使用】勾选需要的严重性
点击 【添加】
再点击 【更新】

点击左边菜单栏【配置】->【动作】->【Trigger actions】
选择相对应的动作名称点击进入,点击 【添加】
【类型】选择 触发器,【操作者】选择 等于,【触发器】点击选择 Number of login users is greater than 3
点击【添加】
勾选 【已启用】
点击 【更新】

7、测试邮件报警

增加测试客户端的用户登录数超过触发器预设的值,查看【监测】-->【仪表板】,确认报警

现在是两个

增加到三个

四个达到报警阈值

触发邮件报警

邮件信息

搭建问题总结

问题1

页面报错:start request repeated too quickly for zabbix‑agent2.service
进程反复启动立刻崩溃,systemd多次重试失败,直接标记失败。

原因
1.因为是编译安装的没有创建logs目录,yum安装的是创建好的
2. 配置文件里面LogFile日志路径未填写
LogFile=/usr/local/zabbix/logs/zabbix_agent2.log
3. 配置文件里面PidFile路径未填写
PidFile=/usr/local/zabbix/logs/zabbix_agent2.pid

问题2

页面报错:

cannot open log: unable to open log file [/var/log/zabbix_server.log]: [13] Permission denied

错误13 = 权限拒绝
zabbix‑server进程是以 zabbix 用户运行, /var/log/zabbix_server.log 文件没有权限读写。
原因
1. rpm安装会自动创建  /var/log/zabbix/ ;如果你是源码编译,不会自动生成日志目录和文件。2. 即便文件存在,属主是root,zabbix普通用户没有写权限。

问题3

页面报错:

ERROR: cannot initialize logger: open /usr/local/zabbix/logs/zabbix_agent2.log: permission denied

原因

logs目录是zabbix:zabbix 755,但是里面已经存在  zabbix_agent2.log  文件,这个文件的所有者不是zabbix!这个log文件是之前root前台运行agent2的时候,root创建出来的,文件属主是root,zabbix用户打不开这个旧日志文件。
目录权限没问题,文件权限不对,为什么会有root创建的日志文件呢因为之前执行了一个校验配置文件的命令就是这条/usr/local/zabbix/sbin/zabbix_agent2 -c /usr/local/zabbix/etc/zabbix_agent2.conf

校验配置语法这里有坑使用这条命令会创建属主是root的日志文件,可能导致后续服务启动不成功建议执行完后记得删除zabbix-agent日志目录下属主是root的日志我是没删除启动导致报错服务启动失败。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐