Мониторинг по SNMP в роутерах RTU

Мониторинг по SNMP в роутерах RTU

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 завершен.