Понедельник, 04.05.2020 03:52

Мониторинг Eltex ESR-200-FSTEC с помощью SNMP

Мониторинг Eltex ESR-200-FSTEC с помощью SNMP

Сегодня мы рассмотрим настройку SNMP на ELTEX ESR-200-FSTEC для мониторинга параметров устройства.

Получение данных от устройства по SNMP мы будет осуществлять на виртуальную машину с установленными Debian 10 и на Windows 10 с помощью бесплатной программы MibBrowser

Все ниже написанное может быть применено и к ELTEX ESR-200.

Настройка ESR для работы с SNMP

Перед тем как снимать по SNMP с устройства данные, нужно его настроить. Для этого в режиме конфигурирования выполним следующие команды:

snmp-server
snmp-server community mytestcommunity ro
snmp-server host 192.168.0.10
    community mytestcommunity
exit

Первая команда включает SNMP сервер на устройстве

Вторая добавляет сообщество (community) по сути уникальный идентификатор для доступа по SNMP, это может быть любая строка.

В блоке snmp-server host мы указываем хост с которого разрешаем доступ к нашему сообществу, а также адрес на которой будут высылаться ловушки (traps) при срабатывании событий.

Не забудьте так же добавить правило в межсетевой экран, чтобы разрешить подключение:

object-group service SNMP
  description "SNMP"
  port-range 161
exit
object-group network MONITORING_HOST
  description "My LAN"
  ip address-range 192.168.0.10
exit
security zone-pair LAN self
  rule 12
    description "Доступ SNMP"
    action permit
    match protocol udp
    match source-address MONITORING_HOST
    match destination-address any
    match source-port any
    match destination-port SNMP
    enable
  exit
exit

Не забудьте сохранить конфигурацию

do commit 
do confirm 

На этом настройка устройства завершена.

Настройка Debian 10 для мониторинга по SNMP

У меня есть свежеустановленная Debian 10  в виртуальной машине Hyper-v, давайте донастроим её. Первым делом нужно побеспокоиться о безопасности, так что установим утилиту управления межсетевым экраном UFW  и настроим его.

Сетевая адресация у нас такая:

Наш ПК - 192.168.0.100

Debian сервер - 192.168.0.10

ESR-200 - 192.168.0.254

Установим UFW и SUDO:

apt install ufw sudo

Обратите внимание даже под пользователем root вам необходимо указывать sudo, иначе получите такой результат:

# ufw status  
bash: ufw: command not found

Проверим статус:

# sudo ufw status  
Status: inactive

Как вы видит он отключен.

Теперь добавим правило, чтобы не потерять управление над устройством.

# sudo ufw allow proto tcp from 192.168.0.100 to 192.168.0.10 port 22
Rules updated

Включим межсетевой экран:

# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Проверим правила:

# sudo ufw status
Status: active
To                         Action      From
--                         ------      ----
192.168.0.10 22/tcp     ALLOW       192.168.0.100

Добавим входящее правило по порту 162 для получения ловушек (traps):

#  sudo ufw allow proto tcp from 192.168.0.254 to 192.168.0.10 port 162

Вот что мы получаем в результате:

root@debian-test:/home/meria# sudo ufw status
Status: active
To                         Action      From
--                         ------      ----
192.168.0.10 22/tcp     ALLOW       192.168.0.100
192.168.0.10 162/tcp    ALLOW       192.168.0.254

Практически все системы мониторинга, для получения данных по SNMP используют Open Source утилиту – snmpwalk. Она не входит в стандартную поставку, так что давайте установим её.

Для начала добавим репозиторий nonfree в apt. Откроем файл /etc/apt/sources.list

Я предпочитаю использовать mcedit из пакета mc, вы можете использовать nano или vim.

mcedit /etc/apt/sources.list

и добавляем к строке

deb http://deb.debian.org/debian/ buster main

строчку non-free так что у нас получиться

deb http://deb.debian.org/debian/ buster main non-free

Обновляем список пакетов:

apt update

Устанавливаем snmp

apt install snmp snmp-mibs-downloader

Загрузка mib-файлов произойдет автоматически.

На этом настройка серверной части завершена

Мониторинг ESR-200-FSTEC по SNMP

Прежде чем продолжить, хочу отметить немаловажную вещь – устройства ESR-200 и EST-200-FSTEC – разные устройства, хоть они собраны на базе одной платформы, но прошивки у них отличаются. У версии ФСТЭК прошивка сильно «отстает» от обычной версии. Так же из этой  версии вырезаны BRASS и Ipsec, соответственно для нее не подходят все свежие руководства по мониторингу SNMP, а многие OID не поддерживаются вовсе.

Для нормально работы с SNMP вам потребуются mib-файлы. Их нет в свободном доступе, но их, при наличии устройства достаточно легко попросить у тех-поддержки Eltex. Для этого нужно зайти сюда - https://eltex-co.ru/support/ и заполнить форму. Лучше сразу указать версию вашего ПО и серийный номер вашего устройства, узнать вы их можете использовав команды

show version 
show system

из консоли управления устройством.

Поддержка отвечает достаточно быстро и к вашей заявке будет прикреплен архив с mib файлами.

У меня это был 1.0.7_mibs.zip вот его содержимое:

ELTEX
IANAifType-MIB.txt
IF-MIB.txt
SNMP-FRAMEWORK-MIB.txt
SNMP-VIEW-BASED-ACM-MIB.txt
SNMPv2-CONF.txt
SNMPv2-MIB.txt
SNMPv2-SMI.txt
SNMPv2-TC.txt
UCD-SNMP-MIB.txt 

