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

Материал из ALT Linux Wiki
Нет описания правки
 
(не показано 16 промежуточных версий этого же участника)
Строка 49: Строка 49:
  Bus 001 Device 016: ID 0001:0000 Fry's Electronics USB OPTICAL MOUSE
  Bus 001 Device 016: ID 0001:0000 Fry's Electronics USB OPTICAL MOUSE
  ...
  ...
Да, USB OPTICAL MOUSE -- id 0001:0000 был в кривой прошивке Krauler UP-M500VA,
с которым данное устройство ''СОВМЕСТИМО'' (Путем передирания прошивки?) :^( .
смотрим, чтобы у устройства была группа upsmon:
смотрим, чтобы у устройства была группа upsmon:
  $ l /dev/bus/usb/001/  
  $ l /dev/bus/usb/001/  
  итого 0
  итого 0
  crw-rw-rw- 1 root upsmon 189, 15 авг 21 21:00 016
  crw-rw-r-- 1 root upsmon 189, 15 авг 21 21:00 016
  ...
  ...
если нет, то добавляем свои udev rules по образцу
если нет, то добавляем свои udev rules по образцу
Строка 87: Строка 90:
  Vendor information read in 1 tries
  Vendor information read in 1 tries
  No values provided for battery high/low voltages in ups.conf
  No values provided for battery high/low voltages in ups.conf
  Using 'guestimation' (low: 0.000000, high: 0.000000)!
  Using 'guestimation' (low: 0.000000, high: 0.000000)!
  Battery runtime will not be calculated (runtimecal not set)
  Battery runtime will not be calculated (runtimecal not set)
останавливаем демон upsdrv.
останавливаем демон upsdrv.
  upsdrvctl -u upsdrv stop
  # 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
Заметим, что upsdrv (драйвер ups) начиная с дистрибутивов восьмой версии ALT
запускается сервисом nut-server автоматически, настраивать его не нужно.
запускается сервисом nut-server автоматически, настраивать его не нужно.
до 7-й версии ALT Linuх нужно было запустить драйвер ups (sysvinit):
До 7-й версии ALT Linuх нужно было запустить драйвер ups (sysvinit):
{{cmd|service upsdrv start}} (УСТАРЕЛО).
{{cmd|service upsdrv start}} (УСТАРЕЛО).


Строка 104: Строка 145:
  LISTEN ::1 3493
  LISTEN ::1 3493
По умолчанию разрешено обращаться только с localhost.
По умолчанию разрешено обращаться только с localhost.
==upsd.users==
Создаем секретного пользователя для мониторинга:
[upsmon]
        password = 123456789...
        upsmon master
и, опционально, пользователя для управления ups (вкл. выкл. пищалку и т.д.)
[admin]
      password = 987654321...
      actions = SET
      instcmds = ALL


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


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


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


Для отладки, на первое время, можно поменять в строке 1 на 0:
Для отладки, на первое время, можно поменять в строке 1 на 0:
  MONITOR  ruself@localhost 0 ups-monitor-secret-user <ups-monitor-secret-password> master
  MONITOR  ruself@localhost 0 <ups-monitor-secret-user> <ups-monitor-secret-password> master
MINSUPPLIES 0
чтобы только мониторить, не пытаться выключить машину.
чтобы только мониторить, не пытаться выключить машину.


Строка 123: Строка 178:
  MODE=standalone
  MODE=standalone


== Запуск ==
== Запуск (начиная с дистрибутивов ALT 8.0) ==


(systemd, начиная с дистрибутивов восьмой версии ALT):
  systemctl start nut-server
  systemctl start nut-server
  systemctl enable nut-server
  systemctl enable nut-server


<b>Запустить монитор (systemd, начиная с дистрибутивов ALT 8.0):</b>
смотрим статус:
● 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 start nut-monitor
  systemctl enable nut-monitor
  systemctl enable nut-monitor




== Запуск до до 8-й версии ALT Linux ==
==получение информации==
<b>УСТАРЕЛО!!!</b>


(sysvinit, до 8-й версии ALT Linux):
  upsc eaton@127.0.0.1
# УСТАРЕЛО!!!
или
service upsdrv start
  upsc rucelf@127.0.0.1
  service upsd start
 
Запустить монитор (sysvinit, до 8-й версии ALT Linux)::
# УСТАРЕЛО!!!
  service upsmon start


==управление ИБП==
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


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


Можно сделать какие либо дополнительные настройки, но из коробки в общем просто работает.  
Можно сделать какие либо дополнительные настройки.
 
Для eaton из коробки в общем просто работает.
==получение информации==
Для rucelf читаем man драйвера, выхлоп upsc rucelf@127.0.0.1,
 
вдумчиво настраиваем.
upsc eaton@127.0.0.1
или
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, вдумчиво настраиваем.

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