Agent SNMP: различия между версиями
Admin (обсуждение | вклад) |
|||
(не показаны 3 промежуточные версии 1 участника) | |||
Строка 10: | Строка 10: | ||
Обновите источники и установите пакеты <code>snmp</code> и <code>snmpd</code>: | Обновите источники и установите пакеты <code>snmp</code> и <code>snmpd</code>: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
apt update && apt - | apt update && apt-get install snmp snmpd -y | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 18: | Строка 18: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
В раздел <code># SECTION: Access Control Setup</code> допишите строчки: | |||
<syntaxhighlight lang="bash"> | |||
view systemonly included .1.3.6.1.4.1.2021.8 | view systemonly included .1.3.6.1.4.1.2021.8 | ||
view systemonly included .1.3.6.1.4.1.2021.9 | view systemonly included .1.3.6.1.4.1.2021.9 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
А в конец файла допишите ссылки на скрипты: | |||
<syntaxhighlight lang="bash"> | |||
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 | ||
pass .1.3.6.1.4.1.2021.9 /var/lib/snmp/mqtt-snmp_pass.sh | pass .1.3.6.1.4.1.2021.9 /var/lib/snmp/mqtt-snmp_pass.sh | ||
Строка 32: | Строка 34: | ||
== Добавление скрипта == | == Добавление скрипта == | ||
В [[ | В [[Wiren_Board_Firmware_Update | релизе]] wb-2304 и более новых сервис snmpd запускается от имени пользователя "Debian-snmp". Требуется коррекция прав: | ||
<code>echo 'Debian-snmp ALL=(ALL) NOPASSWD: /usr/bin/mosquitto_sub' > /etc/sudoers.d/snmpd</code> | <code>echo 'Debian-snmp ALL=(ALL) NOPASSWD: /usr/bin/mosquitto_sub' > /etc/sudoers.d/snmpd</code> | ||
Строка 77: | Строка 79: | ||
Можно протестировать: | Можно протестировать: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
snmpwalk -On -c public | snmpwalk -On -v2c -c public 127.0.0.1 1.3.6.1.4.1.2021.8.4 | ||
snmpwalk -On -c public | </syntaxhighlight> | ||
и второй: | |||
<syntaxhighlight lang="bash"> | |||
snmpwalk -On -v2c -c public 127.0.0.1 1.3.6.1.4.1.2021.9 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Версия 14:57, 22 сентября 2023
Контроллер как источник SNMP
Иногда нужно получать какие-то параметры из контроллера по SNMP, например, значения топиков. Для реализации требуется установить и настроить на контроллере агента SNMP.
Решение базируется на демоне snmpd, который разрабатывается и поддерживается открытым сообществом. Здесь даны общие рекомендации, подробную информацию ищите в официальной документации (англ). Перед началом установки убедитесь что правильно и полностью понимаете содержимое документации https://manpages.debian.org/unstable/snmpd/snmpd.conf.5.en.html
Установка и предварительная настройка пакетов
Обновите источники и установите пакеты snmp
и snmpd
:
apt update && apt-get install snmp snmpd -y
Отредактируйте основной файл конфигурации демона:
nano /etc/snmp/snmpd.conf
В раздел # SECTION: Access Control Setup
допишите строчки:
view systemonly included .1.3.6.1.4.1.2021.8
view systemonly included .1.3.6.1.4.1.2021.9
А в конец файла допишите ссылки на скрипты:
extend .1.3.6.1.4.1.2021.8 tt /var/lib/snmp/mqtt-snmp.sh
pass .1.3.6.1.4.1.2021.9 /var/lib/snmp/mqtt-snmp_pass.sh
Дополнительную информацио о параметрах конфигурационного файла можно в документации snmpd
Добавление скрипта
В релизе wb-2304 и более новых сервис snmpd запускается от имени пользователя "Debian-snmp". Требуется коррекция прав:
echo 'Debian-snmp ALL=(ALL) NOPASSWD: /usr/bin/mosquitto_sub' > /etc/sudoers.d/snmpd
Отредактируйте скрипт /var/lib/snmp/mqtt-snmp.sh
nano /var/lib/snmp/mqtt-snmp.sh
И приведите его к виду:
#!/bin/sh
echo "mosquitto topics"
sudo mosquitto_sub -C 1 -t "/devices/wb-adc/controls/Vin"
OID'ы отдаваемые этим скриптом могут иметь тип только STRING
Для демонстрации вывода других типов служит второй:
nano /var/lib/snmp/mqtt-snmp_pass.sh
Содержимое:
#!/bin/sh -f
echo .1.3.6.1.4.1.2021.9.1
echo integer
/bin/systemctl is-active wb-mqtt-serial > /dev/null && echo 1 || echo 0
Скрипт возвращает INTEGER:1 если сервис wb-mqtt-serial запущен и 0 если нет.
Установите права:
chmod a+rx /var/lib/snmp/mqtt-snmp.sh /var/lib/snmp/mqtt-snmp_pass.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
и второй:
snmpwalk -On -v2c -c public 127.0.0.1 1.3.6.1.4.1.2021.9