前言
在企业级运维中,监控系统是保障业务稳定运行的核心,Zabbix 作为一款高度集成的开源分布式监控解决方案,凭借其强大的数据采集、告警和可视化能力,成为了运维工程师的必备工具。
一、监控概述
1.1 监控的核心目的
监控本身无法解决问题,监控系统的核心目的在于主动发现问题而非被动响应故障,主要实现两大目标:
- 报告系统运行状况:同时全面监控系统的每一个组件,包括吞吐量、响应时间、资源使用率等关键指标
- 提前发现潜在问题:在故障发生前识别性能瓶颈,为系统优化提供数据支撑,避免业务中断
1.2 监控的资源类型
Zabbix 可以监控两大类资源:
- 公开数据 :
- Web、FTP、SSH、数据库等应用服务
- TCP/UDP 端口的可用性
- 私有数据 :
- CPU、内存、磁盘、网卡流量等系统资源使用信息
- 用户、进程等运行状态信息
1.3 主流监控软件对比
-
系统监控命令:ps(进程)、uptime(平均负载)、free(可用内存)、df -h(磁盘)、ifconfig(查看ip和网卡)、ss(-s查看不同连接状态)、ping、traceroute(路由追踪,最多30跳)、iostat(查看磁盘读写性能)、sar(全栈监控) 等,适合临时排查问题
-
自动化监控软件:
- Cacti:基于 SNMP 协议,以强大的绘图能力见长,现基本被淘汰
- Nagios:基于 Agent 监控,拥有完善的状态检查和报警机制,插件生态丰富
- Zabbix:集以上二者优势于一身,支持多种监控机制,具备分布式监控能力,是目前企业级应用最广泛的监控系统
Prometheus是一款主打容器与云原生监控的监控软件,高可用特性突出,在监控软硬件方面性能不如Zabbix,但在容器、K8s 环境则更推荐 Prometheus
1.4 Zabbix 核心架构
Zabbix 采用C/S(客户端/服务器) 模式采集数据,B/S(浏览器/服务器) 模式实现 Web 管理
Zabbix应用拓扑:

- 监控服务器 :
- 需要使用Web页面操作,因此需要先部署LNMP
- 监控服务器可以通过 SNMP 或 Agent 采集数据,将采集的数据存储在 MySQL、Oracle 等数据库中
- 监控服务器通过 LNMP 架构提供 Web 管理界面
- 被监控主机 :
- 如果通过agent采集数据,需要安装 Zabbix Agent 客户端
- 如果通过SNMP 协议采集数据,无需安装额外客户端,因为网络设备通常支持 SNMP 协议
二、实验环境准备
补充:实验环境需关闭selinux与防火墙,实际生产环境中只需要放行端口(10050、10051、80)
本次实验使用 3 台虚拟机搭建 Zabbix 监控集群,所有虚拟机均基于 Rocky Linux 8 系统:

所有虚拟机配置完成后,使用 WindTerm 等 SSH 客户端远程连接进行操作。
使用zabbix-server主机监控web1、web2

