SNMP (Simple Network Management Protocol) — это ценный инструмент мониторинга сети, который позволяет собирать данные и управлять оборудованием в сети. С момента своего создания, SNMP получил широкое признание и стал стандартным протоколом для множества приложений.
В данной статье будет описан пример мониторинга состояния устройства через пользовательские скрипты и утилиту snmpwalk.
Загрузка SNMP
Для начала работы с SNMP на роутерах серии RTU необходимо загрузить несколько пакетов. Для этого в Web-интерфейсе, в разделе Система — Менеджер пакетов, нажмите на кнопку Обновить списки, чтобы увидеть полный список доступных для загрузки пакетов (роутер должен быть подключен к Интернету).
После загрузки списков, введите в фильтр слово snmp и установите необходимые пакеты, такие как snmp-mibs (MIB-библиотеки) и snmp-utils (утилиты для работы и отправки запросов, такие как get, snmpwalk).
Настройка SNMP
В OpenWRT для получения нужной информации об устройстве необходимо добавить соответствующий скрипт в файл конфигурации SNMP, подключившись к роутеру по SSH и отредактировав файл /etc/config/snmpd.
Пример конфигурации:
config exec
option name get_current_date
option prog /bin/date
config exec
option name input_voltage
option prog /bin/ubus
option args 'call info info'
config exec
option name uptime
option prog /bin/uptime
config exec
option name IO1
option prog /sbin/getinfo
option args 'adc0' (по аналогии добавить остальные входы 'adc1'/ 'adc2'/'adc3')
После внесения всех изменений, файл конфигурации будет готов.
Чтобы изменения вступили в силу, перезапустите службу SNMP командой:
/etc/init.d/snmpd restart
Сбор данных при помощи SNMPWALK
1. Элементы SNMP управляются конкретными объектами, каждый из которых имеет свой уникальный идентификатор (OID). Чтобы узнать интересующий OID, можно воспользоваться любым MIB-браузером или утилитой snmpwalk.
После добавления скриптов можно приступить к получению данных об устройстве. В SNMP есть пространство OID'ов, отведенное под пользовательские скрипты: .1.3.6.1.4.1.2021.8
Запрос названия пользовательских OID'ов и их значений осуществляется командами:
snmpwalk -v2c -c public localhost .1.3.6.1.4.1.2021.8.1.2
snmpwalk -v2c -c public localhost .1.3.6.1.4.1.2021.8.1.101
Где localhost — IP-адрес устройства, -v2c — версия протокола, -c — параметр для установки community-строки. Community-строки бывают Public (только для просмотра) и Private (для изменения конфигурации с помощью set-запросов).
ВНИМАНИЕ: Значения GPIO отображаются в непреобразованном виде. Чтобы получить преобразованные значения напряжения, необходимо умножить их на 8,219 — коэффициент для пересчёта непреобразованных значений "Сухого контакта" в напряжение в мВ. Например: 12*8,219 = 98 628 мВ.
(значения GPIO в WEB-интерфейсе)
2. Помимо получения информации через пользовательские скрипты, можно использовать утилиту snmpwalk для запроса и мониторинга конкретного параметра (например: индекс, имя интерфейсов, входящий/исходящий трафик, MAC-адреса и т.д.).
Ниже представлены примеры запроса данных конкретных OID-ов:
- Объем оперативной памяти — OID .1.3.6.1.2.1.25.2.2.0
- Имя интерфейса — OID .1.3.6.1.2.1.2.2.1.2
- Количество входящих байт на интерфейсах — OID .1.3.6.1.2.1.2.2.1.10
(количество исходящих байт на интерфейсах — OID .1.3.6.1.2.1.2.2.1.16)
- Местоположение устройства — OID .1.3.6.1.2.1.1.6
Мониторинг состояния устройства при помощи утилиты snmpwalk завершен.