Network ups tools для windows

Мозаика системного администрирования

Инструменты пользователя

Инструменты сайта

Network UPS Tools (NUT)

Содержание

Network UPS Tools (NUT) — комплект программ для мониторинга ИБП .

Сервер — upsd

upsd отвечает за передачу данных от драйверов к клиентским программам по сети. Его следует запускать сразу после upsdrvctl в сценариях запуска вашей системы.

По возможности, upsd следует поддерживать в рабочем состоянии, поскольку это единственный источник информации о состоянии для клиентов мониторинга, таких как upsmon.

upsd.conf

upsd.users

ups.conf

Нужно обязательно дать права на файл устройства (порта), иначе будет ошибка:

Для того, чтобы после перезагрузки были правильные права на файл, нужно создать файл:

upsdrvctl

UPS driver controller

Клиент мониторинга — upsmon

upsmon предоставляет важную функцию, которую вы ожидаете найти в ПО для мониторинга ИБП — это безопасное отключение при сбое питания.

В иерархии ПО NUT это клиент. Он отдельно описан в документации, так как он очень важен. Вы настраиваете его, указывая все ИБП, информацию о которых необходимо получать, это делается в файле в upsmon.conf .

В файле nut.conf нужно указать режим:

СИСТЕМА ИМЯ_ИБП @СЕРВЕР
PV Целое число, равное числу блоков питания, которые ИБП питает в этой системе. Большинство обычных компьютеров имеют один блок питания, и ИБП питает его, поэтому это значение будет 1.
Если нужно только контролировать ИБП , который на самом деле не подаёт питание на эту систему нужно использовать значение 0. Это полезно, когда вы хотите, чтобы upsmon только оправлял уведомления об изменениях статуса ИБП
ПОЛЬЗОВАТЕЛЬ Имя пользователя
ПАРОЛЬ Пароль пользователя
ТИП Тип: master или slave

Клиент MS Windows

WinNUT

WinNUT — The Windows Network UPS Tools

WinNUT is currently being replaced by a full port to Windows, part of the official NUT distribution. MSI packages are available too.

Windows NUT client

Графический интерфейс к WinNUT

Windows NUT client is a partial port of KNutClient to Windows using AutoIt scripting language.

Другие клиенты

Клиенты общаются с upsd по сети и делают полезные вещи с данными из драйверов. Существуют инструменты для доступа к командной строке и несколько специальных клиентов, которые можно запускать через ваш веб-сервер как программы CGI.

upsc — это быстрый способ узнать, правильно ли работают ваши драйверы и upsd .

upsc -L список всех настроенных ИБП
upsc ИМЯ_ИБП список всех доступных переменных с их текущими значениями
upsc ИМЯ_ИБП ИМЯ_ПЕРЕМЕННОЙ текущее значение переменной

Для подавления сообщения:

Нужно использовать следующую конструкцию:

upslog

upslog будет записывать информацию о состоянии из upsd в файл через заданные промежутки времени. Вы можете использовать это для создания графиков или отчетов с помощью других программ.

Пример вывода протокола в файл с помощью upslog

upsrw

upsrw требует прав администратора для изменения настроек оборудования. Обратитесь к upsd.users для получения информации об определении пользователей в upsd .

upscmd

upscmd требует прав администратора для запуска мгновенных команд. Чтобы определить пользователей и пароли в upsd , см. upsd.users

Веб мониторинг

Настройка

Zabbix

Мониторинг через Zabbix, работает через Zabbix агент.

Читайте также:  Специалист по linux вакансии
Параметр Имя переменной Примечания
Имя драйвера NUT driver.name
Модель ИБП ups.model
Нагрузка (%) ups.load
Напряжение батарей (В) battery.voltage
Напряжение на входе (В) input.voltage
Напряжение на выходе (В) output.voltage
Номинальная нагрузка (ВА) ups.power.nominal
Производитель ИБП ups.mfr
Расчётное время работы от батарей (Мин.) battery.runtime
Состояние ups.status Эта переменная может содержать несколько значений, вот пример:

для этого введены переменные ups.status-2 … ups.status-5 , если эти переменные не содержат значений то возвращается 0

Состояние, значение №2 ups.status-2 Состояние, значение №3 ups.status-3 Состояние, значение №4 ups.status-4 Состояние, значение №5 ups.status-5 Тревога ups.alarm Эта переменная получает значение только при возникновении тревоги (alarm) поэтому для при ошибке:

возвращается 0 , также она может содержать несколько значений, для этого введены переменные ups.alarm-2 … ups.alarm-10

Тревога, значение №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

Если переменная не поддерживается, возникает ошибка:

Welcome

