Мониторинг по SNMP в роутерах LT40 / LT50 / LT51 + Zabbix

Мониторинг по SNMP в роутерах LT40 / LT50 / LT51 + Zabbix

SNMP — ценный инструмент мониторинга сети, поскольку он позволяет собирать данные, а также управлять оборудованием в сети. С момента своего создания он получил широкое признание и стал стандартным протоколом для множества приложений.

В данной статье будет описан пример мониторинга состояния устройства через пользовательские скрипты и утилиту snmpwalk.


Настройка узла на сервере Zabbix

Шаг 1: Создание узла сети

  1. В веб-интерфейсе Zabbix перейдите:
    Узлы сети → Создать узел сети
  2. Заполните основные параметры:
    • Имя узла сети;
    • Группы узлов (выберите или создайте);
    • Шаблоны (нажмите “Выбрать” и создайте/добавьте шаблон).
  3. Перейдите к пункту Интерфейсы, добавьте интерфейс SNMP;
  4. Укажите:
    • IP-адрес роутера;
    • Порт: 161 (порт по умолчанию).

Создание узла сети

Шаг 2: Проверка подключения

  1. В пункте “Доступность” отслеживайте статус SNMP.

Проверка подключения

Шаг 3: Проверка получения данных

  1. Перейдите: Мониторинг → Полученные значения (или Последние данные);
  2. Выберите нужный узел.

Полученные данные

Данные поступают — мониторинг на сервере Zabbix осуществлен корректно.

Убедитесь, что все настройки выполнены корректно, особенно IP-адрес и порт SNMP. Если данные не поступают, проверьте доступность устройства через утилиту snmpwalk.

Настройка SNMP

В OpenWrt для получения нужной информации об устройстве необходимо добавить соответствующий скрипт в файл /etc/config/snmpd, подключившись к роутеру по SSH.

Получение даты и времени:


config exec
    option name     get_current_date
    option prog     /bin/date

Информация о входном напряжении:


config exec
    option name     input_voltage
    option prog     /sbin/getinfo
    option args     'voltage'

Время работы устройства:


config exec
    option name     uptime
    option prog     /bin/uptime

Состояние GPIO:


config exec
    option name    IO1 
    option prog     /sbin/getinfo
    option args      'adc1'  (по аналогии добавить остальные входы  'adc2'/ 'adc3')

После внесения всех изменений, файл конфигурации будет таким.

Чтобы изменения вступили в силу, перезапустите службу SNMP командой /etc/init.d/snmpd restart.


Сбор данных при помощи SNMPWALK

Элементы 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 — версия протокола, — параметр для установки community-строки. Community-строки бывают Public (только для просмотра) и Private (позволяющие изменять конфигурацию при помощи set-запросов).

ВНИМАНИЕ: Значения GPIO отображаются в непреобразованном виде. Чтобы получить преобразованные значения напряжения, необходимо умножить их на 38 — коэффициент для пересчёта непреобразованных значений АЦП в напряжение в мВ. Например: 322 * 38 = 12 236 мВ.

(значения GPIO в WEB-интерфейсе)

Помимо получения информации через пользовательские скрипты, можно использовать утилиту 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 осуществлен.