В 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
механизм для индивидуальных ловушек. В качестве обходного пути я могу выполнить отправку и фильтрацию в моем собственном сценарии, чтобы преодолеть ограничение. Но это может быть не масштабируемым при большом количестве ловушек.