Привет всем 👋,
Представим ситуацию: ваша инфраструктура переехала в новый офис, и вам, как опытному сисадмину, предстоит заново пройти этап отладки процессов мониторинга. Всё жизнеобеспечение серверной комнаты нужно поставить на контроль.
В этой статье я приведу пример реализации мониторинга дизель-генераторной установки с помощью SNMP и Zabbix.
Настройка SNMP на контроллере
Модуль DSE7420 MKII предварительно настраивается и прошивается профильным инженером-электриком. На этом этапе также задаются базовые сетевые параметры. После этого у вас появляется доступ к панели управления модуля, где можно внести дополнительные изменения, включая конфигурацию SNMP.
Подключение к панели осуществляется по заранее известному IP-адресу через веб-интерфейс. При входе может потребоваться авторизация. Дефолтные учетные данные:
Login: Admin
Password: Password1234
Важный момент перед изменением параметров модуль генератора необходимо перевести в режим Остановки/Сброса. Иначе при сохранении настроек система выдаст ошибку. Сделать это можно как удалённо через панель управления, так и физически — нажав соответствующую кнопку на устройстве.
Далее переходим в раздел настроек SNMP:
Относительно работы SNMP: контроллер DSE7420 MKII поддерживает SNMP v2c и может одновременно работать с двумя SNMP-серверами. Модуль способен:
- Принимать запросы от SNMP-сервера (операции GET и SET);
- Отправлять trap-сообщения при возникновении событий.
Возвращаемся в веб-интерфейс и указываем следующие параметры:
Enable
— активация SNMP (нужно поставить галочку).Device Name
— имя устройства.Manager 1 Address
— IP-адрес первого SNMP-менеджера (в нашем случае указываем IP-адрес сервера Zabbix).Manager 2 Address
— IP-адрес второго (опционального) сервера мониторинга.Manager Port / Notification Port
— порт для SNMP-запросов и Trap-сообщений (оставляем по умолчанию).Read/Write Community String
— строка community для чтения и записи (GET/SET-запросы).
После заполнения всех полей — сохраняем настройки.
В моём случае SNMP заработал только после перезапуска модуля.
Перезапустить его можно так:
Также не забываем переключить дизель-генератор и можно идти проверять работу SNMP.
На стороне Zabbix-сервера установлена утилита snmpwalk.
С её помощью попробуем получить данные с модуля командой:
snmpwalk -v2c -c MyCommunity 10.9.1.223
В результате выполнения команды мы увидим список метрик, доступных через SNMP.
Шаблон в Zabbix
Импорт MIB-файла
Прежде чем собирать собственный шаблон мониторинга, необходимо скачать MIB-файл с официального сайта и загрузить его на сервер. Это нужно для того, чтобы не работать напрямую с OID, а обращаться к метрикам по понятным именам.
MIB-файлы можно скачать с официального сайта Deep Sea Electronics. После загрузки файлы необходимо скопировать на сервер Zabbix в каталог:
/usr/share/snmp/mibs/
Для проверки доступности метрик по имени можно снова воспользоваться утилитой snmpwalk
. Например, отобразим значение давления масла в двигателе:
snmpwalk -v2c -c MyCommunity 10.9.1.223 DSE-74xx-v1-3-MIB::engOilPress
В результате выполнения вы должны получить текущее значение параметра.
Ключевые метрики для мониторинга
Чтобы было проще ориентироваться в выборе метрик и понимать, что именно стоит снимать с контроллера, составим краткий список основных объектов дизель-генератора и связанных с ними параметров.
После этого можно будет выделить наиболее критичные для мониторинга показатели.
Я составил примерно такую табличку:
Раздел / Section | Метрика | Alias | OID (пример) |
---|---|---|---|
Общие (General) | Device name | SNMPv2-MIB::sysName.0 | .1.3.6.1.2.1.1.5.0 |
Device description | SNMPv2-MIB::sysDescr.0 | .1.3.6.1.2.1.1.1.0 | |
Uptime | DISMAN-EVENT-MIB::sysUpTimeInstance | .1.3.6.1.2.1.1.3.0 | |
Сеть / Ввод (Mains) | Mains Voltage L1–L3 | DSE-74xx-v1-3-MIB::mainsL{X}Volts | .1.3.6.1.4.1.41385.1.4.1.1.1.{X} |
Mains Frequency | DSE-74xx-v1-3-MIB::mainsFreq | .1.3.6.1.4.1.41385.1.4.1.1.1.2 | |
Mains Voltage max | DSE-74xx-v1-3-MIB::mainsVoltageLNMax | .1.3.6.1.4.1.41385.1.4.1.1.1.37 | |
Mains Voltage min | DSE-74xx-v1-3-MIB::mainsVoltageLNMin | .1.3.6.1.4.1.41385.1.4.1.1.1.36 | |
Генератор (Generator) | Generator Voltage L1–L3 | DSE-74xx-v1-3-MIB::genL{X}Volts | .1.3.6.1.4.1.41385.1.4.1.2.1.{X} |
Generator Current L1–L3 | DSE-74xx-v1-3-MIB::genL{X}Current | .1.3.6.1.4.1.41385.1.4.1.2.1.{X} | |
Frequency | DSE-74xx-v1-3-MIB::genFreq | .1.3.6.1.4.1.41385.1.4.1.2.1.2 | |
Generator Total Watts | DSE-74xx-v1-3-MIB::genWattsTotal | .1.3.6.1.4.1.41385.1.4.1.2.1.17 | |
Generator Current Min | DSE-74xx-v1-3-MIB::genCurrentMin | .1.3.6.1.4.1.41385.1.4.1.2.1.49 | |
Generator Current Max | DSE-74xx-v1-3-MIB::genCurrentMax | .1.3.6.1.4.1.41385.1.4.1.2.1.50 | |
Двигатель (Engine) | Engine Speed (RPM) | DSE-74xx-v1-3-MIB::engSpeedDisplay | .1.3.6.1.4.1.41385.1.4.1.3.1.8 |
Engine Hours | DSE-74xx-v1-3-MIB::engModHours | .1.3.6.1.4.1.41385.1.4.1.3.1.86 | |
Engine Temp | DSE-74xx-v1-3-MIB::engTemp | .1.3.6.1.4.1.41385.1.4.1.3.1.3 | |
AmbAir Temp | DSE-74xx-v1-3-MIB::engAmbAirTemp | .1.3.6.1.4.1.41385.1.4.1.3.1.152 | |
Engine Oil Press | DSE-74xx-v1-3-MIB::engOilPress | .1.3.6.1.4.1.41385.1.4.1.3.1.2 | |
Engine Oil Level | DSE-74xx-v1-3-MIB::engOilLevel | .1.3.6.1.4.1.41385.1.4.1.3.1.35 | |
Fuel Level | DSE-74xx-v1-3-MIB::engFuelLevel | .1.3.6.1.4.1.41385.1.4.1.3.1.5 | |
Coolant Level | DSE-74xx-v1-3-MIB::engCoolantLevel | .1.3.6.1.4.1.41385.1.4.1.3.1.37 | |
Battery Voltage | DSE-74xx-v1-3-MIB::engBatteryVolts | .1.3.6.1.4.1.41385.1.4.1.3.1.7 | |
Charger Voltage | DSE-74xx-v1-3-MIB::engChargeAltVolts | .1.3.6.1.4.1.41385.1.4.1.3.1.6 | |
Engine operating state | DSE-74xx-v1-3-MIB::engOperatingState | .1.3.6.1.4.1.41385.1.4.1.3.1.83 | |
Mode (Auto/Manual/…) | DSE-74xx-v1-3-MIB::engCurrOPMode | .1.3.6.1.4.1.41385.1.4.1.3.1.126 |
Контроллер DSE7420 MKII предоставляет множество параметров через SNMP. Как можете заметить их можно выделить в четыре основных группы:
- Общие (General) Базовые системные параметры устройства — имя, описание, аптайм. Полезны для первичной идентификации и проверки доступности контроллера.
- Сеть / Ввод (Mains) Показатели входного питания (городское электроснабжение): напряжение, частота, минимальные и максимальные значения. Позволяют оценить качество внешней электросети.
- Генератор (Generator) Характеристики самого генератора: напряжение и ток по фазам, частота, суммарная мощность, а также минимальные/максимальные значения тока. Эти метрики нужны для мониторинга текущей нагрузки и предотвращения перегрузки.
- Двигатель (Engine) Параметры работы двигателя: обороты, моточасы, температуры, давление масла, уровень топлива и охлаждающей жидкости, напряжение аккумулятора и состояние зарядки.
Собираем шаблон
Задача определена, остается дело за малым, это собрать шаблон в веб панели заббикса. Затем добавить устройство и навесть на него шаблон.
Создание шаблона
Перейдите в Configuration
→ Templates
. Нажмите Create template
.
В полях указываем:
- Template name:
Template DSE7420 MKII SNMP
- Groups:
Templates/Server hardware
(или создайте собственную группу) - Опционально, можно описания добавить.
Сохраняемся и далее добавляем элементы данных.
Создание элементов данных
В настройках шаблона переходим во вкладку Items
и нажимаем кнопку Create item
.
В качестве примера рассмотрим, как создать несколько элементов данных. Далее, ориентируясь на таблицу выше, можно будет без проблем воспроизвести оставшиеся метрики.
System name
В свойствах данного элемента данных будут следующие параметры:
- Name:
System name
- понятное имя, - Type:
SNMP Agent
- так как опрашиваем по SNMP, - Key:
sysName
- уникальный ключ, для обращения к элементу, - SNMP OID:
SNMPv2-MIB::sysName.0
- идентификатор метрики в MIB (Взял из таблице выше) - Update interval:
180m
- системное имя меняется не так часто, поэтому достаточно опрашивать один раз в 3 часа, - History storage period:
Do not keep history
- историю хранить нет смысла
В соседней вкладке
Tags
, добавил тег -general
. После сохраняем элемент, нажав кнопку -Add
.- Name:
Engine Speed
Для получения данных по метрик оборотов двигателя создадим элемент данных с параметрами:
- Name:
Engine Speed (RPM)
- читаемое имя, - Type:
SNMP Agent
, - Key:
engSpeedDisplay
- уникальный ключ, для обращения к этой метрике, - SNMP OID:
DSE-74xx-v1-3-MIB::engSpeedDisplay
- идентификатор из таблички, - Update interval:
1m
- опрос этой метрики ежеминутно, - History storage period:
90d
- три месяца храним данные.
Во вкладке
Tags
, добавил тег -engine
. И сохранился.- Name:
По аналогии с приведёнными примерами последовательно проходимся по таблице и добавляем остальные элементы данных.
Создание триггеров
После добавления элементов данных в шаблон, нужно создать триггеры, которые будут срабатываеть при выходе метрик за допустимые пределы.
Также в качестве примера, созданим несколько.
Battery Voltage Low (Discharged) Триггер, на разряженный аккумулятор дизель-генератора:
Name: Battery Voltage Low (Discharged) - понятное имя в наших уведомлениях,
Severity: Average - уровень важности события, в нашем случае выбран - средний,
Problem expression:
last(/Template DSE7420 MKII SNMP-OID/engBatteryVolts)<=18
, Условие срабатывания триггера, при достижения порога ниже 18V, триггер сработает.Recovery problem:
last(/Template DSE7420 MKII SNMP-OID/engBatteryVolts)>18
Соответственно при пороге выше 18V, проблема закроется.
Сохраняем триггер, нажав на кнопку -
Add
.Low Mains L1 Voltage (<200) Триггер, сработает при снижении вольтажа на фазе:
- Name: Low Mains L1 Voltage (<200) - задаём имя триггеру,
- Severity: Average - средний уровень важности проблемы,
- Problem expression:
last(/Template DSE7420 MKII SNMP-OID/mainsL1Volts)<=200
, При достижении ниже 200V на линии, триггер сработает.
Добавляем триггер, через кнопку
Add
.
По аналогии можно настроить триггеры для других метрик:
- низкое давление масла,
- высокая температура охлаждающей жидкости,
- низкий уровень топлива,
- генератор не в режиме AUTO,
- потеря связи по SNMP.
Дополнительно для удобства можно создать графики и дашборды для наглядного отображения параметров.
Заключение
Мы рассмотрели, как настроить мониторинг дизель-генератора с контроллером DSE7420 MKII в Zabbix с использованием SNMP v2c.
Пошагово прошли процесс — от подключения MIB-файлов и добавления элементов данных до создания триггеров.
Такой подход позволяет вовремя реагировать на сбои, следить за состоянием генератора и автоматизировать процесс оповещений.
Шаблон можно расширять под конкретные задачи, добавляя новые метрики и триггеры.