The primary goal of the Network UPS Tools (NUT) project is to provide support for Power Devices, such as Uninterruptible Power Supplies, Power Distribution Units, Automatic Transfer Switch, Power Supply Units and Solar Controllers.

NUT provides many control and monitoring features, with a uniform control and management interface. If you are just getting acquainted with NUT, that page also explains the technical design and some possible set-ups.

More than 140 different manufacturers, and several thousands of models are compatible.

This software is the combined effort of many individuals and companies.

March 6, 2021: great thanks to Fosshost Org for providing virtual servers that we can use for diverse build farm!

November 13, 2020: announced handing of maintainership reins from Arnaud Quette to Evgeny «Jim» Klimov

March 9, 2016: NUT 2.7.4 released

April 16, 2015: NUT 2.7.3 released

April 17, 2014: NUT 2.7.2 released

February 18, 2014: new project nut-snmpagent

November 20, 2013: NUT 2.7.1 released

June 21, 2013: new client walNUT released

February 10, 2013: NUT source repository is converted to Git using reposurgeon

August 8, 2012: NUT 2.6.5 released

June 5, 2012: WMNut 0.64 released, and move hosting

May 31, 2012: NUT 2.6.4 released, including CVE-2012-2944 fix

May 10, 2012: WMNut 0.63 released

May 9, 2012: Official publication of Riello communication protocols

Download information

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.

You can use the following procedure to do so.

Stable tree: 2.7

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:

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:

Then refer to the NUT user manual for more information.

Browse code

You can also browse the code at GitHub, or at the Alioth mirror. The code was originally kept in Subversion, and the old Trac site will be kept around for a bit so as not to break the URLs in the mailing list archives.

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.

If our Buildbot instance is behaving, you can download a snapshot which does not require auto* tools from this builder. Look for the latest [tarball] link towards the top of the page, and be sure to check the Build ## link to verify the branch name.

Настройка мониторинга состояния ИБП SNR серии Element в Windows

Решаем задачу по мониторингу ИБП SNR серии Element, 1000 VA, 24VDC. В комплекте с ним шла утилита хх-летней давности UPSilon 2000, которая кроме как через email (и пейджер ;)) оповещать о событиях не умеет.

Network UPS Tools

Установка

Скачиваем msi пакет для Windows Windows (complete port, Beta) и устанвливаем. Входе установки у меня возникла ошибка установки NUT UPS драйвера . Пришлось скачивать этот: http://sourceforge.net/projects/libusb-win32/. В составе этого драйвера есть утилита inf-wizard.exe с помощью которой можно легко определить какое из usb устройств наш ИБП и установить драйвер в систему, особенно актуально для установки в режиме Windows Server Core.

Дальше нужно найти недастующие библиотеки (которые отсутствуют в инсталяторе), а именно:

  • libeay32.dll
  • ssleay32.dll
  • msvcr71.dll
  • libgcc_s_dw2-1.dll

Их можно скачать у меня в составе архива или найти самостоятельно.

Настройка

Минимальная настройка конфигурации в моем случае.

runtimecal — Для подсчета этого параметра нужно тестировать сам ИБП. Нужно разредить полностью с определенным процентом нагрузки и замерить время. Например в приведенном верху примере при 86% нагрузке ИБП разряжается за 900 секунд, а при 42% нагрузке за 1960 секунд.

Проверить правильность настроек (после запуска службы) можно так:

Запустить NUT для отладки как консольную программу можно так:

Обязательно нужно проверить настройки брандмаэура, открыть TCP порт 3493.

На Windows Server Core, NUT на отрез отказывался корректно запускаться как служба. Пришлось в планировщике задач прописать следующий powershell скрипт выполняющийся при старте системы:

Мониторинг

Мониторить будем с помощью icinga2 .

Вариант опроса ИБП из Linux

Подключаем плагин check_nut_plus как CheckCommand:

Network UPS Tools (NUT) на CentOS и Windows с отправкой смс через smstools+playsms

В условиях ограниченного бюджета небольшой компании, скромный терминальный сервер 2003 получал бесперебойное электричество от Ippon Smart Winner 1500, который управлялся стандартной утилитой. Не могу чего-то сильно плохого сказать про этот ИБП и его монструозную утилиту управления с анимацией тока. Гудит вполне на свои деньги.

Со временем, windows пришлось обременить парой виртуальных машин Vmware, а парк пополнился парой небольших линуксовых серверов с АТС, Jabber и прочими офисными радостями. Соответственно, возникло желание тоже управлять их питанием от Ippon, ибо заявлена поддержка *nix.

