Когда возникает задача мониторить бесперебойники у рабочих станций? Запищал – заменил, конец. Чинить ИБП – дело неблагодарное, менять аккумуляторы – не все хотят возиться (или даже моветон).
Так думал и я, особенно после череды ИБП с отказавшей электроникой. Ситуацию усугублял софт от производителей. Он, как бы это помягче выразиться, барахло. Причем у всех – APC, Ippon, Powercom, TrippLite. Что серверный, что для рабочих станций. Пробовать платные версии после опыта с бесплатными – желания не возникло. А совсем весело, когда ИБП от разных производителей.
Но мониторить всё же надо. Плюсы очевидны: 1) можно поменять ИБП ДО того, как он издаст прощальный писк; 2) можно сразу увидеть, где сдохла батарея, а где электроника.
Минус же прост, как всегда: стоимость решения, в деньгах или человеко-часах.
Вот эту проблему и будем решать.
Если имеем зоопарк, то самый адекватный способ – это Network UPS Tools.
По нему мало информации про Windows, а ещё нет GUI. Но это мы решим.
Справедливости ради нужно отметить, что есть похожий проект на Python. Но мне лично кажется совершенно излишним использование Python (и подобные технические решения) там, где можно обойтись парой строк нативного скриптинга.
Disclaimer
- Это не «готовое решение».
- Это не предложение, а рассказ.
- Да, есть Zabbix, Cacti, etc, и это тяжеловесные решения для больших компаний, требующие выделенного сервера и всё равно какого-то промежуточного слоя для поддержки соответствующего протокола UPS.
- При всём вышеперечисленном, решение достаточно простое, достаточно лёгкое и стоит 0 валюты.
Разумеется, для сбора информации понадобятся UPS с инфо-портом. У меня возникли проблемы с COM-портом IPPON, всё остальное работает на ура.
Обычно для рабочих станций используется подключение ИБП по USB, этот случай и рассмотрим. Нужно установить NUT на все рабочие станции с ИБП.
Возможные проблемы при этом:
- > Драйвер libusb лучше ставить отдельно. Те, что в комплекте, понимает не все ИБП;
- Если libusb предлагает стандартное имя HID UPS Battery, нужно его изменить – со стандартным именем некоторые системы почему-то не видят UPS;
- если процессе установки появилось сообщение «Драйвер без цифровой подписи«, то его нужно повторно переустановить руками, иначе он слетает;
- если libusb не распознал модель UPS, то с первого раза драйвер ставится НЕКОРРЕКТНО! Об этом говорит ошибка «upsmon ERROR ACCESS DENIED», или драйвер просто слетает. Нужно: остановить службу NUT, удалить драйвер libusb, подождать, пока установится «USB устройство ввода», выбрать для него вручную драйвер libusb заново;
- Для NUT нужны сторонние библиотеки, которых в комплекте установки нет. Setup об этом говорит, но кто ж его читает Плюс часто в системах уже есть софт с этими библиотеками. Точно нужны: libeay32.dll, ssleay32.dll, libgcc_s_dw2-1.dll (есть в папке NUT-bin), libusb.dll (есть в дистрибутиве libusb), msvcr71.dll (в составе Net Framework 1.1). Все эти файлы должны быть в папке Windows\System32;
- иногда нужно указать bus=«bus-0» для USB UPS в ups.conf;
- на быстрых машинах и на некоторых сетевых картах служба NUT стартует раньше, чем драйвер и/или сетевой интерфейс. При этом тип запуска «Автозагрузка (отложенный запуск)» приводит к ошибке «upsc ERROR DATA STALE». Решение: создать задачу, которая будет проверять наличие процесса upsd при появлении события с кодом 1 из источника «Network UPS Tools» и перезапускать службу Network UPS Tools скачать xml-файл задачи скачать скрипт (должен быть в папке NUT\others).
Примерный скрипт полуавтоматической установки NUT на клиенты:
N:\NUT-Installer-2.6.5-6.msi /qn
copy N:\dll\ssleay32.dll C:\Windows\System32 /Y
copy N:\dll\libeay32.dll C:\Windows\System32 /Y
copy N:\dll\libgcc_s_dw2-1.dll C:\Windows\System32 /Y
copy N:\dll\libusb.dll C:\Windows\System32 /Y
copy N:\etc\* "%programfiles%\NUT\etc"
rem добавляем IP-адрес клиента в конфиг NUT автоматически
SET IP=192.168.100.10
set ip_address_string="IP Address"
rem Uncomment the following line when using Windows 7 (with removing "rem")!
set ip_address_string="IPv4-адрес"
REM echo Network Connection Test
for /f "usebackq tokens=2 delims=:" %%f in (`ipconfig ^| findstr /c:%ip_address_string%`) do SET IP=%%f
ECHO LISTEN %IP% 3493 >> "%programfiles%\NUT\etc\upsd.conf"
rem Ставим драйвер libusb отдельно
N:\libusb-win32-bin-1.2.6.0\bin\inf-wizard.exe
rem Правим конфиги, там буквально две строки
notepad "%programfiles%\NUT\etc\ups.conf"
notepad "%programfiles%\NUT\etc\upsmon.conf"
pause
net use N: /delete /Y
Как понять, почему не работает NUT под Windows:
- проверяем, есть ли в процессах nut.exe
- если есть, то проверяем upsd.exe и upsmon.exe
- если upsd нет в процессах, идём в nut\sbin и запускаем руками:
- «upsd не может быть запущен, так как отсутствует dll» – проверяем dll в system32, перезагружаемся на всякий случай;
- «upsd error creating named pipe» – upsd уже запущен
- запускается и сразу закрывается – проверить ip-адрес в upsd.conf в секции LISTEN, особенно актуально, если на машине DHCP ;
- upsd запустился, но не видит UPS – установить или переустановить libusb, проверить libusb.dll в system32, переименовать устройство из HID UPS Battery;
- если upsd стартовал, идём в bin и выполняем upsc our_ups@localhost
- «upsc не может быть запущен, так как отсутствует dll» – проверяем библиотеки ;
- «upsc failed connection unknown error» – проверяем, запущен ли upsd и upsmon, внимательно проверяем секцию MONITOR в upsmon.conf, ещё раз проверяем библиотеки dll;
- «upsc error data stale» – либо UPS один раз запускался и больше не работает, тогда переустанавливаем драйвер libusb и переименовываем HID UPS Battery, либо служба NUT поднялась быстрее, чем стал виден сетевой интерфейс или USB UPS, перезапускаем службу;
- «upsmon error ACCESS DENIED» – переустанавливаем драйвер, как описано выше.
Для сервера мониторинга нужны:
- NUT в режиме standalone;
- любой web-сервер с php и mysql. Я использую Uniform Server
- MySQL-база и папка www из репозитория, и пара batch-скриптов оттуда же.
Базу SQL и www кладём в соответствующие каталоги веб-севера. Скрипты из batch_scripts копируем в папку установки NUT. Запускаем веб-сервер, переходим на localhost/index_ups.php. Добавляем любой из клиентских UPS в формате UPS_name@host. Запускаем скрипт get_ups_list_mysql.cmd. Проверяем. Enjoy.
Что мы можем увидеть полезного, помимо текущего состояния? Например:
- если минимальный вольтаж батареи приближается к 10 – лучше заменить её заранее;
- при нормальных значениях вольтажа отказ ИБП будет связан скорее всего, с отказом электроники (ваш, К.О.);
- нагрузка более 70 процентов нежелательна, 100 не нормальна, если не связана с событием self-test;
- минимальный заряд батареи менее 30% говорит о неисправности батареи либо о неверных настройках автоотключения при разряде на клиенте.
Несколько моментов:
- столбцы можно сортировать нажатием на заголовок;
- максимальные/минимальные значения выводятся через слеш к текущим, критические отмечаются красным;
- осторожнее с кнопкой «self-test».
Если у кого-то проблемы с установкой/работой NUT под Windows – пишите, разберёмся вместе.
Спасибо за внимание!
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Какой софт вы используете для мониторинга ИБП рабочих станций?
19.47%
Софт от производителя
22
28.32%
Zabbix / Cacti / подобное
32
25.66%
Не использую, но после прочтения статьи решил, что надо бы
29
3.54%
Другое, рассказал в комментариях
4
Проголосовали 113 пользователей.
Воздержались 23 пользователя.
Всем известно, что для защиты от сбоев электропитания нужно купить бесперебойник. Но сам по себе источник бесперебойного питания не решает проблему, а только отсрочивает негативные последствия. Действительно, если питание пропадет надолго, то после разрядки батарей ИБП ваши системы аварийно завершат работу. Избежать этого позволяют модели, имеющие обратную связь, но, чтобы использовать эти возможности нам потребуется система управления электропитанием и сегодня мы расскажем об открытом и бесплатном продукте — NUT (Network UPS Tools).
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Почему именно NUT? Ведь многие производители ИБП предлагают собственные утилиты, в т.ч. и под Linux, при этом они явно лучше знают свою продукцию. В теории это так, но практика вовсе не так радужна. Во-первых, качество «родного» ПО очень сильно отличается от вендора к вендору. Где-то это вполне неплохие решения, а где-то лютая мешанина скриптов, бинарников и устаревших технологий.
Кроме того, ИБП у вас может быть не один, причем разных производителей и устраивать зоопарк проприетарного ПО — не самый лучший вариант. Что касается второго аргумента, то существует UPS management protocol — RFC 9271, если бесперебойник его поддерживает, то все равно какое ПО мы будем использовать для работы с ним.
NUT — это открытое программное обеспечение, поддерживающее большое количество источников бесперебойного питания и предоставляющее единый интерфейс работы с ними, кроме того оно работает в клиент-серверном режиме что позволяет организовать сетевое управление электропитанием, это удобно, когда к одному бесперебойнику подключено несколько компьютеров. С полным списком поддерживаемых устройств вы можете ознакомиться на официальном сайте: https://networkupstools.org/stable-hcl.html
Структурно NUT состоит из трех основных частей:
- Драйвер — используется для связи с ИБП.
- Сервер (upsd) — при помощи драйвера связывается с ИБП и получает сообщения об его состоянии.
- Служба мониторинга (upsmon) — контролирует сервер и выполняет действия на основе полученной от сервера информации.
Важный момент! Сервер NUT никак не связывается с клиентами и не передает им никаких команд, все решения принимает клиент, который при помощи службы мониторинга получает с сервера состояние выбранного ИБП и сообщения от него, на основании которых затем предпринимаются некоторые действия.
Таким образом один сервер NUT может контролировать сразу несколько физически подключенных к нему через интерфейс обратной связи ИБП и предоставлять информацию об их состоянии клиентам через локальную сеть. Это позволяет реализовывать достаточно сложные схемы управления электропитанием, наподобие приведенной ниже:
Таким образом имея единственный сервер NUT мы получаем централизованную систему управления питанием, которая обеспечит корректное выключение всех подключенных к ИБП компьютеров, а затем самого ИБП. При возобновлении электропитания сначала включатся ИБП, а затем все подключенные к ним устройства (для этого они должны иметь соответствующие настройки в BIOS).
Установка NUT и настройка драйвера ИБП
Установка NUT проста, в Debian / Ubuntu существует одноименный метапакет, который устанавливает сразу и сервер, и клиент. В других системах обратитесь к документации по доступным пакетам.
apt install nut
Теперь подключим к серверу ИБП и перезагрузим систему, после чего попробуем автоматически определить его настройки при помощи служебного пакета nut-scanner:
nut-scanner
Утилита просканирует все доступные интерфейсы и выведет готовые параметры подключения для обнаруженных устройств, в нашем случае был найдет ИБП серии PowerCom Smart King Pro+ подключенный через USB.
Фактически это готовые опции для настройки драйвера, советуем сохранить их для использования в дальнейшем. Теперь откроем файл /etc/nut/ups.conf и в самый конец добавим секцию, аналогичную указанной выше. В квадратных скобках указываем желаемое имя, ниже следуют опции подключения. В минимальной конфигурации будет достаточно первых двух: driver и port. Если предполагается использовать несколько ИБП, то мы можем уточнить производителя и модель: vendorid и productid, а вот опцию bus — лучше не использовать, при переключении ИБП в другой разъем она изменится. В случае использования нескольких ИБП одной модели лучше использовать другую опцию — serial с указанием серийного номера устройства.
Также мы советуем изучить документацию производителя, многие из них указывают рекомендуемые конфигурации драйвера для работы с NUT, например, для PowerCom у нас вышло следующее:
[powercom1]
driver = usbhid-ups
port = auto
vendorid = 0d9f
productid = 0004
serial = AAA-BBBB-CCC
pollonly
Последняя опция как раз взята из рекомендаций производителя, без нее ИБП работал с NUT нестабильно, периодически отваливаясь, что требовало либо его переподключения, либо перезагрузки компьютера.
Теперь проверим работу драйвера:
upsdrvctl start
Если все сделано правильно, то вы увидите что-то подобное:
Как видим, драйвер запустился нормально и увидел наш ИБП, теперь остановим его, чтобы избежать конфликтов при дальнейшей настройке.
upsdrvctl stop
Если же драйвер запускается с ошибками попробуйте переключить ИБП в другой разъем или перезагрузить компьютер.
Настройка сервера NUT
Прежде всего откроем /etc/nut/nut.conf и установим режим работы:
MODE=netserver
Для сервера доступны режимы:
- standalone — сервер запущен локально и принимает соединения только на localhost, используется для управления локально подключенным ИБП, который не питает других ПК,
- netserver — сетевой режим, сервер принимает соединения по локальной сети, подходит для построения сетевой системы управления питанием.
Мы сразу будем настраивать сетевой режим, большинство настроек при этом не будут отличаться от локальных, поэтому вы также можете настроить и локальный режим по этой инструкции.
Теперь перейдем в /etc/nut/upsd.conf, в нем нам потребуется указать сетевые опции, а именно адрес и порт, на котором будет принимать подключения сервер:
LISTEN 127.0.0.1 3493
LISTEN 192.168.99.120 3493
Обратите внимание на регистр написания, название опции должно быть обязательно в верхнем регистре, для локального режима достаточно будет только указания первой строки.
Следующим шагом заведем пользователей в файле /etc/nut/upsd.users. Мы рекомендуем, как минимум, завести административного пользователя, который будет иметь права менять настройки UPS и пользователей для чтения данных состояния бесперебойника. Вы можете завести разные учетные данные для разных ПК или одну на всех — выбор остается за вами. В нашем случае содержимое файла выглядит так:
[upsadmin]
password = Pa$$word_1
actions = SET
instcmds = ALL[upsmon-m]
password = 123456789
upsmon master[upsmon-s]
password = 987654321
upsmon slave
В нашем случае мы завели трех пользователей: административного, пользователя локального клиента (master) и удаленных клиентов (slave).
Сохраним все изменения и попробуем запустить службу сервера и сразу проконтролируем ее статус:
systemctl start nut-server
systemctl status nut-server
Теперь можем получить данные о состоянии ИБП командой:
upsc powercom1@localhost
Где мы указываем имя нашего драйвера и имя или адрес узла, на котором запущена серверная часть NUT.
В выводе мы можем увидеть частоту и напряжение на входе и на выходе устройства, текущую нагрузку в процентах (ups.load) и статус бесперебойника, который может иметь следующие значения:
- OL — On Line — работа от сети
- OB — On Battery — работа от батареи
- LB — Low Battery — низкий заряд батареи
Как мы уже говорили, сам сервер не предпринимает никаких действий, а только получает данные от ИБП и предоставляет их клиентам, но именно состояние LB служит триггером для службы мониторинга инициирующим выключение устройств.
Настройка службы мониторинга в Linux
Начнем с локального сервера, клиентская часть здесь уже установлена, поэтому просто откроем файл /etc/nut/upsmon.conf и добавим в него строку:
MONITOR powercom1@localhost 1 upsmon-m 123456789 master
Разберем указанные опции: powercom1@localhost — указывают имя драйвера и сервер NUT, следующая за ними единица говорит о том, что питание устройства следует отключить, для отладки можно временно указать там ноль, в этом случае будут генерироваться все события и записи в логах, но отключение питания производиться не будет. Затем указываем имя пользователя и пароль, а также тип устройства — master, это говорит о том, что перед нами головное устройство и оно будет выключено только после того, как выключатся все подчиненные компьютеры.
Запустим службу мониторинга:
systemctl start nut-monitor
Остальные параметры можно оставить по умолчанию. Но следует обратить внимание на опции NOTIFYFLAG, которые описывают реакцию службы на те или иные события. По умолчанию, когда опция закомментирована, применяются действия SYSLOG и WALL, т.е. пишется событие в системный лог и отправляется сообщение всем залогиненым пользователям.
Дополнительно можно включить выполнение скрипта действием EXEC, сам скрипт общий для всех событий и указывается в опции NOTIFYCMD, само событие и реакцию на него следует определять в самом скрипте, но это уже выходит за рамки данной статьи, поэтому рекомендуем обратиться к документации.
На удаленных устройствах нам нет необходимости устанавливать все пакеты, достаточно только клиентского:
apt install nut-client
После чего откроем /etc/nut/nut.conf и укажем режим работы:
MODE=netclient
Затем в /etc/nut/upsmon.conf внесем строку:
MONITOR powercom1@192.168.99.120 1 upsmon-s 987654321 slave
Мы не будем подробно разбирать синтаксис, так как это сделали выше, отметим изменения. При указании драйвера и узла мы использовали IP-адрес сервера NUT (можно также его FQDN), а в конце строки указали slave, что обозначает подчиненный мониторинг, кроме состояния ИБП он отслеживает также команды от головного мониторинга (master). Понятно, что в качестве драйвера следует указывать именно тот ИБП, к которому физически подключен данный узел.
После чего точно также запускаем службу:
systemctl start nut-monitor
Для проверки получим сведения об ИБП:
upsc powercom1@192.168.99.120
Для просмотра подключенных клиентов выполните команду:
upsc -с powercom1@192.168.99.120
А теперь как это все работает, мы не будем углубляться в подробности, а представим максимально упрощенную схему, достаточную для понимания происходящих событий.
- Батареи ИБП разряжаются, и он переходит в состояние LB
- Мониторинг master-узла получает этот статус и выставляет флаг FSD (forced shutdown)
- Мониторинг slave-узлов видит этот флаг и инициирует выключение
- Master-узел ждет отключения подчиненных узлов и выставляет флаг POWERDOWNFLAG
- При необходимости master завершает свою работу и выключает ИБП
Последний момент очень важен, потому что если после того, как slave-узлы будут выключены, подача питания возобновится, то ИБП не выключится и повторного запуска подключенных устройств не произойдет. Поэтому master узел в обязательном порядке выключает ИБП, чтобы при его последующем включении произошел запуск всех подключенных к нему устройств.
Настройка службы мониторинга в Windows
Сервер NUT может управлять и Windows-клиентами, для этого нужно установить один из клиентов NUT, мы используем WinNUT-Client, он поставляется в виде MSI-пакета и проблем с его установкой возникнуть не должно. Настройки его также просты: указываем адрес и порт сервера, имя драйвера, логин и пароль.
Также советуем пробежаться по прочим вкладкам и настроить автозапуск приложения и выполнить, при желании, более тонкую подстройку. Кроме выполнения своей основной функции приложение также показывает основные параметры ИБП в виде графических индикаторов.
Как видим, настроить NUT просто, но данная статья и близко не затронула всех возможностей этой системы. Пока что мы организовали базовую систему централизованного управления электропитанием, но при желании ее можно бесконечно улучшать и дополнять, благо проект прекрасно документирован.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Network UPS Tools (NUT) — это набор программного обеспечения, позволяющий управлять системами бесперебойного питания (UPS) через сеть. С помощью NUT вы можете осуществлять мониторинг и управление вашими UPS-системами, следить за уровнем заряда аккумуляторов, а также осуществлять автоматическое отключение серверов и других устройств при отключении электропитания.
Хотя NUT в основном предназначен для использования в системах на базе Linux и Unix, существует также версия для Windows, которая позволяет полностью интегрировать ваши UPS в экосистему Windows.
В этом подробном руководстве мы рассмотрим, как установить и настроить NUT для Windows, научимся добавлять UPS-устройства в систему, настраивать мониторинг и управление UPS, а также реагировать на различные события, связанные с электропитанием.
Примечание: для работы с NUT вам потребуется подключение к локальной сети и компьютер с доступом к инсталляционному файлу NUT для Windows.
Содержание
- Что такое Network UPS Tools и как оно работает?
- Универсальное программное обеспечение для Windows
- Установка Network UPS Tools на Windows компьютер
Основная концепция работы Network UPS Tools состоит в следующем:
- На компьютере или сервере, подключенном к ИБП, устанавливается и настраивается NUT-сервер.
- Различные клиентские устройства/компьютеры, которые нуждаются в информации о состоянии ИБП, подключаются к NUT-серверу.
- ИБП соединяется с компьютером или сервером посредством USB, последовательного порта или сетевого интерфейса.
- ИБП отправляет данные о своем состоянии на NUT-сервер через соответствующий интерфейс.
- NUT-сервер обрабатывает полученные данные и предоставляет информацию клиентским устройствам по запросу или периодически.
Таким образом, Network UPS Tools создает централизованную систему мониторинга и управления ИБП по сети. Она позволяет предотвратить потерю данных и обеспечивает дополнительное время работы в случае отключения электричества.
Network UPS Tools распространяется под свободной лицензией GNU General Public License (GPL) и может быть использован на различных платформах, включая Windows. Вместе с базовыми функциями мониторинга и управления, NUT также предоставляет возможность создания пользовательских скриптов и задач, автоматического выключения компьютера или сервера при низком заряде батареи ИБП и другими расширенными функциями.
Универсальное программное обеспечение для Windows
NUT предоставляет широкий набор функций для управления и мониторинга UPS. В программе реализована возможность отслеживания состояния батарей, обнаружения и исправления ошибок, и оповещения о событиях, связанных с электропитанием. Кроме того, NUT поддерживает функционал взаимодействия со сторонними приложениями и операционными системами, позволяя интегрировать управление UPS в вашу существующую инфраструктуру.
С помощью NUT вы можете настроить оповещения по электронной почте или SMS, чтобы получать предупреждения о состоянии аккумулятора, выходе энергии из резерва или других проблемах, связанных с UPS. Кроме того, NUT позволяет настроить действия, которые должны быть выполнены при определенных событиях, таких как отключение питания или перегрузка системы, для минимизации потерь или сохранения данных.
Установка и настройка NUT на Windows достаточно проста. Вам нужно скачать установщик с официального сайта NUT и следовать инструкции по установке. После установки вы можете легко настроить программу в соответствии с вашими потребностями, используя удобный графический интерфейс пользователя.
В заключение, Network UPS Tools является мощным и гибким инструментом для мониторинга и управления UPS на компьютерах под управлением Windows. Благодаря его функциям вы сможете обеспечить надежную защиту ваших данных и систем, минимизировать потери в случае сбоя питания и эффективно управлять энергопотреблением вашей организации.
Шаг 1: Скачайте установщик
Первым шагом является загрузка установщика Network UPS Tools с официального сайта проекта. Перейдите на страницу загрузки на сайте проекта и выберите версию, соответствующую вашей ОС Windows.
Шаг 2: Запустите установщик
После того, как установщик загружен, запустите его, щелкнув по загруженному файлу. В появившемся окне установщика следуйте инструкциям мастера установки.
Шаг 3: Выберите компоненты
Во время установки вам будет предложено выбрать компоненты для установки. Следуйте инструкциям мастера и выберите те компоненты, которые вам необходимы. Обычно рекомендуется выбрать все компоненты для наилучшей функциональности.
Шаг 4: Укажите параметры соединения
После выбора компонентов установка попросит вас указать параметры соединения с вашим ИБП. Введите необходимые данные, такие как IP-адрес или имя хоста, и выберите подходящий драйвер из списка поддерживаемых моделей ИБП.
Шаг 5: Завершите установку
Последний шаг включает завершение установки Network UPS Tools на вашем Windows компьютере. После завершения установки вы можете запустить NUT и начать мониторинг и управление вашим ИБП.
Следуя этому простому руководству, вы сможете установить Network UPS Tools на вашем Windows компьютере и получить доступ к полной функциональности этого программного обеспечения.
Всем привет!!!
Если у вас есть Synology подключенный к ИБП и рядом ПК на Windows или Linux то можно настроить NUT клиент и подключить его к Synology по сети.
Для начала у вас должен быть ИБП подключенный к Synology по средством USB и эта связка должна работать.
Затем открываем Панель управления – Оборудование и питание – ИБП. Тут включаем сервер сетевого ИБП, жмем Разрешить устройства Synology NAS (пусть сейчас вас это не пугает) и вписываем IP адреса устройств, которые будут подключаться к этому серверу как клиенты. Не забываем нажать ОК и Применить.
Затем нам нужен клиент NUT. Для Windows скачать его можно тут. Затем устанавливаем, запускаем и переходим в настройки. Приводим их к такому виду:
- IP адрес сервера Synology NAS
- Порт оставляем по умолчанию 3493
- Имя ИБП обязательно ups
- Интервал на ваше усмотрение, должно быть =>1 Я выбрал 10
- Логин monuser (еще может быть upsmon на старой DSM)
- Пароль secret
Эти параметры подойдут как для Windows так и для Linux или даже для MAC тут разницы нет, серверу главное что бы были правильные параметры.
Как только все ввели, жмем ОК и подключаемся к серверу ИБП Sunology NAS
Обратите внимание, что статус должен быть Успех. На этом все. Дальше настраивайте ваш NUT клиент по вашему усмотрению. Самое главное, что данные мы получаем и можем настроить их обработку по желанию, благо даже интерфейс на русском.
В низу оставлен комментарий Артема, у него не получалось запустить, а потом получилось, почитайте. Оставлю скрин тут:
Содержание
Настройка
Папка: /etc/nut/
В файле nut.conf
задаётся режим работы:
Список необходимых процессов для работы:
-
Сервер
-
Клиент
Для проверки можно использовать команду:
ps -aux|grep ups
iptables
Настройки для IPTables
iptables -A INPUT -p tcp -i $LAN_IF -s $LAN --sport 3493 -j ACCEPT iptables -A OUTPUT -p tcp -o $LAN_IF -d $LAN --dport 3493 -j ACCEPT iptables -A INPUT -p tcp -i $LAN_IF -s $LAN --dport 3493 -j ACCEPT iptables -A OUTPUT -p tcp -o $LAN_IF -d $LAN --sport 3493 -j ACCEPT
Сервер — upsd
upsd
отвечает за передачу данных от драйверов к клиентским программам по сети. Его следует запускать сразу после upsdrvctl
в сценариях запуска вашей системы.
По возможности, upsd
следует поддерживать в рабочем состоянии, поскольку это единственный источник информации о состоянии для клиентов мониторинга, таких как upsmon
.
Установка:
apt-get install nut-server
Пакет nut-server
включает в себя и upsmon
Мониторинг через upsmon
:
- upsmon.conf
-
MONITOR ИМЯ_ИБП@localhost 1 upsmaster password master MINSUPPLIES 1 SHUTDOWNCMD "/sbin/shutdown -h +0" POLLFREQ 5 POLLFREQALERT 5 HOSTSYNC 15 DEADTIME 15 POWERDOWNFLAG /etc/killpower RBWARNTIME 43200 NOCOMMWARNTIME 300 FINALDELAY 5
upsd.conf
- upsd.conf
-
MAXAGE 15 MAXCONN 8 STATEPATH /var/run/nut LISTEN 0.0.0.0 3493 #LISTEN 127.0.0.1 3493
Проверка:
netstat -an |grep 3493
upsd.users
- upsd.users
-
[admin] password = admin actions = SET instcmds = ALL [upsmaster] password = password upsmon master [upsslave] password = password upsmon slave
ups.conf
- ups.conf
-
[ИМЯ_ИБП] driver = upscode2 port = /dev/ttyS0 desc = "Описание ИБП"
Нужно обязательно дать права на файл устройства (порта), иначе будет ошибка:
upsd: Can't connect to UPS [ИМЯ_ИБП] (upscode2-ИМЯ_ИБП): No such file or directory
Пример:
chmod 0660 /dev/ttyS0 chown root:nut /dev/ttyS0
Для того, чтобы после перезагрузки были правильные права на файл, нужно создать файл 99-nut.rules
Примеры:
upsdrvctl
Клиент мониторинга — upsmon
Установка:
apt-get install nut-client
upsmon
предоставляет важную функцию, которую вы ожидаете найти в ПО для мониторинга ИБП — это безопасное отключение при сбое питания.
В иерархии ПО NUT это клиент. Он отдельно описан в документации, так как он очень важен.
Вы настраиваете его, указывая все ИБП, информацию о которых необходимо получать, это делается в файле в upsmon.conf
.
Каждый ИБП можно определить как один из двух возможных типов:
-
ведущий (master)
Этот ИБП подаёт питание на работающую систему, и эта система также отвечает за её отключение, когда батарея разряжена. Это происходит после безопасного отключения всех ведомых (slave) систем.
Если ваш ИБП подключён непосредственно к последовательному порту системы, процесс
upsmon
в этой системе должен определить этот ИБП как ведущий (master).
У простом случае один компьютер подключён к одному ИБП. Это означает, что вы запускаете драйвер,upsd
иupsmon
в режиме ведущий (master). -
ведомый (slave)
Этот ИБП может подавать питание на работающую систему, но эта система не может выключить её напрямую.
Используйте этот режим, когда вы используете несколько компьютеров на одном ИБП. Очевидно, только один может быть подключён к последовательному порту на ИБП, и эта система является ведущей (master), а все остальные ведомые (slave).
Мониторинг:
- upsmon.conf
-
MONITOR ИМЯ_ИБП@СЕРВЕР 1 upsslave password slave MINSUPPLIES 1 SHUTDOWNCMD "/sbin/shutdown -h +0" POLLFREQ 5 POLLFREQALERT 5 HOSTSYNC 15 DEADTIME 15 RBWARNTIME 43200 NOCOMMWARNTIME 300 FINALDELAY 5 NOTIFYMSG ONLINE "UPS %s on line power" NOTIFYMSG ONBATT "UPS %s on battery" NOTIFYMSG LOWBATT "UPS %s battery is low" NOTIFYMSG FSD "UPS %s: forced shutdown in progress" NOTIFYMSG COMMOK "Communications with UPS %s established" NOTIFYMSG COMMBAD "Communications with UPS %s lost" NOTIFYMSG SHUTDOWN "Auto logout and shutdown proceeding" NOTIFYMSG REPLBATT "UPS %s battery needs to be replaced" NOTIFYMSG NOCOMM "UPS %s is unavailable" NOTIFYMSG NOPARENT "upsmon parent process died - shutdown impossible"
MINSUPPLIES
— Число ИБП, которые поддерживают работоспособность системы.
Строка описания одного ИБП:
MONITOR СИСТЕМА PV ПОЛЬЗОВАТЕЛЬ ПАРОЛЬ ТИП
СИСТЕМА | ИМЯ_ИБП@СЕРВЕР |
PV | Число блоков питания, которые ИБП питает эту систему. Большинство обычных компьютеров имеют один блок питания, и ИБП питает его, поэтому это значение будет 1. Если нужно только контролировать ИБП, который на самом деле не подаёт питание на эту систему нужно использовать значение 0. Это полезно, когда вы хотите, чтобы upsmon только оправлял уведомления об изменениях статуса ИБП |
ПОЛЬЗОВАТЕЛЬ | Имя пользователя |
ПАРОЛЬ | Пароль пользователя |
ТИП | Тип: master или slave |
Другие клиенты
Клиенты общаются с upsd
по сети и работают с с данными из драйверов. Существуют инструменты для доступа к командной строке и несколько специальных клиентов, которые можно запускать через ваш веб-сервер как программы CGI.
upsc
Это простой клиент, который отображает значения переменных, известных upsd и вашим драйверам ИБП. По умолчанию он перечислит каждую переменную или только одну, если вы укажете дополнительный аргумент. Это может быть полезно в сценариях оболочки для мониторинга чего-либо без написания собственного сетевого кода.
upsc
— это быстрый способ узнать, правильно ли работают ваши драйверы и upsd
.
upsc -L |
список всех настроенных ИБП |
upsc ИМЯ_ИБП |
список всех доступных переменных с их текущими значениями |
upsc ИМЯ_ИБП ИМЯ_ПЕРЕМЕННОЙ |
текущее значение переменной |
Для подавления сообщения:
Init SSL without certificate database
Нужно использовать следующую конструкцию:
upsc ИМЯ_ИБП ИМЯ_ПЕРЕМЕННОЙ 2>&1 | grep -v SSL
upslog
upslog будет записывать информацию о состоянии из upsd
в файл через заданные промежутки времени. Вы можете использовать это для создания графиков или отчетов с помощью других программ.
Пример вывода протокола в файл с помощью upslog
- /etc/init.d/zzz_upslog
-
#!/bin/bash upslog -s ИМЯ_ИБП@ИМЯ_СЕРВЕРА -l/var/log/ups.log -i 30 -f \ "%TIME @Y@m@d @H@M@S% \ %VAR battery.charge% \ %VAR input.voltage% \ %VAR ups.load% \ [%VAR ups.status%] \ %VAR ups.temperature% \ %VAR input.frequency% \ %VAR battery.voltage% \ %VAR battery.voltage.high% \ %VAR battery.voltage.low% \ %VAR battery.voltage.nominal% \ %VAR input.current.nominal% \ %VAR input.voltage% \ %VAR input.voltage.fault% \ %VAR input.voltage.nominal% \ %VAR output.voltage% \ %VAR ups.delay.shutdown% \ %VAR ups.delay.start%"
upsrw
upsrw
позволяет отображать и изменять переменные чтения / записи в оборудовании вашего ИБП. Не все устройства или драйверы реализуют это, поэтому это может не повлиять на вашу систему.
Драйвер, поддерживающий переменные чтения / записи, даст следующие результаты:
Для изменения значения переменных требуются прав администратора. Права пользователей задаются в upsd.users
Примеры
-
Поучение текущего значения переменной
battery.date
:upsc ups_01 battery.date
-
Изменение значения переменной
battery.date
в ИБП APC (формат даты:DD/MM/YY
):upsrw -s battery.date=30/07/21 -u admin -p password ups_01@localhost
upscmd
Некоторое оборудование и драйверы ИБП поддерживают понятие мгновенной команды — такой функции, как запуск теста батареи или выключение нагрузки. Вы можете использовать upscmd
для вывода списка или вызова мгновенных команд, если ваше оборудование/драйверы их поддерживают.
upscmd требует прав администратора для запуска мгновенных команд. Чтобы определить пользователей и пароли в upsd
, см. upsd.users
Список команд, которые поддерживаются данным ИБП:
upscmd -u admin -p password -l UPS_01@localhost
Калибровка батарей
Процесс калибровки нужно начинать когда батареи ИБП заряжены полностью!
ИБП должен быть нагружен, глупо калибровать его на «холостом ходу».
Если есть сомнения в качестве батарей, необходимо производить калибровку не на «боевой» нагрузке, а на эквиваленте нагрузки.
В ходе этого процесса ИБП работает от батареи и разряжает их до 25%, а затем возвращается на работу от сети. ИБП использует данные нагрузки и время для вычисления новой оценки времени работы.
Запуск калибровки:
upscmd -u admin -p password ups_01@localhost calibrate.start
Для наблюдения за состоянием ИБП удобно использовать следующие команды:
-
watch upsc UPS_01 battery.charge
-
watch upsc UPS_01 battery.runtime
Jason Healy, Director of Networks and Systems — Network UPS Tools (Last Updated Mar 18, 2008)
upssched
Веб мониторинг
Zabbix
Мониторинг через Zabbix, работает через Zabbix агент.
Шаблон и код на основе этого проекта https://github.com/delin/Zabbix-NUT-Template
Параметр | Имя переменной | Примечания |
---|---|---|
Имя драйвера NUT | driver.name |
|
Модель ИБП | ups.model |
|
Нагрузка (%) | ups.load |
|
Напряжение батарей (В) | battery.voltage |
|
Напряжение на входе (В) | input.voltage |
|
Напряжение на выходе (В) | output.voltage |
|
Номинальная нагрузка (ВА) | ups.power.nominal |
|
Производитель ИБП | ups.mfr |
|
Расчётное время работы от батарей (Мин.) | battery.runtime |
|
Состояние | ups.status |
Эта переменная может содержать несколько значений, вот пример:
ups.status: ALARM OL ups.alarm: FAN_FAIL
для этого введены переменные |
Состояние, значение №2 | ups.status-2 |
|
Состояние, значение №3 | ups.status-3 |
|
Состояние, значение №4 | ups.status-4 |
|
Состояние, значение №5 | ups.status-5 |
|
Тревога | ups.alarm |
Эта переменная получает значение только при возникновении тревоги (alarm) поэтому для при ошибке:
Error: Variable not supported by UPS
возвращается |
Тревога, значение №2 | ups.alarm-2 |
|
Тревога, значение №3 | ups.alarm-3 |
|
Тревога, значение №4 | ups.alarm-4 |
|
Тревога, значение №5 | ups.alarm-5 |
|
Тревога, значение №6 | ups.alarm-6 |
|
Тревога, значение №7 | ups.alarm-7 |
|
Тревога, значение №8 | ups.alarm-8 |
|
Тревога, значение №9 | ups.alarm-9 |
|
Тревога, значение №10 | ups.alarm-10 |
|
Температура (°C) | ups.temperature |
|
Уровень заряда батарей (В) | battery.charge |
|
Частота на входе (Гц) | input.frequency |
Если переменная не поддерживается, возникает ошибка:
Error: Variable not supported by UPS
и возвращается значение
NA
Template NUT
Ссылка на Share.Zabbix.com