Network UPS Tools (NUT)

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

http://www.networkupstools.org/

https://github.com/networkupstools/nut/

Monitoring diagrams

GenericUPS - Driver for contact-closure UPS equipment

2016-04-28: новый проект ntUPSd - Network UPS Tools Services for Windows

Установка

Сервер

apt-get install nut-server

Клиент

apt-get install nut-client

Клиент 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.

http://csociety.ecn.purdue.edu/~delpha/winnut/

Windows NUT client

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

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

http://sourceforge.net/projects/winnutclient

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

apt-get install nut-cgi

Настройка

Папка: /etc/nut/

Сервер

nut.conf

nut.conf
MODE=netserver

upsd.conf

upsd.conf
MAXAGE 15
MAXCONN 8
STATEPATH /var/run/nut
LISTEN 0.0.0.0 3493
#LISTEN 127.0.0.1 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

Для того, чтобы после перезагрузки были правильные права на файл, нужно создать файл: /etc/udev/rules.d/99-nut.rules

99-nut.rules
KERNEL=="ttyS0", GROUP="nut"

upsmon.conf

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

Клиент

nut.conf

nut.conf
MODE=netclient

upsmon.conf

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"

upslog

Вывод протокола в файл с помощью 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%"

upsc

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

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

Init SSL without certificate database

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

upsc ИМЯ_ИБП ИМЯ_ПЕРЕМЕННОЙ 2>&1 | grep -v SSL

upsdrvctl

UPS driver controller

Тест выключения

upsdrvctl -t shutdown

http://networkupstools.org/docs/man/upsdrvctl.html

Zabbix

FIXME

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

Шаблон и код на основе этого проекта https://github.com/delin/Zabbix-NUT-Template

ПараметрИмя переменнойПримечания
Имя драйвера NUTdriver.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

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

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

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

Тревога, значение №2ups.alarm-2
Тревога, значение №3ups.alarm-3
Тревога, значение №4ups.alarm-4
Тревога, значение №5ups.alarm-5
Тревога, значение №6ups.alarm-6
Тревога, значение №7ups.alarm-7
Тревога, значение №8ups.alarm-8
Тревога, значение №9ups.alarm-9
Тревога, значение №10ups.alarm-10
Температура (°C)ups.temperature
Уровень заряда батарей (В)battery.charge
Частота на входе (Гц)input.frequency

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

Error: Variable not supported by UPS

и возвращается значение

NA

Template NUT

Ссылка на Share.Zabbix.com

Ссылки

nut/nut.txt · Последние изменения: 2018-08-01 14:26 — GreyWolf
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki