This section presents the different methods to download NUT.
Source code
You should always use PGP/GPG to verify the signatures before using any source code. |
Development tree:
Code repository
The development tree is available through a Git repository hosted at
GitHub.
To retrieve the current development tree, use the following command:
:; git clone git://github.com/networkupstools/nut.git
OPTIONALLY you can then fetch known git tags, so semantic versions look
better (based off a recent release):
:; cd nut
:; git fetch --tags --all
The configure
script and its dependencies are not stored in Git. To generate
them, ensure that autoconf, automake and libtool are installed, then run the
following script in the directory you just checked out:
it is optionally recommended to have Python 2.x or 3.x, and Perl, to generate some files included into the configure script, presence is checkedby autotools when it is generated. Neutered files can be just «touched» to pass the autogen.sh if these interpreters are not available, and effectivelyskip those parts of the build later on — autogen.sh will then advise whichspecial environment variables to export in your situation and re-run it. |
Browse code
You can browse the «vanilla NUT» code at the
Main GitHub repository for NUT sources,
and some possibly modified copies as part of packaging recipe
sources of operating system distributions, as listed below.
Snapshots
GitHub has several download links for repository snapshots (for particular tags
or branches), but you will need a number of tools such as autoconf, automake
and libtool to use these snapshots to generate the configure
script and some
other files.
After you configure
the source workspace, a make dist-hash
recipe would
create the snapshot tarballs which do not require the auto* tools, and their
checksum files, such as those available on the NUT website and attached to
GitHub Releases page.
Older versions
Binary packages
Java packages
-
The jNut package has been split into its own
GitHub repository. -
NUT Java support (client side, Beta)
jNUT 0.2-SNAPSHOT -
NUT Java Web support (client side using REST, Beta)
jNutWebAPI 0.2-SNAPSHOT (sources)
Virtualization packages
VMware
-
NUT client for VMware ESXi (several versions of both; offsite, by René Garcia).
Since the hypervisor manager environment lacks access to hardware ports, this
package only includes theupsmon
client integration, and a NUT server must
run in a VM with passed-through ports.Note that the VIB package versioning is independent of NUT or VMware versions,
they are however mentioned in downloadable file names. As of this writing,
there are builds spanning VMware ESXi 5.0-8.0 and NUT 2.7.4-2.8.0.This module is provided «as is» and is not approved by VMware,
you may lose VMware support if you install it. Use it at your own risks.-
GitHub repository with build recipes,
including binary releases -
Original blog entry (French)
-
Historic
details of the recipe evolution -
VIB package
(in fact automatically redirects to latest build)
-
Когда возникает задача мониторить бесперебойники у рабочих станций? Запищал – заменил, конец. Чинить ИБП – дело неблагодарное, менять аккумуляторы – не все хотят возиться (или даже моветон).
Так думал и я, особенно после череды ИБП с отказавшей электроникой. Ситуацию усугублял софт от производителей. Он, как бы это помягче выразиться, барахло. Причем у всех – 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 – пишите, разберёмся вместе.
Спасибо за внимание!
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Какой софт вы используете для мониторинга ИБП рабочих станций?
18.8% Софт от производителя22
29.06% Zabbix / Cacti / подобное34
24.79% Не использую, но после прочтения статьи решил, что надо бы29
4.27% Другое, рассказал в комментариях5
Проголосовали 117 пользователей. Воздержались 24 пользователя.
Network UPS Tools Services for Windows
Network UPS Tools Services for Windows provides tools and services to run an upsd
compatible
server to report the status of UPS devices connected to a system or server in master mode. It
allows other Network UPS Tools slave daemons and monitoring clients access to UPS information using
standard Windows programing interfaces for easier setup.
Installation
- Run the appropriate MSI for your processor platform.
Building
Requirements
- Visual Studio 2015 Community or better.
- Windows Installer XML Toolkit 3.9 or later (for 3.9, the following is required, similar to
Enable WiX project in Visual Studio 2013)- Copy C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\WiX
to C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\WiX - Modify C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\WiX\extension.vsixmanifest
by adding the following:<VisualStudio Version="14.0"> <Edition>Ultimate</Edition> <Edition>Premium</Edition> <Edition>Pro</Edition> <Edition>Express_All</Edition> </VisualStudio>
- Then open a Visual Studio 2015 Command Prompt such as Developer Command Prompt for VS2015
and rundevenv /setup
.
- Copy C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\WiX
Components
ntUPSd: Network UPS Tools Daemon for Windows
A Windows service that provide information to upsd
compatible clients.
ntUPSd.Core: Support Library
Provides many wrappers for Windows APIs used by ntUPSd
. This library allows the core logic of
the daemon to remain clean and easy to follow. It is a static library and therefore will now be
present in binary release installations.
ntUPSd.Setup: Installation
The MSI and setup bootstrap for installing ntUPSd.
TODOs
In no particular priority.
- Implement complete protocol.
- Create administration user interface.
- Add support for mulitple batteries.
- Add support for authentication.
- Proper installation instructions.
License
Network UPS Tools Services for Windows is provided under the MIT license. For more information see
the LICENSE
file.
ups
power
monitoring
alerts
Open source software for monitoring and managing UPS devices, working across multiple OS platforms, with alerts on power outages or battery failures
What is Network UPS Tools?
Network UPS Tools (NUT) is an open-source software solution for monitoring and managing uninterruptible power supply (UPS) hardware connected to a network. It works across multiple operating system platforms and aims to provide a uniform interface for managing any UPS on the network.
Some key features and capabilities of NUT include:
- Support for monitoring a wide range of UPS models from various manufacturers including APC, MGE, Eaton, Tripp Lite, and more.
- Alerts and notifications via email, SNMP traps, logging, and external script triggers for power events like outages or low battery.
- Safe shutdown of computers and virtual machines connected to the UPS during extended power failures.
- Detailed graphs and logs for tracking battery capacity, load levels, voltages, and other UPS metrics.
- XML-RPC interface for monitoring status from various programming languages and tools.
- Platform support across Linux, BSD, macOS, Solaris, Windows, and other common server operating systems.
- Modular driver-based architecture makes adding support for new UPS models relatively easy.
NUT provides a robust anddependable solution for keeping critical systems and infrastructure powered and monitored. Its open source nature facilitates custom integrations and extensions as well.
Network UPS Tools Features
Features
- Monitors and manages UPS devices on a network
- Provides status information on UPS devices
- Sends alerts on power events like outages or battery failures
- Supports graceful shutdown of computers on power loss
- Works across multiple operating systems like Linux, Windows, macOS
- Open source and community supported
Pros
Free and open source
Cross-platform support
Active development community
Integrates with many UPS models
Provides critical alerts and automation
Highly customizable and extensible
Cons
Can have a steep learning curve
Limited official support and documentation
Requires some command line configuration
Not all UPS devices fully supported
Complex for basic UPS monitoring needs
Official Links
The Best Network UPS Tools Alternatives
Top
Network & Admin
and
Server Management
and other similar apps like Network UPS Tools
WinNUT-Client
WinNUT-Client is a free, open-source Windows application that interfaces with uninterruptible power supplies (UPSs) and other power devices using the Network UPS Tools (NUT) monitoring protocol. It provides a graphical user interface to check the status of UPSs and other NUT-compatible hardware on a local network.Some of the key features…
UPS Assistant
UPS Assistant is a desktop application developed by United Parcel Service to help streamline the shipping process for high volume shippers. Some key features of UPS Assistant include:Shipment Preparation — Enter shipment details like ship to/from addresses, package weight and dimensions, and declared value. Print shipping and return labels.Tracking -…
Winpower
Winpower is an electrical engineering software suite developed by CIMTEC Automation specifically for the design, simulation, and analysis of industrial electrical control systems. It integrates tools for schematic design, PLC programming, HMI development, and system simulation into a single intuitive platform.Key features of Winpower include:Intuitive schematic editing tools for drawing…
Всем известно, что для защиты от сбоев электропитания нужно купить бесперебойник. Но сам по себе источник бесперебойного питания не решает проблему, а только отсрочивает негативные последствия. Действительно, если питание пропадет надолго, то после разрядки батарей ИБП ваши системы аварийно завершат работу. Избежать этого позволяют модели, имеющие обратную связь, но, чтобы использовать эти возможности нам потребуется система управления электропитанием и сегодня мы расскажем об открытом и бесплатном продукте — NUT (Network UPS Tools).
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе «Архитектура современных компьютерных сетей» вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Почему именно 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 просто, но данная статья и близко не затронула всех возможностей этой системы. Пока что мы организовали базовую систему централизованного управления электропитанием, но при желании ее можно бесконечно улучшать и дополнять, благо проект прекрасно документирован.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе «Архитектура современных компьютерных сетей» вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.