Zabbix 7.0.4中创建Proxmox VE内存使用率监控项原型报错
解决Zabbix 7.0.4中Proxmox模板计算监控项原型报错的方案
一、内存使用率计算监控项的问题排查与修复
1. 核对宏变量正确性
先确认模板自动发现规则里的节点宏名是否为{#NODE.NAME}——进入模板的自动发现规则,查看Proxmox节点发现的宏定义,部分模板可能用{#NAME}等其他命名,宏名不匹配会直接导致找不到对应监控项。
2. 修正计算表达式(防除零+语法合规)
Zabbix 7.x中计算监控项需避免除以0的情况,把原表达式替换为带安全判断的版本:
100 * last(/Proxmox VE by HTTP/proxmox.node.memused[{#NODE.NAME}]) / (last(/Proxmox VE by HTTP/proxmox.node.memtotal[{#NODE.NAME}]) > 0 ? last(/Proxmox VE by HTTP/proxmox.node.memtotal[{#NODE.NAME}]) : 1)
3. 确认基础监控项的有效性
- 去监测→最新数据搜索
proxmox.node.memused和proxmox.node.memtotal,确认这两个监控项原型已生成实际监控项且有数据返回。 - 检查模板是否已正确链接到Proxmox主机,自动发现规则是否执行并获取到节点列表。
4. 监控项原型配置细节
- 类型选
计算,信息类型设为浮点数,单位填%。 - 应用集选择与原有内存监控项一致的分组(比如
Memory),方便后续Grafana统一展示。
二、文件系统使用率监控项的通用配置
按照同样逻辑配置文件系统使用率:
- 找到模板中文件系统自动发现的宏(比如
{#FSNAME}或{#MOUNTPOINT}) - 套用安全计算表达式:
100 * last(/Proxmox VE by HTTP/proxmox.fs.used[{#FSNAME}]) / (last(/Proxmox VE by HTTP/proxmox.fs.size[{#FSNAME}]) > 0 ? last(/Proxmox VE by HTTP/proxmox.fs.size[{#FSNAME}]) : 1)
- 配置信息类型为浮点数,单位
%,应用集选Filesystems - 配置完成后,等待自动发现执行生成监控项,即可在Grafana中拉取数据做面板,同时设置告警阈值(比如使用率超90%触发告警)
三、调试验证方法
- 配置完监控项原型后,进入监测→自动发现,点击对应规则的检查按钮,确认宏变量能正确匹配资源。
- 等待5-10分钟后去最新数据查看新监控项的返回情况,若仍报错,查看Zabbix Server日志(通常路径
/var/log/zabbix/zabbix_server.log),根据错误提示定位问题。
内容的提问来源于stack exchange,提问作者roteki
相关产品推荐
相关产品推荐

