# Отправка SNMP traps из wb-rules

**URL:** <https://support.wirenboard.com/t/otpravka-snmp-traps-iz-wb-rules/19458>\
**Category:** Контроллеры Wiren Board\
**Tags:** wb-rules\
**Created:** [April 8, 2024, 10:56am UTC](https://support.wirenboard.com/t/otpravka-snmp-traps-iz-wb-rules/19458 "2024-04-08T10:56:19Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Morev](https://avatars.discourse-cdn.com/v2/letter/m/a9a28c/32.png) [@Morev](https://support.wirenboard.com/u/Morev)\
**Post date:** [April 8, 2024, 10:56am UTC](https://support.wirenboard.com/t/otpravka-snmp-traps-iz-wb-rules/19458/1 "2024-04-08T10:56:19Z")

</div>

Добрый день. Настроил работу SNMP Agent с возможность опроса (GET) и выгрузки данных от топиков через shell-скрипт.  
Теперь пытаюсь разобраться - как сделать отправку SNMP Trap по событию изменения топика с использованием правила whenChanged.  
Возможно ли сделать такой скрипт на wb-rules?  
Или есть ещё варианты?

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [April 8, 2024, 12:34pm UTC](https://support.wirenboard.com/t/otpravka-snmp-traps-iz-wb-rules/19458/2 "2024-04-08T12:34:29Z")

</div>

Добрый день. Описано в документации: [GitHub - wirenboard/wb-rules: Rule engine for Wiren Board](https://github.com/wirenboard/wb-rules?tab=readme-ov-file#%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA-%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D1%85-%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D0%B2-spawn)

---

<div class="post-metadata">

**Author:** ![Morev](https://avatars.discourse-cdn.com/v2/letter/m/a9a28c/32.png) [@Morev](https://support.wirenboard.com/u/Morev)\
**Post date:** [April 8, 2024, 1:10pm UTC](https://support.wirenboard.com/t/otpravka-snmp-traps-iz-wb-rules/19458/4 "2024-04-08T13:10:49Z")

</div>

А как сгенерировать сам SNMP Trap примеры есть?

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [April 8, 2024, 1:32pm UTC](https://support.wirenboard.com/t/otpravka-snmp-traps-iz-wb-rules/19458/5 "2024-04-08T13:32:57Z")

</div>

Ну, это совершенно стандартно и неспецифично для контроллера. На любом компьютере примерно так: [https://www.baeldung.com/linux/snmp-trap-send#bd-sending-snmp-traps](https://www.baeldung.com/linux/snmp-trap-send#bd-sending-snmp-traps)

---

<div class="post-metadata">

**Author:** ![Morev](https://avatars.discourse-cdn.com/v2/letter/m/a9a28c/32.png) [@Morev](https://support.wirenboard.com/u/Morev)\
**Post date:** [April 8, 2024, 1:59pm UTC](https://support.wirenboard.com/t/otpravka-snmp-traps-iz-wb-rules/19458/6 "2024-04-08T13:59:41Z")

</div>

Спасибо. Гуглить я и сам умею. Я не про это спрашивал. Топик mqtt в cli строке с командой snmptrap … как будет выглядеть? В какое поле SNMPv2-MiB значение топика подставлять? Нужно для этого свой MiB создавать?

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [April 8, 2024, 2:53pm UTC](https://support.wirenboard.com/t/otpravka-snmp-traps-iz-wb-rules/19458/7 "2024-04-08T14:53:31Z")

</div>

Значение топика - нужно предварительно получить и подставить передаваемым параметром.  
Про MIB - не понял совсем. В общем случае создавать не нужно.

---

<div class="post-metadata">

**Author:** ![Morev](https://avatars.discourse-cdn.com/v2/letter/m/a9a28c/32.png) [@Morev](https://support.wirenboard.com/u/Morev)\
**Post date:** [April 8, 2024, 7:42pm UTC](https://support.wirenboard.com/t/otpravka-snmp-traps-iz-wb-rules/19458/8 "2024-04-08T19:42:43Z")

</div>

А OID указывать нужно? Если мы указали OID 1.3.6.1.4.1.2021.8.4 и при помощи snmpwalk получили поддерево OID с значениями из shell-скрипта, то в snmptrap мы должны указать именно это поддерево, чтобы и GET и Trap давали одну и ту же информацию?

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [April 9, 2024, 9:01am UTC](https://support.wirenboard.com/t/otpravka-snmp-traps-iz-wb-rules/19458/9 "2024-04-09T09:01:31Z")

</div>

Да, конечно. Но - тут опять же, от задачи. Если именно трапы - внеочередные и их надо отрабатывать отдельно - то можно и другой OID.

Я пока не уверен что верно понимаю задачу целиком…

---

<div class="post-metadata">

**Author:** ![Morev](https://avatars.discourse-cdn.com/v2/letter/m/a9a28c/32.png) [@Morev](https://support.wirenboard.com/u/Morev)\
**Post date:** [April 9, 2024, 8:51pm UTC](https://support.wirenboard.com/t/otpravka-snmp-traps-iz-wb-rules/19458/10 "2024-04-09T20:51:39Z")

</div>

Задача - данные по одному и тому же OID, полученные GET и/или Trap должны совпадать. Для GET я задал OID 1.3.6.1.4.1.2021.8.4. Вопрос 1 - где взять OID, появляющиеся у топиков из скрипта, который отвечает на GET/WALK по заданному OID? Вопрос 2 - правильно ли использовать полученные OID для отправки значений топиков через Trap?

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [April 10, 2024, 7:51am UTC](https://support.wirenboard.com/t/otpravka-snmp-traps-iz-wb-rules/19458/11 "2024-04-10T07:51:47Z")

</div>

> [@Morev](#):
>
> Для GET я задал OID 1.3.6.1.4.1.2021.8.4. Вопрос 1 - где взять OID, появляющиеся у топиков из скрипта, который отвечает на GET/WALK по заданному OID?

snmpd добавляет к заданному OID значения в порядке их вывода из внешнего скрипта. Если скрипт отдает всегда значения в одном и том же порядке - то можно использовать именно его.

> [@Morev](#):
>
> Вопрос 2 - правильно ли использовать полученные OID для отправки значений топиков через Trap?

Я не скажу, тут нет с моей точки зрения именно правильного ответа.
