Назад | Перейти на главную страницу

Какая доза требуется, чтобы traphandle работал для отдельного OID с Net-SNMP?

В Ubuntu 18.04, работающем в подсистеме Windows для Linux (WSL 1), я могу иметь triphandle работая на default, но не может использовать индивидуальный OID, как показано ниже за исключением snmptrapd.conf:

traphandle default /usr/bin/trapHandler default /tmp/trap_handling.log.csedevups # <-- the script got called

traphandle UPS-MIB::upsTrapOnBattery /usr/bin/trapHandeler upsTrapOnBattery /tmp/trap_handling.log.csedevups # <-- the same script never got called when the trap is sent.

Скрипт соответствует default был вызван, когда отправлено любое прерывание.

Но тот же сценарий для определенного OID, когда отправляется прерывание для этого OID, никогда не вызывает сценарий. Собственно, при наличии конфигурации traphandle индивидуальный OID, то не из traphandle работает, даже не для default что раньше работало.

Слежу за syslog, а также за snmptrap.log, подтвердил, что все ловушки получены. Я не нахожу соответствующей ошибки.

При запуске snmptrapd действительно произошла ошибка:

snmptrapd[1418]: Bad operator (INTEGER): At line 73 in /usr/share/snmp/mibs/ietf/SNMPv2-PDU

Это сообщение об ошибке существует уже давно. Я не видел, связано ли это с моей текущей проблемой.

Я смутно помню, что пробовал другой OID не из UPS-MIB, также пробовал oid в числовых значениях, ни один из них не имел никакого значения.

Интересно, в чем основная причина проблемы?

Еще более загадочно то, что в другом Ubuntu 18.04, работающем на родном языке, а не на WSL, с тем же 5.7.3 Net-SNMP и без видимой разницы в snmp.conf snmpd.conf и snmptrapd.conf, в этом родном Ubuntu traphandle работает даже для индивидуальный OID. Я до сих пор не могу воспроизвести тот успех.

Единственная разница в том, что я не уверен, имеет ли это значение. Для собственного Ubuntu я запустил snmptrapd и snmpd как службы,

systmctl start snmptrapd

Но в WSL мне пришлось начинать как snmptrapd в командной строке.

Я предполагаю, что он более производительный, используя Net-SNMP snmptrapd traphandle механизм для индивидуальных ловушек. В качестве обходного пути я могу выполнить отправку и фильтрацию в моем собственном сценарии, чтобы преодолеть ограничение. Но это может быть не масштабируемым при большом количестве ловушек.