Agent SNMP: различия между версиями

Материал из Wiren Board
(→‎Контроллер как источник SNMP: Добавил дисклеймер)
Строка 26: Строка 26:
extend .1.3.6.1.4.1.2021.8 tt /var/lib/snmp/mqtt-snmp.sh
extend .1.3.6.1.4.1.2021.8 tt /var/lib/snmp/mqtt-snmp.sh
</syntaxhighlight>
</syntaxhighlight>
Дополнительную информацио о параметрах конфигурационного файла можно в [https://www.opennet.ru/cgi-bin/opennet/man.cgi?topic=snmpd.conf&category=5  документации snmpd]


== Добавление скрипта ==
== Добавление скрипта ==

Версия 09:28, 27 мая 2022

Контроллер как источник SNMP

Иногда нужно получать какие-то параметры из контроллера по SNMP, например, значения топиков. Для реализации требуется установить и настроить на контроллере агента SNMP.

Решение базируется на демоне snmpd, который разрабатывается и поддерживается открытым сообществом. Здесь даны общие рекомендации, подробную информацию ищите в официальной документации (англ).

Установка и предварительная настройка пакетов

Обновите источники и установите пакеты snmp и snmpd:

apt update && apt-get install snmp snmpd -y

Отредактируйте основной файл конфигурации демона:

mcedit /etc/snmp/snmpd.conf

В секцию # ACCESS CONTROL допишите строчку:

view   systemonly  included   .1.3.6.1.4.1.2021.8

А в конец файла допишите ссылку на скрипт:

extend .1.3.6.1.4.1.2021.8 tt /var/lib/snmp/mqtt-snmp.sh

Дополнительную информацио о параметрах конфигурационного файла можно в документации snmpd

Добавление скрипта

Отредактируйте скрипт /var/lib/snmp/mqtt-snmp.sh

mcedit /var/lib/snmp/mqtt-snmp.sh

И приведите его к виду:

#!/bin/sh
echo "mosquitto topics"
# voltage Vout
echo $(/usr/bin/mosquitto_sub -C 1 -t "/devices/wb-adc/controls/5Vout" 2>/dev/null)
# voltage Vin
echo $(/usr/bin/mosquitto_sub -C 1 -t "/devices/wb-adc/controls/Vin" 2>/dev/null)

Установите права:

chmod a+rx /var/lib/snmp/mqtt-snmp.sh

Теперь добавляем в этот скрипт нужные топики, или создаем несколько скриптов с разными наборами. Если вы создаете несколько скриптов, не забудьте дописать ссылки на них в конец файла /etc/snmp/snmpd.conf.

После сохранения изменений в скрипте, перезапустите демон snmpd:

systemctl restart snmpd && systemctl status snmpd

Можно протестировать:

snmpwalk -On -v2c -c public 127.0.0.1 1.3.6.1.4.1.2021.8.4