NUT

Материал из ALT Linux Wiki

Краткое описание. Если кто возьмётся дополнить чем либо, будет очень хорошо.

Настройка nut на примерах Eaton Ellipse ECO 800 и RUCELF UPI-1000-12-EL.

Конфигурация

Установка пакетов:

  • nut
  • nut-server

Конфигурационные файлы расположены в /etc/nut/

определение драйвера для ИБП

Начинаем с просмотра https://networkupstools.org/stable-hcl.html потом https://networkupstools.org/ddl/ потом гуглим модель и внимательно смотрим https://networkupstools.org/stable-hcl.html?manufacturer=Various

может помочь nut-scanner. Пример результата для RUCELF UPI-1000-12-EL:

# nut-scanner 
IPMI library not found. IPMI search disabled.
Scanning USB bus.
No start IP, skipping SNMP
No start IP, skipping NUT bus (old connect method)
Scanning NUT bus (avahi method).
[nutdev1]
       driver = "blazer_usb"
       port = "auto"
       vendorid = "0001"
       productid = "0000"
       bus = "001"

Заметим, что в случае RUCELF UPI-1000-12-EL nut-scanner догадался о протоколе (и драйвере blazer_usb) но в данной модели ИБП протокол ьреализован криво. С базовыми настройками ИБП не запустился, чтение документации( man 8 blazer_usb) помогло найти нужный костыль langid_fix = 0x409.

подключение

usb

Находим устройство в выводе команды

$ lsusb 
Bus 001 Device 016: ID 0001:0000 Fry's Electronics USB OPTICAL MOUSE
...

смотрим, чтобы у устройства была группа upsmon:

$ l /dev/bus/usb/001/ 
итого 0
crw-rw-rw- 1 root upsmon 189, 15 авг 21 21:00 016
...

если нет, то добавляем свои udev rules по образцу

/lib/udev/rules.d/98-nut-usbups.rules

rs232

читаем документацию по подключению. Устройство может подключаться нестандартным кабелем. Если комплектный кабель утерян, придется паять - обжимать самостоятельно.

ups.conf

Вписать в ups.conf описание ИБП:

[eaton]
   port = auto
   driver = usbhid-ups
   desc = "Eaton Ellipse 800"

или

[rucelf]
      driver = blazer_usb
      langid_fix = 0x409
      port = auto
      vendorid = 0001
      productid = 0000
      desc = "RUCELF UPI-1000-12-EL"

Тестируем наше описание ИБП в ups.conf:

# upsdrvctl -u upsdrv start
Network UPS Tools - UPS driver controller 2.7.4
Network UPS Tools - Megatec/Q1 protocol USB driver 0.12 (2.7.4)
Supported UPS detected with megatec protocol
Vendor information read in 1 tries
No values provided for battery high/low voltages in ups.conf
Using 'guestimation' (low: 0.000000, high: 0.000000)!
Battery runtime will not be calculated (runtimecal not set)

останавливаем демон upsdrv.

upsdrvctl -u upsdrv stop

Заметим, что upsdrv (драйвер ups) начиная с дистрибутивов восьмой версии ALT

запускается сервисом nut-server автоматически, настраивать его не нужно.

до 7-й версии ALT Linuх нужно было запустить драйвер ups (sysvinit): service upsdrv start (УСТАРЕЛО).

upsd.conf

вписываем

LISTEN 127.0.0.1 3493
LISTEN ::1 3493

По умолчанию разрешено обращаться только с localhost.

upsmon.conf

Создаем секретного пользователя для мониторинга: useradd -r -d /dev/null -s /sbin/nologin -p <ups-monitor-secret-password> ups-monitor-secret-user

Добавляем строку в upsmon.conf:

MONITOR  eaton@localhost 1 ups-monitor-secret-user <ups-monitor-secret-password> master

или

MONITOR  ruself@localhost 1 ups-monitor-secret-user <ups-monitor-secret-password> master

Для отладки, на первое время, можно поменять в строке 1 на 0:

MONITOR  ruself@localhost 0 ups-monitor-secret-user <ups-monitor-secret-password> master

чтобы только мониторить, не пытаться выключить машину.

nut.conf

ставим

MODE=standalone

Запуск

(systemd, начиная с дистрибутивов восьмой версии ALT):

systemctl start nut-server
systemctl enable nut-server

Запустить монитор (systemd, начиная с дистрибутивов ALT 8.0):

systemctl start nut-monitor
systemctl enable nut-monitor


Запуск до до 8-й версии ALT Linux

УСТАРЕЛО!!!

(sysvinit, до 8-й версии ALT Linux):

# УСТАРЕЛО!!!
service upsdrv start 
service upsd start

Запустить монитор (sysvinit, до 8-й версии ALT Linux)::

# УСТАРЕЛО!!!
service upsmon start


дополнительно

Необходимо удостовериться что настроен автоматический запуск сервисов (chkconfig, для 7-й версии и systemctl enable <сервис> начиная с 8-й).

Можно сделать какие либо дополнительные настройки, но из коробки в общем просто работает.

получение информации

upsc eaton@127.0.0.1

или

upsc rucelf@127.0.0.1