虚拟化容器,大数据,DBA,中间件,监控。

“批量请求”导致 Zabbix “Value has unknown type 0x05”

07 02月
作者:admin|分类:应用管理|标签:zabbix

问题引入

有一台 Ruijie 的 S2910 交换机在做我 HomeLab 的 TOR。因为 Ruijie 私有 MIB 的原因,Zabbix 这边一直缺一个完整的模板,五一期间抽空完善了一下模板,采集的信息趋于完善。接口自动发现,触发器自动配置,风扇,接口,温度啥的信息终于都全了。

但 Zabbix 在采集数据时,有些监控值会周期性不可用,提示“Value has unknown type 0x05”。日志如下,/var/log/zabbix_server.log

1
2
3
4
5
6
7
2137444:20220504:232103.943 item "HomeLab-TOR-S2910:net.if.in[ifHCInOctets.15]" became not supported: Value has unknown type 0x05
2137444:20220504:232103.943 item "HomeLab-TOR-S2910:net.if.out.discards[ifOutDiscards.9]" became not supported: Value has unknown type 0x05
2137444:20220504:232103.944 item "HomeLab-TOR-S2910:net.if.in.errors[ifInErrors.15]" became not supported: Value has unknown type 0x05
2137444:20220504:232104.067 item "HomeLab-TOR-S2910:net.if.in[ifHCInOctets.9]" became not supported: Value has unknown type 0x05
2137444:20220504:232104.068 item "HomeLab-TOR-S2910:net.if.out[ifHCOutOctets.21]" became not supported: Value has unknown type 0x05
2137444:20220504:232104.068 item "HomeLab-TOR-S2910:net.if.out.errors[ifOutErrors.3]" became supported
2137444:20220504:232104.068 item "HomeLab-TOR-S2910:net.if.in[ifHCInOctets.13]" became supported

是 OID 不对吗,也不是,snmpget unsupported 的 OID,均能返回正常的值,而且并不是每个采集周期 Zabbix 都无法 Get 到值。

问题处理

最后发现是 “bulk request” 造成的,中文版本翻译为“批量请求” or “大量请求”。在设备采集配置中,关闭 “bulk request” 即可。

为什么会这样

需要了解一下什么是 BR(Bulk Request)。

Zabbix Server 会定期向主机请求值,Zabbix 可以一次请求一个或多个值。Zabbix 会默认尝试一次获取多个值,也就是我们所说的批量请求。
但是这个批量是一个增量的过程,正常情况下 Zabbix 会试探性的获取值,直到可以一次性查询所有 SNMP 项目或因为设备无 SNMP 响应而终止。

关联代码:https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/src/zabbix_server/poller/checks_snmp.c

大量请求 就是 SNMPv2 的 GetBulkRequest 在 Zabbix 中的实现。

因为 SNMPv2 响应不是原子性的,被采集机器无法处理 BulkRequest 请求时,部分响应失败,最终会只响应部分结果。

浏览562 评论0
返回
目录
返回
首页
HAProxy之二----HAProxy实现高级负载均衡实战和ACL控制 Mysql innoDb参数配置优化大全