Мониторинг 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 на удаленном устройстве.
Добавить комментарий