ИБП с 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¶
-
Найдите сервер 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, поэтому сервер никогда не считает его вторичным клиентом, которого нужно дождаться перед выключением.
Warning
DumbMonit следит за ИБП, но ничего не выключает. Машинам, которые питает ИБП, по-прежнему нужен собственный клиент NUT (upsmon), чтобы корректно выключиться при низком заряде батареи.
Учётные данные¶
| Учётные данные | Поля |
|---|---|
| Без аутентификации | По умолчанию: upsd позволяет любому принятому хосту читать переменные ИБП. |
| Имя пользователя / пароль upsd | Отправляются командами USERNAME и PASSWORD перед чтением. upsd проверяет их только для команд, которые DumbMonit никогда не отправляет. |
Адрес: имя хоста или IP (nas.lan), host:port или форма ups@host из
upsc, из которой сохраняется только хост. Параметры: порт (3493), отслеживаемый
ИБП (по умолчанию все) и тайм-аут на один обмен (10 с).
Отказ в соединении или отсутствие ответа считается недоступностью монитора.
Когда машина с сервером NUT выключается во время сообщаемого ею отключения
питания (часто она сама является первичным upsmon), оповещения ИБП скрываются
как подавленные, а для того же монитора срабатывает Монитор недоступен:
читайте оповещение Монитор недоступен как признак того, что сбой питания
победил. Запускайте сервер NUT на машине, которая переживёт остальные, или
следите за ИБП со второго сервера NUT. ACCESS-DENIED отображается как ошибка
учётных данных, а имя ИБП, которое сервер не публикует, — как ошибка
конфигурации; ни то ни другое не будит никого ночью. Соединение — обычный TCP:
STARTTLS не используется, и ничто из читаемого не является секретом.