Ubuntu上如何配置Zabbix Agent实现服务器监控?

来源:我的博客作者:樱由罗头衔:网络博主
导读:本期聚焦于樱由罗创作的《Ubuntu上如何配置Zabbix Agent实现服务器监控?》,敬请观看详情。服务器数量一多,靠人工登录查看CPU、内存和磁盘就变得不现实,Zabbix Agent正是解决这个问题的轻量级方案。本文以Ubuntu系统为例,详细介绍Zabbix Agent的完整配置流程,包括软件源的添加与安装、配置文件中Server和ServerActive参数的详细说明、被动模式与主动模式的区别对比、防火墙端口放行方法,以及在Zabbix服务端添加主机的验证步骤。文中还整理了常见报错的排查思路,例如无法连接、主机名称不匹配等问题的解决办法,帮助你快速把一台Ubuntu服务器接入Zabbix监控体系。

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

Ubuntu上如何配置Zabbix Agent实现服务器监控?

一、安装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端10050Server端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 10050nc -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

免责声明:已尽一切努力确保本网站所含信息的准确性。网站作品多为原创整理与精心创作,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们进行处理Email:chomcom@qq.com。
引用或转载本作品时,请注明当前出处:https://www.ipipp.com/html/20260915/57405.html,基于非商业用途的前提下,欢迎转载或二创本作品。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。