Добрый день. Настроил работу SNMP Agent с возможность опроса (GET) и выгрузки данных от топиков через shell-скрипт.
Теперь пытаюсь разобраться - как сделать отправку SNMP Trap по событию изменения топика с использованием правила whenChanged.
Возможно ли сделать такой скрипт на wb-rules?
Или есть ещё варианты?
Добрый день. Описано в документации: GitHub - wirenboard/wb-rules: Rule engine for Wiren Board
А как сгенерировать сам SNMP Trap примеры есть?
Ну, это совершенно стандартно и неспецифично для контроллера. На любом компьютере примерно так: https://www.baeldung.com/linux/snmp-trap-send#bd-sending-snmp-traps
Спасибо. Гуглить я и сам умею. Я не про это спрашивал. Топик mqtt в cli строке с командой snmptrap … как будет выглядеть? В какое поле SNMPv2-MiB значение топика подставлять? Нужно для этого свой MiB создавать?
Значение топика - нужно предварительно получить и подставить передаваемым параметром.
Про MIB - не понял совсем. В общем случае создавать не нужно.
А OID указывать нужно? Если мы указали OID 1.3.6.1.4.1.2021.8.4 и при помощи snmpwalk получили поддерево OID с значениями из shell-скрипта, то в snmptrap мы должны указать именно это поддерево, чтобы и GET и Trap давали одну и ту же информацию?
Да, конечно. Но - тут опять же, от задачи. Если именно трапы - внеочередные и их надо отрабатывать отдельно - то можно и другой OID.
Я пока не уверен что верно понимаю задачу целиком…
Задача - данные по одному и тому же OID, полученные GET и/или Trap должны совпадать. Для GET я задал OID 1.3.6.1.4.1.2021.8.4. Вопрос 1 - где взять OID, появляющиеся у топиков из скрипта, который отвечает на GET/WALK по заданному OID? Вопрос 2 - правильно ли использовать полученные OID для отправки значений топиков через Trap?
snmpd добавляет к заданному OID значения в порядке их вывода из внешнего скрипта. Если скрипт отдает всегда значения в одном и том же порядке - то можно использовать именно его.
Я не скажу, тут нет с моей точки зрения именно правильного ответа.