Agent SNMP

Материал из Wiren Board
Версия от 19:04, 21 января 2021; Brainroot (обсуждение | вклад) (Создал, разделив статью на две.)

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

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

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

Обновите источники и установите пакеты 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

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

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

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

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

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

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

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