Моніторинг джерела безперебійного живлення (UPS) в Ubuntu

  у розділі Технічні теми 

Стандартом де-факто для моніторингу UPS (ББЖ) в *NIX-операційках давно є Network UPS Tools (NUT). Система потужна, але дещо заплутана в налаштуваннях.

Встановлення в Ubuntu Linux1

Я використовую старенький UPS Mustek Powermust 600 USB.

Mustek Powermust 600 USB

Інсталяція NUT.

sudo apt-get install nut nut-client

Увага, важливо! В Ubuntu існують проблеми з правами доступу системи NUT до USB-пристрою. Для цього потрібно підправляти ці права при появі пристрою в системі. Потрібний скрипт розробники системи вже створили для нас. Тому:

sudo cp /lib/udev/rules.d/52-nut-usbups.rules /etc/udev/rules.d/

Перевантажити комп’ютер.

Який UPS використовується.

sudo nano /etc/nut/ups.conf​


[mustec]
        driver = blazer_usb
        port = auto
        desc = "Mustec Powermust 600"

Назву драйвера для driver можна пошукати тут. Можна погуглити свою модель. Можна просто перебрати декілька назв драйверів (один драйвер може охоплювати дуже багато моделей).

Перевірка що драйвер UPS працює правильно:

# sudo upsdrvctl start

Network UPS Tools - UPS driver controller 2.7.1
Network UPS Tools - Megatec/Q1 protocol USB driver 0.10 (2.7.1)

Supported UPS detected with megatec protocol
Vendor information unavailable
No values provided for battery high/low voltages in ups.conf

Using 'guestimation' (low: 10.400000, high: 13.000000)!
Battery runtime will not be calculated (runtimecal not set)

Якщо все OK то

# sudo upsdrvctl stop

і продовжуємо.

Хто матиме право підключатися до системи моніторингу.

sudo nano /etc/nut/upsd.users​


[admin]
        password = PASS1
        actions = SET
        instcmds = ALL
[monuser]
        password = PASS2
        upsmon master

Які саме UPS будуть моніторитися.

Система підтримує і віддалене спостереження, по мережі.

sudo nano /etc/nut/hosts.conf​


MONITOR mustec@localhost "My PC"

Глобальні налаштування системи.

sudo nano /etc/nut/upsmon.conf​


MONITOR mustec@localhost 1 monuser PASS2 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
NOTIFYCMD /etc/nut/sms.sh
NOTIFYFLAG ONLINE       SYSLOG+WALL+EXEC
NOTIFYFLAG ONBATT       SYSLOG+WALL+EXEC
NOTIFYFLAG LOWBATT      SYSLOG+WALL+EXEC
NOTIFYFLAG SHUTDOWN     SYSLOG+WALL+EXEC
NOTIFYFLAG REPLBATT     SYSLOG+WALL+EXEC

NOTIFYCMD це саморобний скриптик для надсилання SMS. Скрипту, як параметр, передається назва події.

Його можна "викинути", або замінити на інший тип сповіщення. Значення SYSLOG+WALL+EXEC вказує на те які системи сповіщення буде використано. Так, просто SYSLOG лише запише подію у системний журнал. SYSLOG+WALL запише подію і надішле сповіщення в консоль і т.д.

При досягненні критичного розряду батареї NUT дась системі команду вимкнутися.

Режим роботи системи.

​sudo nano /etc/nut/nut.conf​


MODE=standalone

Ручний перезапуск служби.

sudo service ups-monitor restart

Моніторинг параметрів

# sudo upsc mustec@localhost

battery.charge: 100
battery.voltage: 13.50
battery.voltage.high: 13.00
battery.voltage.low: 10.40
battery.voltage.nominal: 12.0
device.type: ups
driver.name: blazer_usb
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.version: 2.7.1
driver.version.internal: 0.10
input.current.nominal: 2.0
input.frequency: 49.9
input.frequency.nominal: 50
input.voltage: 204.2
input.voltage.fault: 204.2
input.voltage.nominal: 220
output.voltage: 204.2
ups.beeper.status: enabled
ups.delay.shutdown: 30
ups.delay.start: 180
ups.load: 32
ups.productid: 0003
ups.status: OL
ups.temperature: 25.0
ups.type: offline / line interactive
ups.vendorid: 06da

або

# sudo upsc mustec@localhost ups.status

OL

  1. Насправді все тестувалося не в "чистій" Ubuntu а в Ubuntu Mate та Xubuntu, але на результат це не впливає :) . 


Коментарі