Зачем нужны эти файлы? Помимо всего прочего, в них прописаны алиасы, так что вместо того, чтобы прописывать длинный OID, например:

.1.3.6.1.4.1.2021.4.5

можно просто написать:

memTotalReal.0

Так же в них содержится и прочая необходимая для корректного отображения значений информация.

Если вы попробуете использовать алиас для запроса без mib файлов то получите следующее:

snmpwalk -v2c -c mytestcommunity 192.168.0.254 memTotalReal.0
memTotalReal.0: Unknown Object Identifier (Sub-id not found: (top) -> memTotalReal)

на сервере создадим папку

mkdir –p /usr/local/share/snmp/mibs

И скопируем в нее файлы наши mib.

Теперь нужно указать утилитам snpm, что нужно использовать папку с mib файлами

Нужно привести файл конфигурации /etc/snmp/snmp.conf к виду:

# As the snmp packages come without MIB files due to license reasons, loading
# of MIBs is disabled by default. If you added the MIBs you can reenable
# loading them by commenting out the following line.
mibs ALL
mibdirs +/usr/local/share/snmp/mibs

Возможно вам потребуется перезагрузить сервер.

Теперь мы можем сделать запрос по алиасу:

snmpwalk -v2c -c ZABBIX_MERIA 192.168.0.254 memTotalReal.0
Bad operator (INTEGER): At line 73 in /usr/share/snmp/mibs/ietf/SNMPv2-PDU
UCD-SNMP-MIB::memTotalReal.0 = INTEGER: 3859328 kB

И получаем ошибку

Bad operator (INTEGER): At line 73 in /usr/share/snmp/mibs/ietf/SNMPv2-PDU

Неприятно, но поправимо, нам нужно взять исправление отсюда - https://pastebin.com/raw/p3QyuXzZ и заменить содержимое файла

/usr/share/snmp/mibs/ietf/SNMPv2-PDU

Вот и всё, теперь при запросе данных ошибки нет!

/usr/share/snmp/mibs/ietf/SNMPv2-PDU

OID для мониторинга

На момент напсиания статьи ESR-200 предоставляет не так уж много oid для снятия данных. Полный их список вы можете получить командой:

snmpwalk -v2c -c mytestcommunity 192.168.0.25

Всего 713 строк и некоторые из них дублируются, а многие просто бесполезны.

Ниже в таблице я привожу некоторые из значений, которые могут быть вам полезны.

Запись вида ifDescr.x(1-8) означает что вместо x вы должны подставить цифры от 1 до 8 для получения информации по соответствующему интерфейсу.

Наименование

Описание (пример)

sysName.0

Имя хоста

(GW-MAIN)

ifDescr.x(1-8)

Имя интерфейса

(gigabitethernet 1/0/1)

ifType.x(1-8)

Тип интерфейса (

ethernetCsmacd(6)

propVirtual(53)

)

ifMtu.x(1-8)

MTU (1500)

ifSpeed.x(1-8)

Скорость в байтах

(1000000000)

ifPhysAddress.x(1-8)

MAC-адрес

ifAdminStatus.x(1-8)

Статус порта, он может быть включен (1), выключен (2) или в режиме теста (3)

Порт будет в статусе выключен/down (2) если в конфигурации для интерфейса прописано «no shutdown»

ifOperStatus.x(1-8)

Рабочий статус порта, показывает подключен ли кабель и работоспособен ли порт для передачи данных

ifInOctets.x(1-8)

Количество полученных октетов

ifInDiscards.x(1-8)

Количество входящих отброшенных пакетов

ifInErrors.x(1-8)

Количество входящих пакетов с ошибкой

ifOutOctets.x(1-8)

Количество отправленных октетов

ifOutDiscards.x(1-8)

Количество исходящих отброшенных пакетов

ifOutErrors.x(1-8)

Количество исходящих пакетов с ошибкой

ifAlias.x(1-8)

Описание интерфейса

entPhysicalSerialNum.680000

Серийный номер устройства

laLoad.1

Нагрузка на CPU за последнюю минуту

laLoad.2

Нагрузка на CPU за последние 5 минут

laLoad.3

Нагрузка на CPU за последние 15 минут

Это не все значения, но наиболее полезные. В конце лета, начале осени 2020 Eltex планирует выпустить прошивку 1.5.0 для ESR-200-FSTEC, будем надеется они добавят больше OID для контроля за состоянием устройства, например, датчики температуры или скорость вращения и статус вентиляторов охлаждения.

Использование MibBrowser для просмотра mib-файлов

Иногда вам может понадобиться узнать какие OID поддерживает устройство. Для этого вы можете использовать бесплатную программу MibBrowser

Использовать ее очень просто. После запуска на экране появится главное окно:

Нажмите Ctrl+O и по одному загрузите полученные от техподдержки mib файлы.

Заполните поля Host и Community

Введите в поле Object ID строку

memTotalReal.0

и нажмите Ctrl+G или соответствующую кнопку на панели.

Будет произведен запрос и значение выведено в центральном окне.

В самом низу экрана вы можете прочитать описание и прочие данные об OID. 

В левой панели будет выбран mib-файл, содержащий этот OID. Вы сможете просмотреть любые OID в этом файле помощью этой панели.

Заключение

Вот и все на сегодня. Мы рассмотрели настройку ESR-200-FSTEC для мониторинга по SNMP, так же мы рассмотрели настройку Debian 10 в качестве консоли для мониторинга по SNMP. Так же кратко рассмотрели утилиту MibBrowser, которая позволяет не только просматривать mib файлы, но и делать запросы по SNMP на удаленном устройстве.

Категория ESR
Теги FSTEC SNMP

Добавить комментарий

Простой текст

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.
Просмотров: 461