ИБП с NUT
ИБП, подключённый по USB к NAS, Raspberry Pi или серверу, обычно отслеживается
через Network UPS Tools (NUT): его демон upsd публикует всё, что сообщает
ИБП, на TCP-порту 3493. DumbMonit читает этот сервер как любой клиент NUT:
работает ли ИБП от сети или от батареи, разряжена или изношена ли батарея,
заряд, оставшееся время работы, нагрузку, входное напряжение и возраст
батареи. Один сервер часто публикует несколько ИБП; все они читаются за одно
соединение, и каждый ряд данных несёт имя своего ИБП.
Для ИБП с собственной сетевой картой тип устройства SNMP читает стандартную UPS-MIB.
Что отслеживается
Заголовок раздела «Что отслеживается»Все метрики имеют префикс dumbmonit_nut_ и метку ups — имя ИБП в
ups.conf (ups на Synology NAS, qnapups на QNAP). Переменная, которую ИБП
не публикует, не создаёт ряда данных.
| Метрика | Что | Метки |
|---|---|---|
ups_on_line, ups_on_battery, ups_low_battery, ups_high_battery, ups_replace_battery, ups_charging, ups_discharging, ups_bypass, ups_calibrating, ups_off, ups_overload, ups_trim, ups_boost, ups_forced_shutdown, ups_alarm | Флаги ups.status (OL, OB, LB, HB, RB, CHRG, DISCHRG, BYPASS, CAL, OFF, OVER, TRIM, BOOST, FSD, ALARM): 1, если установлен, иначе 0, все — при каждом чтении | ups |
ups_status_info | значение 1, исходный ups.status | ups, status |
battery_charge_percent, battery_charge_low_percent | заряд и заряд, ниже которого ИБП сообщает о разряде батареи | ups |
battery_runtime_seconds, battery_runtime_low_seconds | оставшееся время работы от батареи при текущей нагрузке и время работы при низком заряде | ups |
battery_voltage_volts, battery_temperature_celsius | ups | |
battery_age_seconds | время с battery.date (установка или замена), а при его отсутствии — с battery.mfr.date | ups, source (installed, manufactured) |
input_voltage_volts, input_voltage_nominal_volts, input_frequency_hertz | сторона сети; 0 В во время отключения | ups |
output_voltage_volts, output_frequency_hertz | сторона нагрузки | ups |
ups_load_percent | нагрузка в процентах от мощности ИБП | ups |
ups_realpower_watts, ups_realpower_nominal_watts, ups_power_va, ups_power_nominal_va | потребляемая мощность и номинал, если ИБП их сообщает | ups |
ups_temperature_celsius | ups | |
ups_self_test_failed | 1, если последний самотест (ups.test.result) сообщает об ошибке или предупреждении, 0 — если пройден; отсутствует, если тест не запускался | ups, result |
ups_info | значение 1 | ups, manufacturer, model, firmware, driver, battery_type, description |
ups_data_stale | 1, если upsd отвечает, но не имеет свежих данных от ИБП (DATA-STALE, DRIVER-NOT-CONNECTED) | ups |
ups_driver_connected | 0, если драйвер NUT этого ИБП не запущен | ups |
server_ups | число ИБП, публикуемых сервером | |
server_info | значение 1 | version |
Серийные номера никогда не помещаются в метки. С одного сервера читается не более 32 ИБП.
Применяются встроенные правила: ИБП работает от батареи, батарея ИБП разряжена, батарею ИБП нужно заменить, высокая нагрузка ИБП, малое время работы ИБП, устаревшие данные ИБП, а также Монитор недоступен, когда сам сервер NUT перестаёт отвечать.
Страница монитора
Заголовок раздела «Страница монитора»Панель над графиками показывает то, что сохранил опрос; открытие страницы никогда не подключается к серверу NUT. Одна карточка на каждый ИБП: его состояние словами (от сети, от батареи, низкий заряд, замените батарею, байпас, перегрузка…), заряд, оставшееся время работы, нагрузка, входное напряжение и возраст батареи.
Как позволить DumbMonit читать сервер NUT
Заголовок раздела «Как позволить DumbMonit читать сервер NUT»-
Найдите сервер NUT: машина, к которой подключён ИБП (NAS, Raspberry Pi, сервер), запускает upsd на TCP-порту 3493. С хоста DumbMonit проверьте, что он отвечает, и запишите имена его ИБП.
printf 'LIST UPS\nLOGOUT\n' | nc nas.lan 3493Если установлены клиентские утилиты NUT,
upsc -l nas.lanвыдаёт тот же список. -
При обычной установке NUT настройте upsd так, чтобы он слушал адрес, доступный хосту DumbMonit: добавьте эту строку в upsd.conf, откройте TCP-порт 3493 в брандмауэре для хоста DumbMonit и перезапустите upsd. Для чтения учётная запись не нужна: upsd позволяет любому принятому хосту читать переменные и ничего не меняет без пользователя, имеющего на это право.
LISTEN 0.0.0.0 3493 -
На NAS такой же переключатель называется иначе. Synology DSM: Панель управления → Оборудование и питание → ИБП, включите Включить сетевой сервер ИБП и добавьте хост DumbMonit в Разрешённые устройства DiskStation; ИБП называется ups. QNAP: страница ИБП в Панели управления, Включить сетевой мастер ИБП, с хостом DumbMonit среди разрешённых адресов; ИБП называется qnapups. TrueNAS: служба ИБП с включённым Remote Monitor.
-
Необязательно: DumbMonit отправляет имя пользователя и пароль, только если вы их ввели, а upsd не требует их для чтения. Если ваша политика требует именованных клиентов, добавьте в upsd.users пользователя без actions и instcmds с длинным случайным паролем и перезапустите upsd.
[dumbmonit]password = a-long-random-password -
В DumbMonit введите адрес сервера NUT, например “nas.lan”. Отслеживаются все ИБП, которые он публикует; чтобы отслеживать только некоторые, перечислите их имена в параметре UPS.
-
DumbMonit только читает: он отправляет LIST UPS и LIST VAR, но никогда LOGIN, SET, INSTCMD или FSD, поэтому сервер никогда не считает его вторичным клиентом, которого нужно дождаться перед выключением.
Учётные данные
Заголовок раздела «Учётные данные»| Учётные данные | Поля |
|---|---|
| Без аутентификации | По умолчанию: upsd позволяет любому принятому хосту читать переменные ИБП. |
| Имя пользователя / пароль upsd | Отправляются командами USERNAME и PASSWORD перед чтением. upsd проверяет их только для команд, которые DumbMonit никогда не отправляет. |
Адрес: имя хоста или IP (nas.lan), host:port или форма ups@host из
upsc, из которой сохраняется только хост. Параметры: порт (3493), отслеживаемый
ИБП (по умолчанию все) и тайм-аут на один обмен (10 с).
Отказ в соединении или отсутствие ответа считается недоступностью монитора.
Когда машина с сервером NUT выключается во время сообщаемого ею отключения
питания (часто она сама является первичным upsmon), оповещения ИБП скрываются
как подавленные, а для того же монитора срабатывает Монитор недоступен:
читайте оповещение Монитор недоступен как признак того, что сбой питания
победил. Запускайте сервер NUT на машине, которая переживёт остальные, или
следите за ИБП со второго сервера NUT. ACCESS-DENIED отображается как ошибка
учётных данных, а имя ИБП, которое сервер не публикует, — как ошибка
конфигурации; ни то ни другое не будит никого ночью. Соединение — обычный TCP:
STARTTLS не используется, и ничто из читаемого не является секретом.