共计 2107 个字符,预计需要花费 6 分钟才能阅读完成。
技术背景
Zabbix Agent 是 Zabbix 监控系统中部署在被监控主机上的轻量级代理程序,负责收集本地系统指标(如 CPU、内存、磁盘等)并上报给 Zabbix Server。在 CentOS 环境下部署时,我们需要考虑以下特点:

- CentOS 7/ 8 默认使用 systemd 管理服务
- 安全机制严格(SELinux、firewalld 默认开启)
- 生产环境通常需要长期稳定运行
安装方案对比
RPM 包安装(推荐大多数场景)
优点:
- 安装快捷,自动解决依赖
- 官方仓库保持版本更新
- 标准化服务管理脚本
操作步骤(需要 root 权限):
# 添加 Zabbix 官方仓库
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
# 安装 agent
yum install zabbix-agent
常见依赖问题解决:
- 若缺少 fping 等工具:
yum install fping - 老旧系统需升级 OpenSSL:
yum update openssl
源码编译安装(适合定制化需求)
适用场景:
- 需要特定版本或功能模块
- 深度性能调优
- 特殊架构支持
编译示例:
tar -zxvf zabbix-6.0.0.tar.gz
cd zabbix-6.0.0
./configure --enable-agent
make install
核心配置详解
关键配置文件位置:/etc/zabbix/zabbix_agentd.conf
基础参数模板
# 被动模式连接地址(需与 Server 配置一致)Server=192.168.1.100
# 主动模式地址(可选)ServerActive=192.168.1.100
# 主机名(需唯一)Hostname=web-server-01
# 日志设置
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=50
DebugLevel=3
自定义监控项示例
- 简单示例:监控登录用户数
UserParameter=users.count,who | wc -l
- 中级示例:监控 Nginx 活跃连接数
UserParameter=nginx.active_conn,curl -s http://localhost/nginx_status | awk '/Active connections/{print $3}'
- 复杂示例:带参数的 MySQL 查询监控
UserParameter=mysql.query[*],mysql -u$1 -p$2 -e "SELECT $3 FROM $4" | sed -n '2p'
服务管理
systemd 单元配置
查看服务状态:
systemctl status zabbix-agent
自定义服务参数(创建覆盖文件):
# /etc/systemd/system/zabbix-agent.service.d/override.conf
[Service]
LimitNOFILE=65535
Environment="ZBX_ARGS=--config /etc/zabbix/zabbix_agentd.conf"
日志轮转配置
编辑/etc/logrotate.d/zabbix-agent:
/var/log/zabbix/zabbix_agentd.log {
weekly
missingok
rotate 12
compress
delaycompress
notifempty
create 0640 zabbix zabbix
}
生产环境适配
SELinux 策略调整
临时放行:
setsebool -P zabbix_can_network=1
永久解决方案(建议):
semanage port -a -t zabbix_port_t -p tcp 10050
防火墙规则
firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --reload
性能调优参数
# 连接池大小
StartAgents=10
# 超时设置
Timeout=30
# 监控项缓存
BufferSize=1000
避坑指南
常见错误代码
- 32500:权限被拒绝 → 检查 SELinux 和文件权限
- 111:连接被拒绝 → 检查防火墙和 Server 地址
- 105:超时 → 检查网络延迟或增大 Timeout 值
连接测试方法
从 Agent 端测试:
zabbix_get -s 127.0.0.1 -k "system.cpu.util[,idle]"
验证与测试
完整检查清单:
-
服务状态验证
systemctl is-active zabbix-agent -
端口监听检查
ss -tlnp | grep zabbix -
日志检查
tail -20 /var/log/zabbix/zabbix_agentd.log -
Server 端测试
zabbix_get -s <agent_ip> -k "system.uname"
延伸阅读
实际部署时,建议先在测试环境验证配置,再批量推送到生产环境。遇到问题可通过 DebugLevel=4 获取详细日志,多数连接问题都能通过 telnet <server_ip> 10050 快速定位网络层问题。
正文完