Однако, хотя производитель «по взрослому» предусмотрел множество расширенных возможностей управления, включая клиенты под *nix и mac, смс и email оповещение и т.д., попытки практического применения всего этого болезненны, а результат непредсказуем.

Как все дороги ведут в Рим, так и проблемы с Ippon ведут к NUT. В сети масса информации об этой чудесной утилите, в т.ч. и на Хабре есть примеры настройки.
Под *nix работать с NUT одно удовольствие. Просто, понятно, логично.

В сервер c CentOS, непосредственно соединенный с ИБП по USB, я воткнул GSM-модем Teleofis-RX104 и подружил его с smstools3 и playsms, чтобы получился импровизированный sms-шлюз с поддержкой webservices api. В результате, получился удобный универсальный инструмент для разного рода оповещений, в т.ч. и офисной работы

Далее, установил готовый NUT из EPEL-репозитория, прописав в конфигах:

Информация о портах и vendor/product из вывода lsusb, вольтаж подобран экспериментально, чтобы всем хватило времени на корректное выключение, т.к. алгоритм завершения работы включается при остаточном напряжении батареи ниже, чем default.battery.voltage.low

В NUT есть и переменная battery.charge, в которую записывается предположительный математический остаток батареи в %. Он наглядный, но для управления не очень удобен:

Пользователи, которые могут подключаться и смотреть/управлять/управляться ИБП. admin — для управления ИБП, upsmon_local — для мониторинга состояния ИБП на локальном сервере, upsmon_remote — для управляемых клиентов. Пароли по вкусу:

Это самый интересный конфиг, в котором описывается поведение NUT при разных состояниях ИБП. MONITOR указывает, что мы подключаемся к локальной службе NUT и будем мастером, т.е., в случае чего — будем выключать ведомых, а сами умрем последними. Строка NOTIFYCMD указывает какая команда будет выполняться для уведомления. У меня — это вызов /usr/local/ups/notifyme следующего содержания:

В команду передаются те аргументы NOTIFYFLAG, где есть флаг EXEC. Все переданные аргументы помещаются в строке после «servername:» (чтобы было понятно кто пишет) и отправляются на 7903*******. То есть, при отключении тока придет смс «servername: UPS winner1500 on battery» Текст уведомлений можно менять.

Второй Centos-сервер настраивается еще проще. Фактически, нам нужен только монитор состояния мастер-сервера и ожидание вестей от него. Но раз уж у нас есть playsms, то можно и от него получать смс, например, о том есть ли связь с мастером (не умерла ли на нем служба NUT)

То есть, ставим EXEC там, где нас интересуют проблемы со связью и прошла ли команда отключения питания от мастера.
Для отправки смс, я задействовал playsms, которому curl передает текст в виде GET-url. Для этого изначально нужно в настройках пользователя playsms включить webservices и сгенерировать webservices token. После этого, в /usr/local/ups/notifyme второго сервера указываем:

То есть, все то же самое, что и в первом варианте, только заменить пробелы на + и отправить через GET-запрос.

В windows все немного обросло костылями. На сервер был установлен пакет NUT-Installer-2.6.5-3.msi Который по дефолту установился в C:\Program Files\NUT и чудесно запустился службой без особых проблем. И curl для отправки уведомлений через playsms.

Настройка NUT аналогична второму серверу-слэйву, т.е. MODE-netclient, основное в upsmon.conf и костылях.

Здесь файл уведомления notify.cmd следующего содержания (смысл от которого не меняется):

Вот собственно и весь сказ. Если нужно что-то уточнить-дополнить буду рад

msg=%* в notify.cmd делает батник относительно универсальным для разных задач. То есть, добавив в автозагрузку «notify.cmd started» получим уведомление «servername:started» на смс.

Я не преминул это использовать для мониторинга жесткой перезагрузки с BSOD 0x9, которую мне устраивал symantec. Убирать не стал. Мониторинг hard reset полезен:

Вместо powerdown.cmd можно прямо указать команду, например C:/WINDOWS/system32/shutdown.exe -s -t 0 -c «Forced by NUT master».

Путь к батнику появился потому, что мне было желательно перед выключением сервера корректно выключить виртуальную машину с помощью vmrun из комплекта VMware VIX.

Так как машина была запущена в виде службы утилитой AlwaysUp, то команду корректного останова машины «C:\Program Files\VMware\VMware VIX\vmrun.exe» stop S:\vmachine.vmx я прописал в AlwaysUp, а в батнике уже лишь контролировал службу и писал лог, чтобы если что — таймауты прибавить. Получилось:

То есть, когда батарейка тикает — негоже ждать выключения виртуалки дольше определенного лимита, если она повисла или вообще не запущена

Читайте также:  Что такое проигрыватель windows версии 10
Оцените статью