共计 2400 个字符,预计需要花费 6 分钟才能阅读完成。
背景痛点
在最小化安装的 CentOS 环境中部署 Zabbix Agent 时,新手常会遇到各种依赖问题。典型场景包括:

- 缺少编译工具链(gcc/make/autoconf 等),导致源码编译失败
- 基础库缺失(如 libpcre),影响 RPM 包安装
- 开发头文件不完整,无法构建自定义监控模块
这些问题往往会让刚接触运维的同学感到困惑,明明按照文档操作却卡在第一步。
技术路线选择
方案对比:RPM vs 源码编译
- RPM 包安装(推荐新手)
- 优点:依赖自动解决、版本稳定、升级方便
-
缺点:功能模块固定,无法自定义编译参数
-
源码编译安装
- 优点:可灵活启用 / 禁用功能(如 SNMP/IPv6 支持)
- 缺点:需手动解决依赖,版本升级复杂
对于生产环境,建议优先选择官方提供的 RPM 包。除非有特殊需求(如需要自定义监控项或特定版本功能),才考虑源码编译。
实战安装步骤
1. 准备 EPEL 仓库
EPEL(Extra Packages for Enterprise Linux)仓库包含了许多常用软件包,包括 Zabbix Agent。
# CentOS 7
sudo yum install -y epel-release
# CentOS 8
sudo dnf install -y epel-release
2. 安装 Zabbix Agent
这里我们选择 Zabbix 6.0 LTS 版本,长期支持版更适合生产环境。
# 导入 Zabbix 官方仓库
sudo rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-3.el7.noarch.rpm
# 安装 agent
sudo yum install -y zabbix-agent
3. 关键配置文件调整
编辑 /etc/zabbix/zabbix_agentd.conf,重点关注以下参数:
# 被动模式监听的 IP(0.0.0.0 表示监听所有接口)ListenIP=0.0.0.0
# Zabbix Server 的 IP,多个 Server 用逗号分隔
Server=192.168.1.100
# 主动模式时连接的 Server 地址(可选)ServerActive=192.168.1.100
# 客户端主机名,必须与 Server 端配置一致
Hostname=centos-web-01
服务管理实战
systemd 常用命令
# 启动服务
sudo systemctl start zabbix-agent
# 设置开机自启
sudo systemctl enable zabbix-agent
# 检查状态(重点关注 Active 状态)sudo systemctl status zabbix-agent
安全增强配置
1. 防火墙放行
CentOS 默认的 firewalld 会阻止 Zabbix 通信:
# 添加 10050/tcp 端口规则(被动模式)sudo firewall-cmd --permanent --add-port=10050/tcp
# 添加 10051/tcp 端口规则(主动模式)sudo firewall-cmd --permanent --add-port=10051/tcp
# 重载配置
sudo firewall-cmd --reload
2. SELinux 策略调整
安全增强型 Linux(SELinux)可能会阻止 Agent 的网络访问:
# 临时允许网络访问
setsebool -P zabbix_can_network=1
# 如需完全禁用(不推荐生产环境)setenforce 0
常见问题排查
错误:ZBX_TCP_READ() timed out
这个经典错误通常由以下原因导致:
- 网络不通(检查防火墙 /SELinux)
- Server 地址配置错误
- 主机名不匹配(区分大小写)
验证方法:
# 在 Zabbix Server 执行测试
zabbix_get -s 客户端 IP -k "system.uname"
多网卡环境配置
当主机有多个网络接口时,建议明确指定监听 IP:
# 只监听内网 eth1 接口
ListenIP=192.168.1.50
进阶技巧
TLS 加密配置(示例)
在 zabbix_agentd.conf 中添加:
TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=web01_psk
TLSPSKFile=/etc/zabbix/zabbix_agentd.psk
生成 PSK 密钥:
echo "$(openssl rand -hex 32)" > /etc/zabbix/zabbix_agentd.psk
chown zabbix:zabbix /etc/zabbix/zabbix_agentd.psk
chmod 600 /etc/zabbix/zabbix_agentd.psk
监控项扩展思路
Zabbix Agent 支持通过 UserParameter 自定义监控项,例如监控 Nginx 状态:
- 在
/etc/zabbix/zabbix_agentd.d/下新建nginx.conf - 添加如下内容:
UserParameter=nginx.requests,curl -s http://localhost/nginx_status | grep '^' | awk '{print $$3}'
- 重启 Agent 后即可在 Server 端使用
nginx.requests作为键值采集数据
验证与思考
成功安装后,建议通过以下方式验证:
-
本地执行测试命令:
zabbix_agentd -t "system.cpu.load[all,avg1]" -
思考如何监控以下指标:
- 磁盘 inode 使用率
- 特定服务的 TCP 连接数
- 自定义业务日志关键字
这些扩展能力使得 Zabbix 可以灵活适应各种监控场景。
总结
通过本文的步骤,你应该已经完成了:
- 基础的 Zabbix Agent 安装与配置
- 服务管理与网络调优
- 常见问题的诊断方法
- 安全加固与功能扩展
建议在生产环境中逐步实施 TLS 加密和 SELinux 策略优化。遇到问题时,Zabbix 官方文档和日志文件(/var/log/zabbix/)是最直接的排错依据。
