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

Материал из ALT Linux Wiki
 
(не показано 10 промежуточных версий этого же участника)
Строка 55: Строка 55:
  $ 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 по образцу
Строка 93: Строка 93:
  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,
Проверяем, не остались ли процессы с upsdrv,
  ps -fu upsdrv
  ps -fu upsdrv
Строка 109: Строка 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
чтобы только мониторить, не пытаться выключить машину.
чтобы только мониторить, не пытаться выключить машину.


Строка 132: Строка 182:
  systemctl start nut-server
  systemctl start nut-server
  systemctl enable nut-server
  systemctl enable nut-server
Запустить монитор
systemctl start nut-monitor
systemctl enable nut-monitor


смотрим статус:
смотрим статус:
<nowiki>
● nut-server.service - Network UPS Tools - power devices information server
● nut-server.service - Network UPS Tools - power devices information server
   Loaded: loaded (/lib/systemd/system/nut-server.service; enabled; vendor pre>
   Loaded: loaded (/lib/systemd/system/nut-server.service; disabled; vendor pre>
   Active: active (running) since Wed 2019-08-21 21:56:06 EEST; 1s ago
   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
авг 21 21:56:07 forest upsd[18795]: Connected to UPS [rucelf]: blazer_usb-rucelf
</nowiki>
Если в статусе вместо Connected to UPS стоит
Если в статусе вместо Connected to UPS стоит
'''Can't connect to UPS''', то смотрим, не висят ли процессы от пользователя upsmon
'''Can't connect to UPS''', то смотрим, не висят ли процессы от пользователя upsmon
Строка 150: Строка 194:
Находим и убиваем.
Находим и убиваем.


== Запуск до до 8-й версии ALT Linux ==
смотрим характеристики
<b>УСТАРЕЛО!!!</b>
upsc rucelf@127.0.0.1
 
Запустить монитор
systemctl start nut-monitor
systemctl enable nut-monitor
 


(sysvinit, до 8-й версии ALT Linux):
==получение информации==
# УСТАРЕЛО!!!
service upsdrv start
service upsd start


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


=дополнительно=
=дополнительно=
Строка 167: Строка 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)


[[Категория:ИБП]]
[[Категория:ИБП]]

Текущая версия от 21:26, 21 августа 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, вдумчиво настраиваем.

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