被监控的Proxmox宿主机未在Zabbix仪表盘‘Top hosts by CPU utilization’组件中显示的问题求助
被监控的Proxmox宿主机未在Zabbix仪表盘‘Top hosts by CPU utilization’组件中显示的问题求助
哥们,我之前踩过几乎一模一样的坑,大概率是模板监控项和仪表盘组件默认依赖的指标不匹配导致的,给你一步步捋排查和解决办法:
先搞懂核心原因
Zabbix自带的「Top hosts by CPU utilization」组件,默认是抓取system.cpu.util[,idle]这个监控项的数据(通过100减去空闲率来计算CPU使用率),而你用的「Proxmox VE by HTTP」模板,用的是PVE专属的CPU监控项(比如pve.node.cpu.util这类键值),组件找不到它要的指标,自然就不显示这些主机了。
第一步:确认你的PVE主机有没有组件需要的监控项
- 进入Zabbix后台,点击左侧菜单的【配置】→【主机】
- 找到你的PVE主机,点击它的【监控项】标签
- 搜索「cpu」关键词,看看有没有
system.cpu.util开头的监控项——如果没有,就说明这个模板没带标准Linux CPU监控项,这就是问题根源。
两种解决办法任你选
办法一:给PVE主机加标准Linux模板(最省心)
因为Proxmox本质是基于Debian的Linux系统,直接给主机添加「Linux by Zabbix agent」模板就行:
- 回到主机的【模板】标签,点击【链接新模板】
- 搜索「Linux by Zabbix agent」并添加,确保主机上的Zabbix Agent已经正常运行、端口(默认10050)能通
- 等个5-10分钟,让Zabbix采集到新的CPU数据,再去看仪表盘组件,应该就能看到这些PVE主机了。
办法二:修改仪表盘组件的数据源(适配PVE模板)
如果你不想加额外模板,可以直接调整组件的指标配置:
- 打开仪表盘,找到「Top hosts by CPU utilization」组件,点击右上角的【编辑】按钮
- 切换到【数据源】标签,找到【指标】配置项
- 把原来的
system.cpu.util[,idle]替换成你PVE主机上的CPU使用率监控项键值(比如pve.node.cpu.util,具体以你监控项里的实际键值为准) - 注意:如果PVE的监控项返回的是直接的CPU使用率(不是空闲率),还要把组件里的计算逻辑调整一下——原来的逻辑是
100 - last(0),改成直接用last(0)就行。
额外排查小细节
- 确认你的PVE主机状态是「已启用」,监控项也没有被禁用
- 去Zabbix服务器的日志(默认路径
/var/log/zabbix/zabbix_server.log)里搜搜主机名,看看有没有数据采集失败的报错(比如HTTP认证问题、Agent连接失败) - 别着急刷新,修改配置后至少等几分钟,给数据采集和计算留时间。
备注:内容来源于stack exchange,提问作者mr.zog




