snmpbulkwalk зависает при определенных OID

При настройке некоторых хостов в 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

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
...

Это происходит на 3 разных серверах с одинаковыми конфигурациями, и я не могу найти ничего в журналах или конфигурации snmpd, которые, казалось бы, указывали бы на любую проблему.

Любые идеи, в чем может быть проблема, или что еще я могу посмотреть?

1 ответ

Snmpbulkwalk инициирует повторения внутренних серверов для обхода дерева MIB. Сервер не отвечает до тех пор, пока не получит число "max-повторений", или достигнут конец дерева MIB. Получение некоторых переменных может потребовать драгоценного времени.

Важное примечание: snmpwalk проходит через запрошенное поддерево точно, но snmpbulkwalk может получить дополнительные переменные (после достижения конца поддерева) из-за поведения, описанного выше. Таким образом, он может наткнуться на эти дополнительные переменные, которые никогда не могут быть затронуты snmpwalk.

Попробуйте уменьшить параметр, соответствующий параметру "max-repetitions" и / или увеличить время ожидания для snmpbulkwalk.

Я испытываю ту же проблему с snmpbulkwalk при запросе столбцов таблиц для некоторого сетевого оборудования. Уменьшение max-repetitions помогает.

Другие вопросы по тегам