- PVSM.RU - https://www.pvsm.ru -
Когда возникает задача мониторить бесперебойники у рабочих станций? Запищал – заменил, конец. Чинить ИБП – дело неблагодарное, менять аккумуляторы – не все хотят возиться (или даже моветон).
Так думал и я, особенно после череды ИБП с отказавшей электроникой. Ситуацию усугублял софт от производителей. Он, как бы это помягче выразиться, барахло. Причем у всех – APC, Ippon, Powercom, TrippLite. Что серверный, что для рабочих станций. Пробовать платные версии после опыта с бесплатными – желания не возникло. А совсем весело, когда ИБП от разных производителей.
Но мониторить всё же надо. Плюсы очевидны: 1) можно поменять ИБП ДО того, как он издаст прощальный писк; 2) можно сразу увидеть, где сдохла батарея, а где электроника.
Минус же прост, как всегда: стоимость решения, в деньгах или человеко-часах.
Вот эту проблему и будем решать.
Если имеем зоопарк, то самый адекватный способ – это Network UPS Tools [1].
По нему мало информации про Windows, а ещё нет GUI. Но это мы решим [2].
Справедливости ради нужно отметить, что есть похожий проект на Python [3]. Но мне лично кажется совершенно излишним использование Python (и подобные технические решения) там, где можно обойтись парой строк нативного скриптинга.
Разумеется, для сбора информации понадобятся UPS с инфо-портом. У меня возникли проблемы с COM-портом IPPON, всё остальное работает на ура.
Обычно для рабочих станций используется подключение ИБП по USB, этот случай и рассмотрим. Нужно установить NUT на все рабочие станции с ИБП.
Возможные проблемы при этом:
Примерный скрипт полуавтоматической установки NUT на клиенты:
N:NUT-Installer-2.6.5-6.msi /qn
copy N:dllssleay32.dll C:WindowsSystem32 /Y
copy N:dlllibeay32.dll C:WindowsSystem32 /Y
copy N:dlllibgcc_s_dw2-1.dll C:WindowsSystem32 /Y
copy N:dlllibusb.dll C:WindowsSystem32 /Y
copy N:etc* "%programfiles%NUTetc"
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%NUTetcupsd.conf"
rem Ставим драйвер libusb отдельно
N:libusb-win32-bin-1.2.6.0bininf-wizard.exe
rem Правим конфиги, там буквально две строки
notepad "%programfiles%NUTetcups.conf"
notepad "%programfiles%NUTetcupsmon.conf"
pause
net use N: /delete /Y
Как понять, почему не работает NUT под Windows:
Для сервера мониторинга нужны:
Базу SQL и www кладём в соответствующие каталоги веб-севера. Скрипты из batch_scripts копируем в папку установки NUT. Запускаем веб-сервер, переходим на localhost/index_ups.php [5]. Добавляем любой из клиентских UPS в формате UPS_name@host. Запускаем скрипт get_ups_list_mysql.cmd. Проверяем. Enjoy.
Что мы можем увидеть полезного, помимо текущего состояния? Например:
Несколько моментов:
Если у кого-то проблемы с установкой/работой NUT под Windows – пишите, разберёмся вместе.
Спасибо за внимание!
Автор: LevOrdabesov
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/290180
Ссылки в тексте:
[1] Network UPS Tools: http://www.networkupstools.org
[2] решим: https://github.com/automatize-it/NUT_UPS_monitoring_webserver_for_Windows
[3] проект на Python: https://github.com/rshipp/webNUT
[4] Uniform Server: http://www.uniformserver.com/
[5] localhost/index_ups.php: http://localhost/index_ups.php
[6] Image: https://raw.githubusercontent.com/automatize-it/NUT_UPS_monitoring_webserver_for_Windows/master/scrshts/NUT_webserver_main_if_08-06-18.png
[7] Источник: https://habr.com/post/421039/?utm_campaign=421039
Нажмите здесь для печати.