Zabbix作为一款开源的监控系统,在企业运维中占有相当高的比重。要让Zabbix采集到服务器的各项指标,被监控端必须安装Zabbix Agent。Ubuntu系统本身的软件源里带了一个zabbix-agent包,但版本往往比较旧,和Zabbix Server端版本不匹配时容易出现数据无法上报的问题,所以推荐使用官方源安装。下面从头到尾走一遍完整的配置流程。

一、安装Zabbix Agent
假设Zabbix Server使用的是6.0 LTS版本,那么Agent也建议安装同一大版本,避免兼容性问题。首先在Ubuntu上下载并安装官方的软件源包。以Ubuntu 22.04为例:
wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu22.04_all.deb dpkg -i zabbix-release_6.0-4+ubuntu22.04_all.deb apt update apt install zabbix-agent2 -y
这里选择安装zabbix-agent2而不是传统的zabbix-agent。agent2是Go语言重写的版本,插件体系更灵活,默认支持监控Docker、MySQL等常见服务,而且官方已经将其作为主力维护对象。当然如果只是基础的CPU、内存、磁盘采集,两者都能满足需求,老版本agent在长期运行的服务器上也依然稳定。
安装完成后可以通过命令确认版本信息:
zabbix_agent2 -V systemctl status zabbix-agent2
如果服务状态显示active (running),说明安装这一步没有问题。接下来才是整个流程中最关键的环节:修改配置文件。
二、核心配置参数详解
配置文件位于/etc/zabbix/zabbix_agent2.conf(老版本agent是/etc/zabbix/zabbix_agentd.conf)。用编辑器打开后,重点关照下面几个参数:
# 允许哪个Zabbix Server来拉取数据,支持多个IP,逗号分隔 Server=192.168.1.100 # 主动模式下Agent向哪个Server推送数据 ServerActive=192.168.1.100 # 主机名,必须和Zabbix前端添加主机时的名称完全一致 Hostname=web-server-01 # 监听端口,默认10050 ListenPort=10050 # 日志级别,排查问题时可以临时调到4或5 DebugLevel=3
Server这个参数控制的是被动模式的访问白名单。Zabbix Server会主动连接Agent的10050端口来获取数据,只有IP写在Server参数里的服务端才被允许连接,这是一个天然的安全限制,生产环境务必填写精确的IP而不是网段。
ServerActive用于主动模式。主动模式下是Agent主动连接服务端的10051端口推送数据,适合服务器数量多、或者被监控端在NAT后面无法被服务端直接访问的场景。两种模式的区别可以简单对比:
| 对比项 | 被动模式 | 主动模式 |
|---|---|---|
| 连接发起方 | Zabbix Server发起 | Agent发起 |
| 使用端口 | Agent端10050 | Server端10051 |
| 适用场景 | 服务器数量少 | 大规模监控、NAT环境 |
| Server负载 | 较高 | 较低 |
Hostname是最容易踩坑的一项。它必须和Zabbix Web界面里添加主机时填写的Host name一字不差,包括大小写和横线。很多新手配置完发现前端一直显示红色ZBX图标不可用,反复检查网络和防火墙都没问题,最后发现就是主机名对不上。
修改完成后重启服务并设置开机自启:
systemctl restart zabbix-agent2 systemctl enable zabbix-agent2
三、防火墙放行与服务端验证
如果Ubuntu启用了ufw防火墙,需要放行10050端口(被动模式),主动模式则不需要在被监控端开端口:
ufw allow 10050/tcp ufw reload
云服务器场景还要记得在控制台的安全组里放行对应端口,这是比系统防火墙更容易被忽略的一层。
接着到Zabbix Web前端添加主机:进入Configuration菜单,选择Hosts,点击Create host。Host name填写配置文件里Hostname的值,Groups选择Linux servers,Interfaces处添加Agent接口并填入这台Ubuntu服务器的IP。然后在Templates选项卡里关联Template OS Linux by Zabbix agent模板,保存即可。
回到被监控端,可以先手动测试Agent是否工作正常:
zabbix_get -s 192.168.1.20 -p 10050 -k system.uname
这条命令在Zabbix Server上执行,如果能返回系统内核信息,说明链路完全打通。等一两分钟,前端主机列表的Availability列出现绿色的ZBX标记,监控数据就开始正常采集了。
四、常见问题排查
如果验证阶段失败,可以按下面几条思路排查。
第一,用telnet 192.168.1.20 10050或nc -zv测试端口连通性,不通就检查防火墙和安全组。第二,查看Agent日志/var/log/zabbix/zabbix_agent2.log,里面会明确记录拒绝连接的来源IP,如果出现denied字样,说明Server参数里没写上服务端IP。第三,确认Hostname一致性,这一条前面已经强调过。第四,如果用的是agent2,注意它的配置文件名和systemd服务名都带2,别改错了文件导致重启的是另一个服务。
另外还有一类情况是Server端Proxy架构导致的。如果环境中部署了Zabbix Proxy,那么被监控端的Server和ServerActive都应该填Proxy的IP,而不是Zabbix Server本身的地址,这一点在多层架构的机房里尤其常见。掌握这些要点后,把Ubuntu服务器批量接入Zabbix监控就不是难事了,配合自动化工具批量下发配置文件,几十台机器也能在很短的时间内完成部署。
Zabbix AgentUbuntu服务器监控Zabbix安装配置修改时间:2026-09-15 17:28:36