NUT: различия между версиями

Материал из ALT Linux Wiki
 
(не показано 17 промежуточных версий этого же участника)
Строка 1: Строка 1:
Краткое описание. Если кто возьмётся дополнить чем либо, будет очень хорошо.  
Краткое описание. Если кто возьмётся дополнить чем либо, будет очень хорошо.  


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


=Конфигурация=
=Конфигурация=
Строка 11: Строка 12:


Конфигурационные файлы расположены в /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==
Строка 16: Строка 70:
Вписать в ups.conf описание ИБП:
Вписать в ups.conf описание ИБП:


<pre>
[eaton]
[eaton]
     port = auto
     port = auto
     driver = usbhid-ups
     driver = usbhid-ups
     desc = "Eaton Ellipse 800"
     desc = "Eaton Ellipse 800"
</pre>
или
[rucelf]
      driver = blazer_usb
      langid_fix = 0x409
      port = auto
      vendorid = 0001
      productid = 0000
      desc = "RUCELF UPI-1000-12-EL"


Запустить драйвер ups (sysvinit, до 7-й версии ALT Linux):
Тестируем наше описание ИБП в 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


<pre>
Видим ругань "No values provided for battery" и 'guestimation' (low: 0.000000, high: 0.000000)!
service upsdrv start
добавляем
</pre>
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


<b>Запустить драйвер ups не получится (и не нужно) без настроенного upsd на systemd (по умолчанию начиная с дистрибутивов восьмой версии ALT).
# upsdrvctl -u upsdrv start
systemctl start nut-server запускает сразу и драйвер и upsd
Network UPS Tools - UPS driver controller 2.7.4
</b>
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):
{{cmd|service upsdrv start}} (УСТАРЕЛО).


==upsd.conf==
==upsd.conf==


По умолчанию разрешено обращаться только с localhost. Если нужно получать информацию по сети то добавляем разрешения:
вписываем
LISTEN 127.0.0.1 3493
LISTEN ::1 3493
По умолчанию разрешено обращаться только с localhost.


<pre>
==upsd.users==
ACL all 0.0.0.0/0
ACL localhost 127.0.0.1/32
ACL lan 192.168.10.0/24
ACCEPT localhost
ACCEPT lan
REJECT all
</pre>


Запустить upsd (sysvinit, до 8-й версии ALT Linux):
Создаем секретного пользователя для мониторинга:


<pre>
[upsmon]
service upsd start
        password = 123456789...
</pre>
        upsmon master
и, опционально, пользователя для управления ups (вкл. выкл. пищалку и т.д.)
[admin]
      password = 987654321...
      actions = SET
      instcmds = ALL


<b>Запустить upsd (systemd, начиная с дистрибутивов восьмой версии ALT):</b>
<pre>
systemctl start nut-server
systemctl enable nut-server
<pre>


==upsmon.conf==
==upsmon.conf==


Добавить строку:


<pre>
Добавляем строку в upsmon.conf:
MONITOR  eaton@localhost 1 monitor eaton master
MONITOR  eaton@localhost 1 <ups-monitor-secret-user> <ups-monitor-secret-password> master
</pre>
или
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


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


<pre>
systemctl start nut-server
service upsmon start
systemctl enable nut-server
</pre>


<b>Запустить монитор (systemd, начиная с дистрибутивов ALT 8.0):</b>
смотрим статус:
<pre>
● nut-server.service - Network UPS Tools - power devices information server
systemctl start nut-monitor
  Loaded: loaded (/lib/systemd/system/nut-server.service; enabled; vendor pre>
systemctl enable nut-monitor
  Active: active (running) since Wed 2019-08-21 21:56:06 EEST; 1s ago
</pre>
...
авг 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


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


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


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


<pre>
upsc eaton@127.0.0.1
upsc eaton@127.0.0.1
или
</pre>
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, вдумчиво настраиваем.

полезные источники