Zabbix 6.4创建计算型Item Prototype时公式报错求助
解决Zabbix 6.4 Item Prototype公式报错问题
错误原因
你误用了net.if.in()作为计算函数,net.if.in是Zabbix预定义的Item键,并非计算型Item公式支持的函数,导致语法解析失败。另外,你的需求是计算比特/秒,还需完成字节到比特的单位转换(1字节=8比特)。
正确解决方案
方法1:引用已有的SNMP Item Prototype
若你已通过自动发现创建了对应ifHCInOctets和ifHCOutOctets的SNMP Item Prototype,它们的标准键值通常为:
- 接收字节计数器:
net.if.hcin[{#SNMPINDEX}] - 发送字节计数器:
net.if.hcout[{#SNMPINDEX}]
此时计算型Item的公式应写为:
rate(net.if.hcin[{#SNMPINDEX}])*8 + rate(net.if.hcout[{#SNMPINDEX}])*8
rate()函数:计算计数器的每秒变化率,得到字节/秒数值*8:将字节转换为比特,最终输出比特/秒数据
方法2:直接在公式中调用SNMP OID
若未预先创建对应SNMP Item,可直接在公式中引用SNMP OID:
rate(snmp.oid[1.3.6.1.2.1.31.1.1.1.6.{#SNMPINDEX}])*8 + rate(snmp.oid[1.3.6.1.2.1.31.1.1.1.10.{#SNMPINDEX}])*8
1.3.6.1.2.1.31.1.1.1.6:对应ifHCInOctets(64位接收字节计数器)1.3.6.1.2.1.31.1.1.1.10:对应ifHCOutOctets(64位发送字节计数器)
额外注意事项
- 确保
{#SNMPINDEX}宏在自动发现规则中正确获取,与目标设备接口的SNMP索引匹配 - 计算型Item的类型需设置为Calculated,信息类型选择
Numeric (float)或Numeric (unsigned),单位填写bps - 确认Zabbix Server有权限访问目标设备的对应SNMP OID
内容的提问来源于stack exchange,提问作者Bob R
相关产品推荐
相关产品推荐