zabbix监控端部署步骤
1、部署LNMP平台。Zabbix Web 界面依赖 LNMP 环境运行,因此需要先在监控服务器上部署 LNMP
- Nginx:配置动静分离,增加关于php缓存的配置
- Php-fpm:修改配置文件,使php-fpm使用9000端口
- MariaDB:安装
2、安装Zabbix监控端和被监控端
- 安装依赖包
- 源码编译安装zabbix_server、zabbix_agent
(注意,这里会创建一个linux里的zabbix用户,主要用来运行
zabbix_server 服务进程和 zabbix_agentd 代理进程,要与数据库中的授权用户进行区分)
3、配置数据库
- 创建存储监控数据的库zabbix
- 授权连接数据库的用户zabbix(数据库用户)。它的作用是:
- 1:用于zabbix_server连接数据库(zabbix_server会将监控数据存进数据库)
- 2:用于php连接数据库(php用来读取数据库数据)
- 使用模板文件还原存储数据的表格
4、上线监控页面
- 上线zabbix监控的web页面至Nginx的网页根目录
- 修改**/etc/php.ini**文件,修改zabbix页面要求的指定参数
- 初始化zabbix监控页面,配置 PHP 操作数据库的参数,告知php从哪里取数据
5、启动zabbix_server服务
- 修改**/usr/local/etc/zabbix_server.conf**配置文件,告知zabbix监控端采集到的数据存储位置
- 启动zabbix_server、zabbix_agentd
- 刷新监控网页,没有警告即可
三、部署 LNMP 平台
Zabbix Web 界面依赖 LNMP 环境运行,因此需要先在监控服务器上部署 LNMP。
3.1 源码编译安装 Nginx
将 nginx-1.22.1.tar.gz 提前上传至 zabbix-server 的 /root 目录:
shell
# 安装依赖包
[root@zabbix-server ~]# dnf -y install gcc make pcre-devel openssl-devel
# 创建运行 Nginx 的用户
[root@zabbix-server ~]# useradd nginx
# 解压源码包
[root@zabbix-server ~]# tar -xf /root/nginx-1.22.1.tar.gz
[root@zabbix-server ~]# cd nginx-1.22.1
# 配置编译参数
[root@zabbix-server nginx-1.22.1]# ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module
# 编译并安装
[root@zabbix-server nginx-1.22.1]# make && make install
# 验证安装
[root@zabbix-server nginx-1.22.1]# ls /usr/local/nginx
修改 Nginx 配置文件 /usr/local/nginx/conf/nginx.conf,支持 PHP 动态请求:
shell
[root@zabbixserver ~]# vim /usr/local/nginx/conf/nginx.conf
http{
...略...
fastcgi_buffers 8 16k; # 缓存 PHP 生成的页面内容
fastcgi_buffer_size 32k; # 缓存 PHP 生成的头部信息
fastcgi_connect_timeout 300; # 连接 PHP 的超时时间
fastcgi_send_timeout 300; # 发送请求的超时时间
fastcgi_read_timeout 300; # 读取请求的超时时间
#这几行不加会报错,非重点内容
...略...
server {
...略...
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; #注释掉本行
include fastcgi.conf; #后缀改为.conf
}
...略...
}
}
3.2 配置 PHP
Zabbix 6.4.7 要求 PHP 版本 ≥ 7.4,因此采用离线安装方式。将 php7.4.tar.gz (可提前从从官方或可信镜像站提前下载)上传至 zabbix-server 的 /root 目录:
shell
# 解压压缩包
[root@zabbix-server ~]# tar -xf php7.4.tar.gz
[root@zabbix-server ~]# cd php74
# 安装 PHP 相关软件
[root@zabbix-server php74]# dnf -y localinstall *.rpm
# 修改 php-fpm 配置文件,监听 9000 端口
[root@zabbix-server ~]# vim /etc/php-fpm.d/www.conf
...略...
;listen = /run/php-fpm/www.sock #38行左右。注释此行
listen = 127.0.0.1:9000 #加入此行
#只允许 本机(127.0.0.1) 连接 9000 端口,外部服务器无法连接,安全性高
#因为nginx和PHP-FPM 都在同一台服务器,所以配置成127.0.0.1
#如果Web 服务器(Nginx)在另一台机器,就需要配置成:listen = listen = **本机内网IP**:9000
#重新启动服务
[root@zabbix-server ~]# systemctl restart php-fpm
# 验证 PHP 版本
[root@zabbix-server ~]# php -v
PHP 7.4.19 (cli) (built: May 4 2021 11:06:37) ( NTS )
3.3 配置 MariaDB
Zabbix 6.4.7 要求 MariaDB 版本 ≥ 10.6,但内置的版本不满足条件,因此同样采用离线安装。将 mariadb10.6.tar.gz 上传至 zabbix-server 的 /root 目录:
shell
# 解压压缩包
[root@zabbix-server ~]# tar -xf mariadb10.6.tar.gz
[root@zabbix-server ~]# cd mariadb10.6/
# 安装 MariaDB 相关软件
[root@zabbix-server mariadb10.6]# dnf -y localinstall *.rpm
3.4 启动 LNMP 服务并测试
shell
# 启动数据库并设置开机自启
[root@zabbixserver ~]# systemctl enable mariadb --now
# 启动 PHP-FPM 并设置开机自启
[root@zabbixserver ~]# systemctl enable php-fpm --now
# 启动 Nginx
[root@zabbixserver ~]# /usr/local/nginx/sbin/nginx
# 编写测试页面
[root@zabbixserver ~]# vim /usr/local/nginx/html/test.php
<?php
$i=33;
echo $i;
?>
# 访问测试
[root@zabbixserver ~]# curl 192.168.8.100/test.php
33
四、Zabbix 服务端部署
4.1 源码编译安装 Zabbix
- 首先需要安装四个依赖:
- net-snmp-devel
- libcurl-devel
- libevent-devel
- libxml2-devel
- 然后创建运行Zabbix的系统用户zabbix ,切记指定解释器禁止登陆 (这个zabbix系统用户主要用于运行zabbix进程 )
(Zabbix本身是c语言写的,需要安装gcc,make等依赖,此处没有安装是因为之前安装nginx时已经安装过)
shell
# 安装 Zabbix 依赖包
[root@zabbix-server ~]# dnf -y install net-snmp-devel libcurl-devel libevent-devel libxml2-devel
# 创建运行 Zabbix 的用户(禁止登录系统)
[root@zabbix-server ~]# useradd -s /sbin/nologin zabbix
- 将
zabbix-6.4.7.tar.gz上传至 zabbix-server 的/root目录,解压并切入对应目录:
shell
# 解压源码包
[root@zabbix-server ~]# tar -xf zabbix-6.4.7.tar.gz
[root@zabbix-server ~]# cd zabbix-6.4.7/
- 初始化编译参数并安装:
shell
# 配置编译参数
[root@zabbix-server zabbix-6.4.7]# ./configure \
--enable-server \ # 启用 Zabbix 服务端功能,充当监控中心、数据处理与管理
--enable-agent \ # 启用 Zabbix 客户端功能(此处用于监控自身),被监控主机上的数据采集器
--with-mysql \ # 支持 MySQL/MariaDB 数据库
--with-mysql \ # 支持 MySQL/MariaDB 数据库
--with-net-snmp \ # 支持 SNMP 监控
--with-libcurl \ # 支持 Web 监控、API 监控和 HTTPS
--with-libxml2 # 支持 XML 数据解析
# 编译并安装
[root@zabbix-server zabbix-6.4.7]# make install
- 安装验证:
shell
# 验证安装目录
[root@zabbix-server zabbix-6.4.7]# ls /usr/local/etc/ #配置文件(告诉 zabbix 怎么运行)
[root@zabbix-server zabbix-6.4.7]# ls /usr/local/bin/ #普通命令 / 客户端工具(给普通用户用)
[root@zabbix-server zabbix-6.4.7]# ls /usr/local/sbin/ #服务端核心程序(给管理员 / 系统用),环境变量目录,里面的程序可以直接当作命令执行
4.2 配置 Zabbix 数据库
- 创建zabbix服务存储监控数据的数据库:zabbix库
- 授权php网页使用的连接用户:zabbix,密码zabbix
Zabbix 服务端(zabbix_server) 和 Web 前端(PHP) 都需要使用这个数据库用户zabbix连接数据库。
php页面在运行过程中要连接数据库,使用独立专用账号,符合最小权限安全原则。
若用户不存在或未授权,Zabbix 无法正常运行。
sql
# 进入数据库
[root@zabbix-server ~]# mysql
# 创建 zabbix 数据库,使用 utf8 字符集
MariaDB [(none)]> CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
# 授权 zabbix 用户访问数据库。密码为zabbix
MariaDB [(none)]> GRANT ALL ON zabbix.* TO zabbix@"localhost" IDENTIFIED BY 'zabbix';
# 刷新授权表
MariaDB [(none)]> FLUSH PRIVILEGES;
# 退出数据库
MariaDB [(none)]> EXIT;
- 使用zabbix模板文件还原数据库(zabbix自带)
- 导入 Zabbix 数据库模板文件 (注意顺序不能颠倒):
shell
[root@zabbix-server zabbix-6.4.7]# cd database/mysql/
[root@zabbix-server mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql
[root@zabbix-server mysql]# mysql -uzabbix -pzabbix zabbix < images.sql
[root@zabbix-server mysql]# mysql -uzabbix -pzabbix zabbix < data.sql
这些数据库文件的作用:
schema.sql:创建数据表结构
images.sql:图标、界面相关数据
data.sql:模板、监控项等基础预置数据
这些库用于存储监控数据
4.3 Zabbix Web 图形界面初始化
- 将zabbix的php监控页面发布至Nginx的网页根目录
bash
[root@zabbix-server mysql]# cd /root/zabbix-6.4.7/ui/
[root@zabbix-server ui]# cp -r * /usr/local/nginx/html/ #将页面放到nginx根目录
[root@zabbix-server ui]# chmod -R 777 /usr/local/nginx/html/
#授予权限.实验环境临时赋权方便排错,生产环境不建议使用777最大权限
授予权限这一步是因为我们发现/root/zabbix-6.4.7/ui/所属用户默认为本系统uid1000的普通用户,所以需要修改权限避免后续因权限问题出错
- 为满足zabbix初始化,需要修改php相关配置,否则在初始化的时候会提示异常
- 修改配置文件:/etc/php.ini
shell
[root@zabbix-server ~]# vim /etc/php.ini #修改配置文件,不要抄行号,以实际情况为主
923 date.timezone = Asia/Shanghai #时区调整为 Asia/Shanghai
694 post_max_size = 32M #最大执行时间,秒
388 max_execution_time = 300 #POST(上传提交)数据最大容量
398 max_input_time = 300 #服务器接收数据的时间限制
# 重启 PHP-FPM 使配置生效
[root@zabbix-server ~]# systemctl restart php-fpm
在 Windows 浏览器中访问 http://192.168.8.100/index.php,按照以下步骤完成初始化:
- 欢迎页面:点击 "Next step"

- 环境检查:确保所有 PHP 扩展和配置都满足要求,点击 "Next step"

- 数据库配置:输入数据库主机
localhost(若zabbix和数据库在两个服务器,就要写远程数据库的地址)、数据库名zabbix、用户名zabbix(这里的用户是数据库授权的用户)、密码zabbix,点击 "Next step"

此处配置数据库的目的就是为 Zabbix Web 前端(PHP)提供数据库访问凭证,实现页面查询、配置修改等功能;同时配合后续配置的 zabbix_server.conf,让 Zabbix 整个系统(服务端 + 前端)共用一套数据库,完成数据采集、存储、展示、管理全流程,这也是整套 Zabbix 监控平台正常运行的核心前提
- 服务器设置:设置 Zabbix 服务器名称为
zabbix-server,点击 "Next step"

- 预安装摘要:确认所有信息无误,点击 "Next step"

- 安装完成:点击 "Finish"

4.4 登录 Zabbix 并设置中文
- 默认登录信息:
- 用户名:
Admin(注意首字母大写) - 密码:
zabbix
- 用户名:

但是我们会发现全是乱码:

切换界面后出现英文报错 / 乱码,原因是系统(Linux 系统)缺少 en_US.UTF-8 语言区域配置。本机已存在中文区域 zh_CN.UTF-8,因此切换为中文界面即可正常使用
登录后,点击左下角用户头像 → "User settings" → "Language" 选择 "Chinese (zh_CN)",点击 "Update" 即可切换为中文界面。


4.5 启动 Zabbix 服务
修改 Zabbix 服务端配置文件 /usr/local/etc/zabbix_server.conf:
shell
[root@zabbix-server~]# vim /usr/local/etc/zabbix_server.conf
87 DBHost=localhost #数据库主机(去掉注释顶格写)
99 DBName=zabbix #设置数据库名称
115 DBUser=zabbix #设置数据库账户
123 DBPassword=zabbix #设置数据库密码(去掉注释顶格写))
38 LogFile=/tmp/zabbix_server.log #设置日志
本配置指定了zabbix_server将接收的agent监控数据存储在数据库的相关参数
- 启动zabbix相关服务
- 启动zabbix_server服务,端口号:10051
- 启动zabbix_agent服务,端口号:10050
shell
# 启动 Zabbix 服务端(默认端口 10051)
[root@zabbix-server mariadb10.6]# zabbix_server
[root@zabbix-server mariadb10.6]# ss -nutlp | grep :10051
# 启动 Zabbix 客户端(监控自身,默认端口 10050)
[root@zabbix-server mariadb10.6]# zabbix_agentd
[root@zabbix-server mariadb10.6]# ss -nutlp | grep :10050
# 设置开机自启。/etc/rc.d/rc.local是开机后系统会自动读取的文件,所以可以使用
[root@zabbix-server ~]# echo zabbix_server >> /etc/rc.d/rc.local
[root@zabbix-server ~]# echo zabbix_agentd >> /etc/rc.d/rc.local
[root@zabbix-server ~]# echo exit 0 >> /etc/rc.d/rc.local #务必添加这个结尾
[root@zabbix-server ~]# chmod +x /etc/rc.d/rc.local
使用/etc/rc.d/rc.local实现开机自启简单易用,但实际生产环境建议使用service文件配置systemd服务单元进行管理会更加专业,配置详情参考:# Linux运维Day02
再次访问 Zabbix Web 界面,底部的 "Zabbix server is not running" 警告消失,说明服务启动成功。


数据库打通分为两步:
- 第一步先把Web 前端(PHP)和数据库打通(即前面图形化页面的数据库配置)
- 第二步再把zabbix-server 后台进程和数据库打通,让数据能采集进来(即/usr/local/etc/zabbix_server.conf文件的配置)
五、Zabbix 被监控端部署
以 web1 主机为例,web2 主机操作完全相同。
5.1 源码编译安装 Zabbix Agent
将 zabbix-6.4.7.tar.gz 上传至 web1 的 /root 目录:
shell
# 安装依赖包
[root@web1 ~]# dnf -y install gcc make pcre-devel autoconf
# pcre-devel兼容正则表达式库;autoconf = 自动配置工具,若实际生产使用的版本较低可能不会自动生成配置文件,安装此软件包为了保险起见
# 解压源码包
[root@web1 ~]# tar -xf zabbix-6.4.7.tar.gz
[root@web1 ~]# cd zabbix-6.4.7/
# 仅编译安装 Agent 客户端
[root@web1 zabbix-6.4.7]# ./configure --enable-agent
# 编译并安装
[root@web1 zabbix-6.4.7]# make install
# 验证安装
[root@web1 ~]# ls /usr/local/etc
[root@web1 ~]# ls /usr/local/bin
[root@web1 ~]# ls /usr/local/sbin
5.2 配置 Zabbix Agent
修改 被监控端Agent 配置文件 /usr/local/etc/zabbix_agentd.conf:
shell
[root@web1 ~]# vim /usr/local/etc/zabbix_agentd.conf #修改配置文件,不要抄行号
113 Server=127.0.0.1,192.168.8.100 # 允许哪些服务器监控本机
167 ServerActive=192.168.8.100:10051 # 主动上报数据的服务器(即监控端的)地址和端口
30 LogFile=/tmp/zabbix_agentd.log # 日志文件路径
5.3 启动 Agent 服务
shell
# 创建运行 Agent 的用户
[root@web1 zabbix-6.4.7]# useradd -s /sbin/nologin zabbix
# 启动 Agent 服务
[root@web1 zabbix-6.4.7]# zabbix_agentd
[root@web1 zabbix-6.4.7]# ss -nutlp | grep :10050
# 设置开机自启
[root@web1 ~]# echo zabbix_agentd >> /etc/rc.d/rc.local
[root@web1 ~]# echo exit 0 >> /etc/rc.d/rc.local
[root@web1 ~]# chmod +x /etc/rc.d/rc.local
这里已经在后端把相关的内容配置好了,后面还需要在图形页面进行操作才能对本主机进行监控
六、基础监控配置
6.1 添加监控主机
- 登录 Zabbix Web 界面,点击左侧菜单栏 监测 → 主机 → 创建主机
- 填写主机信息:
- 主机名称:
web1(尽可能与真实主机名保持一致) - 可见的名称:
web1 - 主机群组:选择
Linux servers - 接口:类型选择
Agent,IP 地址填写192.168.8.101,端口保持10050
- 主机名称:
- 切换到 模板 标签页,点击 选择 ,搜索并添加
Linux by Zabbix agent模板 - 点击 添加 完成主机创建

监控模板中包含了众多的监控项 (就是监控的具体内容),类似于套餐
(这些模板包含了许多类型的监控模板,如对Nginx,数据库的监控模板,也有区分agent和snmp监控方式的监控模板,还有华为,思科,戴尔等知名大厂的监控模板)
如果后续想要为该主机添加
6.2 常用监控指标
常用监控指标:
- Space utilization:以百分比显示的磁盘利用率
- Used space:已用磁盘空间
- Available memory:可用内存
- CPU idle time:CPU空闲时间。不宜过低。
- Load average (1m avg)、Load average (5m avg)、Load average (15m avg):CPU1分钟、5分钟、15分钟的平均负载。这个值不应长期大于核心数。
- Interface eth0: Bits received:网卡接收到的数据量
- Interface eth0: Bits sent:网卡发送的数据量
- Number of processes:系统运行的进程数
- Number of logged in users:已登陆的用户数
6.3 查看监控数据
点击左侧菜单栏监测 → 主机 ,点击主机 web1 ,进入对应主机的最新数据
页面。点击图形 ,即可查看所有监控项的实时数据。

点击右上角的按钮可以按照时间查看历史数据的趋势图。

七、自定义监控项
Zabbix 内置的监控项无法满足所有业务需求,我们可以通过自定义监控项来监控任何我们关心的指标。
- 需要在被控端创建key,被监控端 被监控的内容叫作key,可以理解为它就是一个变量名,具体的名字自己决定。
- 需要在web页面中 创建监控项,监控项对应key值。
- 需求:实现自定义监控web1主机的用户数量

配置思路:
被监控端:
- 修改zabbix_agentd.conf文件,开启自定义监控功能,开启自定义文件位置
- 在调用配置文件目录中编写配置文件
- 此文件包含自定义监控key 及获取值的具体命令
- 使用zabbix_get自测
监控端:
- 创建模板组
- 创建监控模板
- 向自定义模板创建监控项
- 自定义监控项的键值必须与被监控端自定义监控key值一致
- 将自定义模板绑定至被监控主机
- 查看数据验证
7.1 开启被监控端自定义监控功能
在 web1 主机上修改 Agent 配置文件:
shell
[root@web1 ~]# vim /usr/local/etc/zabbix_agentd.conf
345 UnsafeUserParameters=1 # 是否允许自定义支持key(去掉注释,顶格写,0改为1)
329 Include=/usr/local/etc/zabbix_agentd.conf.d/ # 加载配置文件目录(去掉注释,顶格写),自定义文件(也就是key)的存放目录


7.2 创建自定义监控 Key
在被监控端创建并编写自定义监控脚本:
shell
[root@web1 ~]# cd /usr/local/etc/zabbix_agentd.conf.d/
[root@web1 zabbix_agentd.conf.d]# vim usercount
# 自定义监控项语法:UserParameter=key名称,执行命令
UserParameter=usercount,sed -n '$=' /etc/passwd
#usercount就是key,sed -n '$=' /etc/passwd给key提供值
倘若要写多个自定义key,一个自定义key建议只写一个功能命令
重启 Agent 服务并验证自定义 Key:
shell
# 重启 Agent
[root@web1 zabbix_agentd.conf.d]# killall -9 zabbix_agentd
[root@web1 zabbix_agentd.conf.d]# zabbix_agentd
# 验证自定义 Key 是否生效
[root@web1 zabbix_agentd.conf.d]# zabbix_get -s 127.0.0.1 -k usercount
#-s指定数据源,-k指定key
7.3 创建自定义模板
- 登录 Zabbix Web 界面,点击左侧菜单栏 数据采集 → 模板组 → 创建名为Mygroup1的模板组
- 输入模板组名称
Mygroup1,点击 添加

- 点击 数据采集 → 模板 → 创建模板
- 填写模板信息:
- 模板名称:
Template_usercount - 可见的名称:
Template_usercount - 模板群组:选择
Mygroup1
- 模板名称:
- 点击 添加 完成模板创建



7.4 创建自定义监控项
-
在模板列表中找到
Template_usercount,点击后方的 监控项
-
点击 创建监控项,填写以下信息:
- 名称:
usercount - 类型:
Zabbix 客户端 - 键值:
usercount(必须与被监控端定义的 Key值完全一致) - 信息类型:
数字(无正负) - 单位:
个 - 更新间隔:
30s
- 名称:


- 点击 添加 完成监控项创建
7.5 关联模板到主机
- 点击左侧菜单栏 监测 → 主机 ,找到
web1主机,点击后方的 模板

- 点击 选择 ,搜索并添加
Template_usercount模板
可以直接输入模板名进行搜索:

也可以点击旁边的选择,根据模板分组进行搜索:



- 点击 更新 完成关联
7.6 验证自定义监控
在 web1 主机上批量创建用户,观察监控数据变化:
shell
[root@web1 ~]# vim useradd.sh
#!/bin/bash
for i in {1..10}
do
useradd tuser$i
done
[root@web1 ~]# chmod +x useradd.sh
[root@web1 ~]# ./useradd.sh
等待 30 秒后,在 Zabbix Web 界面的 最新数据 中可以看到系统用户数量发生变化,说明自定义监控项配置成功。


八、学习总结
本次实验完成了 Zabbix 监控环境的完整部署,重点掌握了自定义监控项的配置流程。后续将继续学习触发器、告警等高级功能。
- LNMP 环境部署:掌握了 Nginx 源码编译、PHP 和 MariaDB 的离线安装与配置
- Zabbix 服务端部署:掌握了 Zabbix 源码编译、数据库配置、Web 初始化和服务启动
- Zabbix 客户端部署:掌握了 Agent 客户端的安装、配置和启动方法
- 基础监控配置:掌握了添加监控主机、关联模板和查看监控数据的流程
- 自定义监控项:掌握了从被监控端定义 Key 到 Web 端创建监控项的完整流程
Zabbix 的功能远不止于此,后续我们将继续学习触发器配置、告警通知、分布式监控等高级功能,打造一个完整的企业级监控体系。