文章目录
- Rocky9 部署 Zabbix 6.0 分布式监控完整实操复盘
-
- 一、基础环境初始化
-
- 1. 关闭SELinux
- 2. 网卡信息确认
- 3. 主机名解析配置
- 二、Zabbix Server 服务端部署
-
- 1. 版本选型
- 2. 数据库初始化踩坑
- 3. 服务端配置
- 4. Web前端初始化
- 三、Agent 客户端部署与接入
-
- 1. Rocky9 节点 server2 部署
- 2. Web前端中文乱码修复
- 3. Agent 核心配置
- 4. CentOS7 节点 server3 部署
- 5. 连通性验证
- 四、自定义监控项与效果验证
-
- 1. CPU 负载监控项创建
- 2. 压测验证监控有效性
- 3. 磁盘使用率监控项
- 踩坑汇总与实操总结
-
- 1. 本次核心踩坑点
- 2. 实操心得
Rocky9 部署 Zabbix 6.0 分布式监控完整实操复盘
一、基础环境初始化
做Zabbix集群之前先把所有节点的基础环境统一调好,避免后面因为系统配置问题反复排查。
1. 关闭SELinux
实验环境第一步先禁用SELinux,不然后面端口、文件权限的隐性问题特别多。编辑/etc/selinux/config,将SELINUX设置为disabled。文档里也标注了RHEL8之后的版本,彻底禁用还可以通过grubby给内核加参数,实验场景改配置文件重启就足够了。

2. 网卡信息确认
本次实验用的是Rocky Linux 9.6版本,内核为5.14.0。登录系统后先确认网卡状态:
ip a
将网卡名为eth0,通过DHCP获取到了IP地址。

再通过NetworkManager查看连接列表,确认eth0对应的配置正常:
nmcli connection show

进入系统连接配置目录,查看网卡配置文件详情:
cd /etc/NetworkManager/system-connections
cat eth0.nmconnection
当前IPv4为自动获取模式,后续需要固定IP直接修改该文件即可。

3. 主机名解析配置
多节点监控集群一定要提前做好主机名映射,我把所有实验节点的IP和主机名都写入了/etc/hosts,从server1到server8一一对应,后续配置和排错都不用反复记IP,也能避免主机名不匹配导致的监控异常。

二、Zabbix Server 服务端部署
1. 版本选型
Zabbix版本选择6.0 LTS长期支持版,稳定性最好;对应系统选择Rocky Linux 9,组件包含服务端、前端、Agent,数据库选用MySQL,直接通过官方rpm源安装。

2. 数据库初始化踩坑
安装完Zabbix服务端和MySQL后,需要导入初始SQL脚本:
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql –default-character-set=utf8mb4 -uzabbix -p zabbix
第一次执行直接报错ERROR 1045 (28000): Access denied,排查后发现是zabbix数据库用户的密码输入错误。重新核对密码后导入成功,登录MySQL确认zabbix库已正常创建。 
3. 服务端配置
编辑服务端主配置文件:
vim /etc/zabbix/zabbix_server.conf
核心修改DBPassword参数,填入zabbix数据库用户对应的密码,其余参数默认即可满足实验需求。 
重启服务,查看状态所有子进程都正常启动。
systemctl restart zabbix-server
systemctl status zabbix-server

4. Web前端初始化
浏览器访问Zabbix前端地址,进入仪表盘后可以看到服务端运行状态正常,主机、模板、监控项等数据都能正常加载,说明服务端和Web前端部署完成。 
三、Agent 客户端部署与接入
1. Rocky9 节点 server2 部署
首先在server2节点配置Zabbix官方yum源,安装release包:
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/9/x86_64/zabbix-release-latest-6.0.el9.noarch.rpm

源配置完成后,直接安装zabbix-agent客户端:
dnf install -y zabbix-agent

