snmpbulkwalk 在某些 OID 处挂起

Sam*_*tch 2 snmp snmpd check-mk net-snmp

在 Check_MK 中为仅 SNMP 监控设置一些主机时,我发现一些主机snmpbulkwalk似乎“挂起”,然后在处理某个 OID 时超时。

例如:

OMD[prod]:~$ snmpbulkwalk -v 2c -c public compute01.domain.com .1.3.6.1.4.1.2021
UCD-SNMP-MIB::memIndex.0 = INTEGER: 0
UCD-SNMP-MIB::memErrorName.0 = STRING: swap
UCD-SNMP-MIB::memTotalSwap.0 = INTEGER: 88109052 kB
UCD-SNMP-MIB::memAvailSwap.0 = INTEGER: 88109052 kB
UCD-SNMP-MIB::memTotalReal.0 = INTEGER: 131860964 kB
UCD-SNMP-MIB::memAvailReal.0 = INTEGER: 94429952 kB
UCD-SNMP-MIB::memTotalFree.0 = INTEGER: 182539004 kB
UCD-SNMP-MIB::memMinimumSwap.0 = INTEGER: 16000 kB
UCD-SNMP-MIB::memShared.0 = INTEGER: 0 kB
UCD-SNMP-MIB::memBuffer.0 = INTEGER: 188772 kB
UCD-SNMP-MIB::memCached.0 = INTEGER: 6685180 kB
UCD-SNMP-MIB::memSwapError.0 = INTEGER: noError(0)
UCD-SNMP-MIB::memSwapErrorMsg.0 = STRING:
UCD-SNMP-MIB::laIndex.1 = INTEGER: 1
UCD-SNMP-MIB::laIndex.2 = INTEGER: 2
UCD-SNMP-MIB::laIndex.3 = INTEGER: 3
UCD-SNMP-MIB::laNames.1 = STRING: Load-1
UCD-SNMP-MIB::laNames.2 = STRING: Load-5
UCD-SNMP-MIB::laNames.3 = STRING: Load-15
UCD-SNMP-MIB::laLoad.1 = STRING: 3.91
Timeout: No Response from compute01.domain.com
Run Code Online (Sandbox Code Playgroud)

snmpwalk,另一方面,工作得很好:

OMD[prod]:~$ snmpwalk -v 2c -c public compute01.domain.com .1.3.6.1.4.1.2021
UCD-SNMP-MIB::memIndex.0 = INTEGER: 0
UCD-SNMP-MIB::memErrorName.0 = STRING: swap
UCD-SNMP-MIB::memTotalSwap.0 = INTEGER: 88109052 kB
UCD-SNMP-MIB::memAvailSwap.0 = INTEGER: 88109052 kB
UCD-SNMP-MIB::memTotalReal.0 = INTEGER: 131860964 kB
UCD-SNMP-MIB::memAvailReal.0 = INTEGER: 94424732 kB
UCD-SNMP-MIB::memTotalFree.0 = INTEGER: 182533784 kB
UCD-SNMP-MIB::memMinimumSwap.0 = INTEGER: 16000 kB
UCD-SNMP-MIB::memShared.0 = INTEGER: 0 kB
UCD-SNMP-MIB::memBuffer.0 = INTEGER: 188772 kB
UCD-SNMP-MIB::memCached.0 = INTEGER: 6685188 kB
UCD-SNMP-MIB::memSwapError.0 = INTEGER: noError(0)
UCD-SNMP-MIB::memSwapErrorMsg.0 = STRING:
UCD-SNMP-MIB::laIndex.1 = INTEGER: 1
UCD-SNMP-MIB::laIndex.2 = INTEGER: 2
UCD-SNMP-MIB::laIndex.3 = INTEGER: 3
UCD-SNMP-MIB::laNames.1 = STRING: Load-1
UCD-SNMP-MIB::laNames.2 = STRING: Load-5
UCD-SNMP-MIB::laNames.3 = STRING: Load-15
UCD-SNMP-MIB::laLoad.1 = STRING: 3.97
UCD-SNMP-MIB::laLoad.2 = STRING: 4.51
UCD-SNMP-MIB::laLoad.3 = STRING: 4.35
UCD-SNMP-MIB::laConfig.1 = STRING: 12.00
UCD-SNMP-MIB::laConfig.2 = STRING: 12.00
UCD-SNMP-MIB::laConfig.3 = STRING: 12.00
UCD-SNMP-MIB::laLoadInt.1 = INTEGER: 397
UCD-SNMP-MIB::laLoadInt.2 = INTEGER: 451
UCD-SNMP-MIB::laLoadInt.3 = INTEGER: 434
UCD-SNMP-MIB::laLoadFloat.1 = Opaque: Float: 3.970000
UCD-SNMP-MIB::laLoadFloat.2 = Opaque: Float: 4.510000
UCD-SNMP-MIB::laLoadFloat.3 = Opaque: Float: 4.350000
...
Run Code Online (Sandbox Code Playgroud)

这发生在 3 个具有相同配置的不同服务器上,我在日志或 snmpd 配置中找不到任何似乎表明任何问题的内容。

任何想法可能是什么问题,或者我还能看什么?

Ven*_*min 5

Snmpbulkwalk 启动内部服务器重复以遍历 mib 树。服务器直到它检索到“最大重复”变量数或达到 mib 树的末尾时才会响应。检索某些变量可能需要宝贵的时间。

重要说明:snmpwalk 准确地遍历请求的子树,但由于上述行为,snmpbulkwalk 可能会检索其他变量(在到达子树末尾之后)。因此,它可能会偶然发现这些额外的变量,而这些变量永远不会被 snmpwalk 触及。

尝试减少对应于“max-repetitions”的选项和/或增加 snmpbulkwalk 的超时选项。