NUT: различия между версиями
Sinaps (обсуждение | вклад) |
|||
(не показана 31 промежуточная версия 3 участников) | |||
Строка 1: | Строка 1: | ||
Краткое описание. Если кто возьмётся дополнить чем либо, будет очень хорошо. | Краткое описание. Если кто возьмётся дополнить чем либо, будет очень хорошо. | ||
Настройка nut на | Настройка nut на примерах Eaton Ellipse ECO 800 | ||
и RUCELF UPI-1000-12-EL. | |||
=Конфигурация= | =Конфигурация= | ||
Установка пакетов: | |||
*nut | *nut | ||
*nut-server | *nut-server | ||
Конфигурационные файлы расположены в /etc/nut/ | Конфигурационные файлы расположены в /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 | |||
... | |||
Да, USB OPTICAL MOUSE -- id 0001:0000 был в кривой прошивке Krauler UP-M500VA, | |||
с которым данное устройство ''СОВМЕСТИМО'' (Путем передирания прошивки?) :^( . | |||
смотрим, чтобы у устройства была группа upsmon: | |||
$ l /dev/bus/usb/001/ | |||
итого 0 | |||
crw-rw-r-- 1 root upsmon 189, 15 авг 21 21:00 016 | |||
... | |||
если нет, то добавляем свои udev rules по образцу | |||
/lib/udev/rules.d/98-nut-usbups.rules | |||
=== rs232 === | |||
читаем документацию по подключению. | |||
Устройство может подключаться нестандартным кабелем. | |||
Если комплектный кабель утерян, придется паять - обжимать самостоятельно. | |||
==ups.conf== | ==ups.conf== | ||
Строка 18: | Строка 70: | ||
Вписать в ups.conf описание ИБП: | Вписать в ups.conf описание ИБП: | ||
[eaton] | |||
[eaton] | |||
port = auto | port = auto | ||
driver = usbhid-ups | driver = usbhid-ups | ||
desc = "Eaton Ellipse 800" | 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 | |||
Видим ругань "No values provided for battery" и 'guestimation' (low: 0.000000, high: 0.000000)! | |||
добавляем | |||
default.battery.voltage.nominal = 12 | |||
[rucelf] | |||
driver = blazer_usb | |||
langid_fix = 0x409 | |||
port = auto | |||
vendorid = 0001 | |||
productid = 0000 | |||
desc = "RUCELF UPI-1000-12-EL" | |||
default.battery.voltage.nominal = 12 | |||
# 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: 10.400000, high: 13.000000)! | |||
Battery runtime will not be calculated (runtimecal not set) | |||
# upsdrvctl -u upsdrv stop | |||
явно добавляем вместо 'guestimation' | |||
default.battery.voltage.low = 10.4 | |||
default.battery.voltage.high = 13 | |||
вдруг их может понадобиться подкорректировать. | |||
# 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 | |||
Battery runtime will not be calculated (runtimecal not set) | |||
# upsdrvctl -u upsdrv stop | |||
Проверяем, не остались ли процессы с upsdrv, | |||
ps -fu upsdrv | |||
убиваем, если что. | |||
Заметим, что upsdrv (драйвер ups) начиная с дистрибутивов восьмой версии ALT | |||
service upsdrv start | запускается сервисом nut-server автоматически, настраивать его не нужно. | ||
До 7-й версии ALT Linuх нужно было запустить драйвер ups (sysvinit): | |||
{{cmd|service upsdrv start}} (УСТАРЕЛО). | |||
==upsd.conf== | ==upsd.conf== | ||
По умолчанию разрешено обращаться только с localhost. | вписываем | ||
LISTEN 127.0.0.1 3493 | |||
LISTEN ::1 3493 | |||
По умолчанию разрешено обращаться только с localhost. | |||
==upsd.users== | |||
Создаем секретного пользователя для мониторинга: | |||
[upsmon] | |||
password = 123456789... | |||
upsmon master | |||
и, опционально, пользователя для управления ups (вкл. выкл. пищалку и т.д.) | |||
[admin] | |||
password = 987654321... | |||
actions = SET | |||
instcmds = ALL | |||
==upsmon.conf== | ==upsmon.conf== | ||
< | Добавляем строку в upsmon.conf: | ||
MONITOR | 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 | |||
в примере выше <ups-monitor-secret-user> это upsmon. | |||
Для отладки, на первое время, можно поменять в строке 1 на 0: | |||
MONITOR ruself@localhost 0 <ups-monitor-secret-user> <ups-monitor-secret-password> master | |||
MINSUPPLIES 0 | |||
чтобы только мониторить, не пытаться выключить машину. | |||
==nut.conf== | |||
ставим | |||
MODE=standalone | |||
= | == Запуск (начиная с дистрибутивов ALT 8.0) == | ||
systemctl start nut-server | |||
systemctl enable nut-server | |||
смотрим статус: | |||
● nut-server.service - Network UPS Tools - power devices information server | |||
Loaded: loaded (/lib/systemd/system/nut-server.service; enabled; vendor pre> | |||
Active: active (running) since Wed 2019-08-21 21:56:06 EEST; 1s ago | |||
... | |||
авг 21 21:56:07 forest upsd[18795]: Connected to UPS [rucelf]: blazer_usb-rucelf | |||
Если в статусе вместо Connected to UPS стоит | |||
'''Can't connect to UPS''', то смотрим, не висят ли процессы от пользователя upsmon | |||
с этапа тестирования. | |||
Находим и убиваем. | |||
смотрим характеристики | |||
upsc rucelf@127.0.0.1 | |||
Запустить монитор | |||
systemctl start nut-monitor | |||
systemctl enable nut-monitor | |||
==получение информации== | ==получение информации== | ||
< | upsc eaton@127.0.0.1 | ||
upsc | или | ||
upsc rucelf@127.0.0.1 | |||
==управление ИБП== | |||
upscmd -u <ups admin user> -p <ups admin user password> rucelf@127.0.0.1 test.battery.start | |||
upsrw -u <ups admin user> -p <ups admin user password> rucelf@127.0.0.1 | |||
=дополнительно= | |||
Необходимо удостовериться что настроен автоматический запуск сервисов (chkconfig, для 7-й версии и systemctl enable <сервис> начиная с 8-й). | |||
Можно сделать какие либо дополнительные настройки. | |||
Для eaton из коробки в общем просто работает. | |||
Для rucelf читаем man драйвера, выхлоп upsc rucelf@127.0.0.1, | |||
вдумчиво настраиваем. | |||
==полезные источники== | |||
* https://networkupstools.org | |||
* https://habr.com/ru/post/443736/ | |||
* https://wiki.archlinux.org/index.php/Network_UPS_Tools_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) | |||
[[Категория:ИБП]] | [[Категория:ИБП]] |
Текущая версия от 00:26, 22 августа 2019
Краткое описание. Если кто возьмётся дополнить чем либо, будет очень хорошо.
Настройка 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 ...
Да, USB OPTICAL MOUSE -- id 0001:0000 был в кривой прошивке Krauler UP-M500VA, с которым данное устройство СОВМЕСТИМО (Путем передирания прошивки?) :^( .
смотрим, чтобы у устройства была группа upsmon:
$ l /dev/bus/usb/001/ итого 0 crw-rw-r-- 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
Видим ругань "No values provided for battery" и 'guestimation' (low: 0.000000, high: 0.000000)! добавляем default.battery.voltage.nominal = 12
[rucelf] driver = blazer_usb langid_fix = 0x409 port = auto vendorid = 0001 productid = 0000 desc = "RUCELF UPI-1000-12-EL" default.battery.voltage.nominal = 12
# 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: 10.400000, high: 13.000000)! Battery runtime will not be calculated (runtimecal not set) # upsdrvctl -u upsdrv stop
явно добавляем вместо 'guestimation'
default.battery.voltage.low = 10.4 default.battery.voltage.high = 13
вдруг их может понадобиться подкорректировать.
# 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 Battery runtime will not be calculated (runtimecal not set) # upsdrvctl -u upsdrv stop
Проверяем, не остались ли процессы с upsdrv,
ps -fu upsdrv
убиваем, если что.
Заметим, что 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.
upsd.users
Создаем секретного пользователя для мониторинга:
[upsmon] password = 123456789... upsmon master
и, опционально, пользователя для управления ups (вкл. выкл. пищалку и т.д.)
[admin] password = 987654321... actions = SET instcmds = ALL
upsmon.conf
Добавляем строку в 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
в примере выше <ups-monitor-secret-user> это upsmon.
Для отладки, на первое время, можно поменять в строке 1 на 0:
MONITOR ruself@localhost 0 <ups-monitor-secret-user> <ups-monitor-secret-password> master MINSUPPLIES 0
чтобы только мониторить, не пытаться выключить машину.
nut.conf
ставим
MODE=standalone
Запуск (начиная с дистрибутивов ALT 8.0)
systemctl start nut-server systemctl enable nut-server
смотрим статус:
● nut-server.service - Network UPS Tools - power devices information server Loaded: loaded (/lib/systemd/system/nut-server.service; enabled; vendor pre> Active: active (running) since Wed 2019-08-21 21:56:06 EEST; 1s ago ... авг 21 21:56:07 forest upsd[18795]: Connected to UPS [rucelf]: blazer_usb-rucelf
Если в статусе вместо Connected to UPS стоит Can't connect to UPS, то смотрим, не висят ли процессы от пользователя upsmon с этапа тестирования. Находим и убиваем.
смотрим характеристики
upsc rucelf@127.0.0.1
Запустить монитор
systemctl start nut-monitor systemctl enable nut-monitor
получение информации
upsc eaton@127.0.0.1
или
upsc rucelf@127.0.0.1
управление ИБП
upscmd -u <ups admin user> -p <ups admin user password> rucelf@127.0.0.1 test.battery.start upsrw -u <ups admin user> -p <ups admin user password> rucelf@127.0.0.1
дополнительно
Необходимо удостовериться что настроен автоматический запуск сервисов (chkconfig, для 7-й версии и systemctl enable <сервис> начиная с 8-й).
Можно сделать какие либо дополнительные настройки. Для eaton из коробки в общем просто работает. Для rucelf читаем man драйвера, выхлоп upsc rucelf@127.0.0.1, вдумчиво настраиваем.