2. Web前端中文乱码修复
部署过程中发现Web界面中文显示乱码,这是Zabbix的老问题,默认的graphfont字体不支持中文。解决方法很简单:进入字体目录,删除默认字体,将中文字体软链接为默认文件名即可。
cd /usr/share/zabbix/assets/fonts
rm -f graphfont.ttf
ln -s simkai.ttf graphfont.ttf

3. Agent 核心配置
编辑server2的Agent配置文件:
vim /etc/zabbix/zabbix_agentd.conf
第一个核心参数Server,填写Zabbix服务端IP,仅允许该地址发起被动监控请求。 
第二个参数ServerActive,同样填写服务端IP,用于主动模式上报数据。

第三个关键参数Hostname,设置为当前节点主机名server2,必须和Web端添加主机时的名称完全一致,否则会匹配失败。


配置完成后重启Agent服务,到Web端添加主机并关联系统模板,添加完成后主机列表即可看到server2节点。 
4. CentOS7 节点 server3 部署
另外准备了一台CentOS7节点server3,部署流程和Rocky9基本一致,仅需安装对应版本的Zabbix源:
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-latest-6.0.el7.noarch.rpm

Agent配置和server2完全相同,仅需把Hostname改为server3即可。
配置完成后在Web端创建server3主机,填写对应IP和端口,关联Linux监控模板。 
刷新主机列表后,三台主机的可用性图标都变为绿色ZBX,说明所有Agent都正常接入。

5. 连通性验证
为确认服务端到Agent链路完全通畅,在服务端安装测试工具:
yum install -y zabbix-get
分别测试两台Agent的连通性:
zabbix_get -s 192.168.48.163 -p 10050 -k 'agent.ping'
zabbix_get -s 192.168.48.163 -p 10050 -k 'agent.hostname'
agent.ping返回1代表网络和端口都通,agent.hostname能正确返回主机名,说明Agent配置完全正确。

四、自定义监控项与效果验证
1. CPU 负载监控项创建
自带模板虽然全,但还是手动创建一个监控项熟悉流程。给server2添加“cpu每分钟负载”自定义监控项,键值为system.cpu.load[all,avg1],更新间隔设为1分钟。 
创建完成后在监控项列表中可以看到刚添加的条目,状态为已启用。 
回到主机列表,server2的监控项数量已同步更新。 

等待几个采集周期后查看监控图表,空闲状态下CPU负载很低,数值稳定在0.1左右,符合系统表现。 
2. 压测验证监控有效性
在server2后台执行CPU密集型任务拉高负载:
md5sum /dev/zero &
压测一段时间后再看图表,CPU负载明显上升,监控曲线正常变化,说明数据采集实时有效。

持续压测过程中,负载进一步升高,图表趋势和实际操作完全对应。

验证完成后,将后台进程切到前台并结束压测:
fg
停止压测后,CPU负载快速回落,图表曲线下降,整个监控链路响应及时。 
3. 磁盘使用率监控项
除了CPU,又补充了两个磁盘相关监控项:根分区使用量和根分区空闲百分比,覆盖基础资源监控维度。


踩坑汇总与实操总结
1. 本次核心踩坑点
2. 实操心得
这次从0到1搭完一整套Zabbix监控,最大的感受是:部署本身不难,坑基本都在细节里。比如服务名的横杠下划线、密码输错、主机名不一致,都是很小的点,但卡起来要排查半天。另外自定义监控项+压测验证的流程很重要,不能光看监控项状态是启用的就完事,一定要模拟负载变化,确认数据真的能正常采集、图表能正常更新,不然真出问题了监控没反应就失去意义了。
网硕互联帮助中心




![[阿里云ECS监控:无需ZabbixAgent的API方案] zabbix监控ecs服务器基于调用api方式-网硕互联帮助中心](https://www.wsisp.com/helps/wp-content/uploads/2025/06/20250602093557-683d707de3891-220x150.png)

评论前必须登录!
注册