很多人以为:
Agent 安装成功 = 监控就正常了但现实是:
Agent 显示 Online,却一条数据都没有
日志不报错,但 Grafana / Latest data 一片空
同样的配置,A 主机有数据,B 主机没数据
这一讲,我们把 Zabbix Agent 从“工具”拆回“机制”,一次性解决这些反复踩坑的问题。
一、Agent 到底在系统里干了什么?
先别急着看配置项,先把 Agent 的真实职责讲清楚。
Zabbix Agent 本质上只做三件事:
采集本机指标
CPU、内存、磁盘、进程、日志、端口
根据模式,把数据交给 Server / Proxy
严格按 Item 定义执行命令
❗ Agent 不会主动采集一切
它只执行 Server / Proxy 告诉它要做的 Item
这句话很重要:
👉 没有 Item,就没有数据
👉 Agent 在线 ≠ 有采集任务
二、Agent 主动 / 被动模式怎么选
这是 Zabbix Agent 最容易被“装错认知”的地方。
1️⃣ 被动模式(Passive)
工作方式:
Server / Proxy 👉 主动连接 Agent
Agent 监听端口(默认 10050)
有防火墙 / NAT 就容易翻车
适用场景:
Server 和 Agent 在同一内网
网络路径稳定、端口可控
小规模环境
典型配置:
Server=192.168.10.10
ListenPort=10050
2️⃣ 主动模式(Active)【强烈推荐】
工作方式:
Agent 主动连接 Server / Proxy(10051)
Agent 拉取“自己要执行的 Item 列表”
不依赖 Server 反向访问 Agent
适用场景:
跨网段 / 跨防火墙
大规模部署
云 / 容器 / 异地机房
典型配置:
ServerActive=192.168.10.10
Hostname=web-01📌 大型环境 90% 用 Active
3️⃣ 一个必须说透的坑
❌ Agent 配了 Active
❌ Server 里 Host 还是默认 Passive👉 结果:Agent 在线,但无数据
因为:
Active 模式下
Server 不会主动 Poll
Agent 只执行“Active Item”
三、为什么 Agent 明明在线却“无数据”
这是你在一线运维中最常见的灵魂拷问。
我们直接给你一个 排查清单。
① Host 名字不一致(重灾区)
# agent.conf
Hostname=web-01Server 中 Host 名称必须完全一致:
❌ web01
❌ web-01.local
❌ IP 地址
✔ 必须 一字不差
② Item 类型选错
❗ Active Agent + Passive Item = 永远没数据
③ Item key 在 Agent 上不存在
Get value from agent failed: ZBX_NOTSUPPORTED说明:
Key 拼错
模块没启用
权限不足
例如:
EnableRemoteCommands=0却用了 system.run[]
④ Agent 没拿到配置
Active 模式下,Agent 会在日志中打印:
received configuration data没有这句:
Server / Proxy 地址错
Host 不存在
主机未启用
四、agent.conf 关键参数逐条解释
下面这些,是你必须理解的核心参数。
🔹 Server / ServerActive
Server=192.168.10.10
ServerActive=192.168.10.10
被动 / 主动模式的入口
可以同时存在
🔹 Hostname(最重要)
Hostname=web-01Active 模式下是 唯一身份标识
和 Server 中 Host Name 强绑定
🔹 Timeout
Timeout=30脚本 / 命令执行超时
默认 3 秒,经常不够
🔹 Include
Include=/etc/zabbix/zabbix_agentd.d/*.conf扩展监控(MySQL、Nginx、Redis)
模块化管理配置
🔹 LogRemoteCommands(排障神器)
LogRemoteCommands=1能看到 Agent 实际执行了什么
调试脚本必开
五、批量部署 Agent 的正确姿势(不是一台一台装)
如果你还在 手敲 agent.conf,说明你已经落后了。
✅ 正确思路 1:统一模板
固定 agent.conf 模板
只变:
Hostname
ServerActive
✅ 正确思路 2:自动注入 Hostname
HOSTNAME=$(hostname)
sed -i "s/^Hostname=.*/Hostname=${HOSTNAME}/" agent.conf✅ 正确思路 3:Agent 主动 + Proxy
大规模环境一定是:
Agent → Proxy → Server降低 Server 压力
网络边界更清晰
运维风险更低
六、本讲你真正应该记住的 5 句话
1️⃣ Agent 在线 ≠ 监控正常
2️⃣ 没有 Active Item,就没有 Active 数据
3️⃣ Hostname 是 Active Agent 的“身份证”
4️⃣ Agent 只执行 Item,不会自己采集
5️⃣ 大规模环境,Agent 永远优先 Active
本讲价值总结
这一讲解决的是 Zabbix 使用中最“反直觉”的问题:
❌ 为什么明明都装好了,却什么都看不到
❌ 为什么日志没报错,但就是没数据
当你真正理解了 Agent:
你不再靠“重启试试”
你能一眼判断是 模式错 / Item 错 / Host 错
你具备了 架构级排错能力