Agent SNMP: различия между версиями
Brainroot (обсуждение | вклад) |
|||
(не показано 17 промежуточных версий 3 участников) | |||
Строка 5: | Строка 5: | ||
Решение базируется на демоне snmpd, который разрабатывается и поддерживается открытым сообществом. Здесь даны общие рекомендации, подробную информацию ищите в [http://www.net-snmp.org/docs/man/snmpd.html официальной документации (англ)]. | Решение базируется на демоне snmpd, который разрабатывается и поддерживается открытым сообществом. Здесь даны общие рекомендации, подробную информацию ищите в [http://www.net-snmp.org/docs/man/snmpd.html официальной документации (англ)]. | ||
== Установка и предварительная настройка пакетов == | == Установка и предварительная настройка пакетов == | ||
Обновите источники и установите пакеты <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> | ||
Отредактируйте основной файл конфигурации демона: | Отредактируйте основной файл конфигурации демона: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
mcedit /etc/snmp/snmpd.conf | |||
</syntaxhighlight> | </syntaxhighlight> | ||
В секцию <code># ACCESS CONTROL</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 | ||
</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 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 31: | Строка 30: | ||
== Добавление скрипта == | == Добавление скрипта == | ||
Отредактируйте скрипт <code>/var/lib/snmp/mqtt-snmp.sh</code> | Отредактируйте скрипт <code>/var/lib/snmp/mqtt-snmp.sh</code> | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
mcedit /var/lib/snmp/mqtt-snmp.sh | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 45: | Строка 40: | ||
#!/bin/sh | #!/bin/sh | ||
echo "mosquitto topics" | 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) | |||
/ | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Установите права: | Установите права: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
chmod a+rx /var/lib/snmp/mqtt-snmp | chmod a+rx /var/lib/snmp/mqtt-snmp.sh | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 77: | Строка 60: | ||
Можно протестировать: | Можно протестировать: | ||
<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 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Версия 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