LINUX.ORG.RU
ФорумAdmin

ИБП завершение работы, посоветуйте

 


0

3

Задача: Есть не обслуживаемый сервер, запитанный через smarp ups ippon. Необходимо чтобы сервак завершал работу при остатке заряда батарей n%, либо через n минут при пропадании питания на входе ИБП. Необходим инструмент безо всякой там GUI морды для решения данной задачи. Иксами да какими нибудь гномами там не должно пахнуть. Присмотрелся к Network UPS Tools. Если кто щупал руками, отзывы в студию. Либо другую тулзу. Очень приветствуется наличие веб морды.

То же самое интересует для FreeBSD.

iZEN ★★★★★
()

NUT решает. Иппоны, конечно, ихню мать, но что-то там точно поддерживалось, более детально не подскажу, ибо у меня не иппон.

Вебморда… У него есть что-то-там-cgi, но я не тыкал.

Умеет оно всё, что надо, а с нормальным ИБП даже больше.

Про FreeBSD не подскажу, даже не копал в эту сторону на предмет работы UPS в.

r3lgar ★★★★★
()

NUT это стандарт. Настроил и забыл (только аккумы надо менять). Вебморды в поставке вроде бы нет, есть консоль, хотя что там смотреть?

Понять NUT поначалу сложно, особенно если сразу читать howto, а не вводную часть официальной документации.

Вкратце:

NUT состоит из трёх программ

1. Программа, которая смотрит на бесперебойник. Называется драйвер. В ней надо настроить модель ИБП, иногда вольтаж и т.п.

2. Программа, которая собирает данные с драйверов и торчит в сеть - upsd. В ней надо завести юзера для управления бесперебойником.

3. Программа, которая опрашивает upsd, рассылает уведомления юзерам и принимает решение о выключении компьютера - upsmon. Ей надо объяснить в какие upsd смотреть, дать пароли от них.

legolegs ★★★★★
()
Последнее исправление: legolegs (всего исправлений: 1)
Ответ на: комментарий от legolegs

Всё настроил да не всё. После того как питание переходит на батарею, задал в настройках через 5 минут вырубать сервер. Всё отлично отрабатывает, но после того как сервак вырубился, хочу чтобы ИБП отключился от сети через n сек. Где настраивается?

Humaxoid
() автор топика
Ответ на: комментарий от Humaxoid

В /etc/ups/ups.conf впиши параметр offdelay=60. NUT перед выключением даст бесперебойнику команду выключить питание через столько секунд.

legolegs ★★★★★
()
Ответ на: комментарий от iZEN

Зачем? У меня UPS отключенный стоит, без стабилизатора ему не хватает заряжаться.

r3lgar ★★★★★
()
Ответ на: комментарий от ArtSh

Если ИБП не поддерживает соответствующую команду, то ни где.

Именно этого и боюсь. Еще где бы узнать по моей модели? IPPON «Smart Power Pro 1000». Не думаю что смарт так поступает.

В /etc/ups/ups.conf впиши параметр offdelay=60. NUT перед выключением даст бесперебойнику команду выключить питание через столько секунд.

Прописано, реакция нулевая. На всякий случай конфиги прикладываю.

hosts.conf

MONITOR ippon@localhost "Local UPS"

ups.conf

# Название устройства может быть любым, именно его и используем в других конфигах.
[ippon]
driver = blazer_usb
port = /dev/usb/hiddev1
# port = auto
# Максимальный предел напряжения батареи
default.battery.voltage.high = 26.00
# Минимальный предел напряжение батареи
default.battery.voltage.low = 20.80
# Через сколько сек. после получения команды shutdown.return ИБП снимет питание с нагрузки
offdelay = 35
# Время в минутах, по истечении которого ИБП посмотрит есть ли у него питание от сети, и если это питание есть - вернёт питание на нагрузку
ondelay = 1
desc = "IPPON Smart Power Pro"

upsd.users

[nut]
# Пароль
password = ххххххх
# подключившийся монитор должен работать в режиме мастера
upsmon master
# Разрешаем монитору менять параметры бесперебойника "на лету"
actions = SET
# Разрешаем включать Forced Shotdown
actions = FSD
# Разрешаем пользователю отдавать бесперебойнику любые поддерживаемые драйвером команды.
instcmds = ALL
nut.conf
MODE=standalone

upsd.conf

LISTEN 127.0.0.1 3493

upsmon.conf

MONITOR ippon@localhost 1 root 9uthfim8 master
MINSUPPLIES 1
NOTIFYCMD /usr/sbin/upssched
SHUTDOWNCMD "/sbin/shutdown -Ph +0"
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/nut/killpower
NOTIFYMSG ONLINE     "UPS %s запитан от сети"
NOTIFYMSG ONBATT     "UPS %s перевел питание на батарею"
NOTIFYMSG LOWBATT    "UPS %s батарея разряжена"
NOTIFYMSG FSD        "UPS %s: принудительное завершение работы"
NOTIFYMSG COMMOK     "Связь с UPS %s установлена"
NOTIFYMSG COMMBAD    "Связь с UPS %s потеряна"
NOTIFYMSG SHUTDOWN   "Автоматический выход и завершение работы"
NOTIFYMSG REPLBATT   "UPS %s аккумулятор нуждается в замене"
NOTIFYMSG NOCOMM     "UPS %s не доступен"
NOTIFYMSG NOPARENT   "родительский процесс upsmon сдох - выключение невозможно"
NOTIFYFLAG ONLINE    SYSLOG+WALL+EXEC
NOTIFYFLAG ONBATT    SYSLOG+WALL+EXEC
NOTIFYFLAG LOWBATT   SYSLOG+WALL+EXEC
NOTIFYFLAG FSD       SYSLOG+WALL+EXEC
NOTIFYFLAG COMMOK    SYSLOG+WALL+EXEC
NOTIFYFLAG COMMBAD   SYSLOG+WALL+EXEC
NOTIFYFLAG SHUTDOWN  SYSLOG+WALL+EXEC
NOTIFYFLAG REPLBATT  SYSLOG+WALL+EXEC
NOTIFYFLAG NOCOMM    SYSLOG+WALL+EXEC
NOTIFYFLAG NOPARENT  SYSLOG+WALL+EXEC
RBWARNTIME 43200
NOCOMMWARNTIME 300
# Задержкав в сек. после получения события до исполнения SHUTDOWN.
FINALDELAY 5

upssched.conf

# Скрипт, который будет запускаться по завершению работы таймера или по EXECUTE
CMDSCRIPT /usr/bin/upssched-cmd
# Именованный канал, через который upssched общается с процессами-таймерами.
PIPEFN /var/run/nut/upssched.pipe
# Блокировочный файл - нужен чтобы не было гонок процессов.
LOCKFN /var/run/nut/upssched.lock
# При пропадании сети переходим на батарею - ждём 360 секунд и посылаем команду onbatt, которая 
вырубит сервер.
AT ONBATT * START-TIMER onbatt 360
# Если вернулось питание - отменить таймер для команды onbatt
AT ONLINE * CANCEL-TIMER onbatt
# Если батарея разряжена то сразу послать onbatt чтобы # вырубить сервер.
AT LOWBATT * EXECUTE onbatt

Humaxoid
() автор топика
Последнее исправление: Humaxoid (всего исправлений: 1)
Ответ на: комментарий от Humaxoid

Smart Power Pro

Их вроде как два вида, с экранчиком и без. У меня Smart Power Pro 2000 без экранчика, драйвер nutdrv_qx и всё работает, включая offdelay и другие команды (кроме термодатчика, которого нет физически). Для более новой версии с экранчиком вроде как нужен другой драйвер и он похуже поддерживается. Что-то могло, впрочем поменяться.

Можно поиграться с упсом напрямую через upsc ippon@localhost, посмотреть, какие параметры считываются, какие команды удаётся отправить. Ещё может быть так, что не всякое значение offdelay принимается бесперебойником, может оно должно быть кратно чему-то или единицы не секунды.

legolegs ★★★★★
()
Последнее исправление: legolegs (всего исправлений: 2)
Ответ на: комментарий от legolegs

Их вроде как два вида, с экранчиком и без. У меня Smart Power Pro 2000 без экранчика, драйвер nutdrv_qx и всё работает, включая offdelay и другие команды (кроме термодатчика, которого нет физически). Для более новой версии с экранчиком вроде как нужен другой драйвер и он похуже поддерживается. Что-то могло, впрочем поменяться.

Можно поиграться с упсом напрямую через upsc ippon@localhost, посмотреть, какие параметры считываются, какие команды удаётся отправить. Ещё может быть так, что не всякое значение offdelay принимается бесперебойником, может оно должно быть кратно чему-то или единицы не секунды.

Без экрана! В описалове на хомпаге написано что драйвер для этого типа упса «blazer_usb». Удаленный доступ есть, можно поиграть. А вот отключается ли сам УПС, сейчас проверить не могу.

atm@user:~# upsc ippon@localhost
battery.charge: 100
battery.voltage: 27.60
battery.voltage.high: 26.00
battery.voltage.low: 20.80
battery.voltage.nominal: 24.0
device.type: ups
driver.name: blazer_usb
driver.parameter.offdelay: 20
driver.parameter.ondelay: 5
driver.parameter.pollinterval: 2
driver.parameter.port: /dev/usb/hiddev1
driver.parameter.synchronous: no
driver.version: 2.7.4
driver.version.internal: 0.12
input.current.nominal: 4.0
input.frequency: 50.0
input.frequency.nominal: 50
input.voltage: 240.8
input.voltage.fault: 240.9
input.voltage.nominal: 230
output.voltage: 243.4
ups.beeper.status: enabled
ups.delay.shutdown: 18
ups.delay.start: 300
ups.load: 8
ups.productid: 5161
ups.status: OL
ups.temperature: 25.0
ups.type: offline / line interactive
ups.vendorid: 0665
При запуске стартового скрипта выдает
/etc/rc.d/rc.ups 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 unavailable
Battery runtime will not be calculated (runtimecal not set)
Network UPS Tools upsd 2.7.4
fopen /var/run/nut/upsd.pid: No such file or directory
listening on 127.0.0.1 port 3493
Connected to UPS [ippon]: blazer_usb-ippon
Network UPS Tools upsmon 2.7.4
kill: No such process
UPS: ippon@localhost (master) (power value 1)
Using power down flag file /etc/killpower
Не в этом ли проблема? kill: No such process В upsmon.conf сказано POWERDOWNFLAG /etc/killpower, значит процесс upsmon должен создать флаг /etc/killpower. Но его там нет!

Humaxoid
() автор топика
Ответ на: комментарий от Humaxoid
upsmon -K
Network UPS Tools upsmon 2.7.4
kill: No such process
UPS: ippon@localhost (master) (power value 1)
Using power down flag file /etc/killpower
Power down flag is not set
Humaxoid
() автор топика
Ответ на: комментарий от Humaxoid

Вывод upsc очень похож на мой. Но у меня в федоре systemd, с запуском в твоём дистре я помочь не смогу.

legolegs ★★★★★
()
Ответ на: комментарий от legolegs

У него написано так :

Всё настроил да не всё. После того как питание переходит на
батарею, задал в настройках через 5 минут вырубать сервер. Всё
отлично отрабатывает, но после того как сервак вырубился, хочу
чтобы ИБП отключился от сети через n сек. Где настраивается?

У меня самого этих упс полно разных и все под NUT но я никогда ничего там по питанию не настраивал, драйвер пропишешь и монитор и все.

mx__ ★★★★★
()
Ответ на: комментарий от legolegs

И что, ИБП после выключения сервера ещё час без нагрузки впустую высаживает батарею?

Так и есть. Думал пользователю nut не хватает прав для создания флага /etc/killpower. Указал вместо этого создавать флаг в директории /tmp где для пользователя nut достаточно прав. Фокус не возымел эффекта. Уже мозг сломал.

Humaxoid
() автор топика
Последнее исправление: Humaxoid (всего исправлений: 3)
Ответ на: комментарий от legolegs

И что, ИБП после выключения сервера ещё час без нагрузки впустую высаживает батарею?

И что ? Зато после вкл. напряжения все поднимается само. А если УПС себя отрубит кто потом его будет включать ? Ну нафиг такую фичу.

И кстати по уомлчанию НУТ настроен так что не сразу вырбает сервак а только когда УПС уже на минимуме, так что считай разряжается он и так и при активной нагрузке.

mx__ ★★★★★
()
Последнее исправление: mx__ (всего исправлений: 1)
Ответ на: комментарий от mx__

А если УПС себя отрубит кто потом его будет включать ? Ну нафиг такую фичу.

Об этом и речь. Допустим отрубили свет. После этого NUT корректно завершает работу сервера, далее UPS должен отрубиться, т.е снять напряжение с нагрузки, а не ждать когда батарея разрядится. При появлении сети, UPS подаст напругу к серваку, тот сам включится. Так должно быть!

Humaxoid
() автор топика
Ответ на: комментарий от Humaxoid

Я думаю такое состояние в УПСАх ( нормальных ) должно быть по умолчанию.

P.S. При вырубании нагрузки, которое итак происходит на самом минимуме батареи, он без нагрузки поди может год простоять ... потребления считай нет.

mx__ ★★★★★
()
Ответ на: комментарий от Humaxoid

напряжение с нагрузки, а не ждать когда батарея разрядится. При появлении сети, UPS подаст напругу к серваку, тот сам включится. Так должно быть!

И так и есть, даже с ippon. Даже ситуация, когда сеть вернулась во время шатдауна корректно обрабатывается.

legolegs ★★★★★
()
Ответ на: комментарий от Humaxoid

И что, ИБП после выключения сервера ещё час без нагрузки впустую высаживает батарею?

Так и есть. Думал пользователю nut не хватает прав для создания флага /etc/killpower.

Этот файл к выключению БЕСПЕРЕБОЙНИКА не имеет отношения.

legolegs ★★★★★
()
Ответ на: комментарий от mx__

P.S. При вырубании нагрузки, которое итак происходит на самом минимуме батареи, он без нагрузки поди может год простоять ... потребления считай нет.

Ничего подобного, холостой ход инвертора жрёт дохрена энергии.

legolegs ★★★★★
()
Ответ на: комментарий от legolegs

Я тут подумал, как бы УПСу послать принудительное отключение нагрузки командой?

upscmd -u uname -p my_password ippon@localhost load.off
Но эта команда должна отработать с отсрочкой n секунд. Что бы сервер до этого времени успел отрубится.

Humaxoid
() автор топика
Ответ на: комментарий от legolegs

Потдерживается задержка. НИфига не могу понять какой формат в секундах? Забиваю дополняю команду задержкой в сек. вылетает с ошибкой.

usage: upscmd [-h]
       upscmd [-l <ups>]
       upscmd [-u <username>] [-p <password>] <ups> <command> [<value>]

Administration program to initiate instant commands on UPS hardware.

  -h            display this help text
  -l <ups>      show available commands on UPS <ups>
  -u <username> set username for command authentication
  -p <password> set password for command authentication

  <ups>         UPS identifier - <upsname>[@<hostname>[:<port>]]
  <command>     Valid instant command - test.panel.start, etc.
  [<value>]     Additional data for command - number of seconds, etc.

Humaxoid
() автор топика
Ответ на: комментарий от Humaxoid

Во-первых, не надо путать upsc и upscmd. Во вторых вот так команда проходит:

upscmd -u юзернейм -p пароль ippon-spp-2000 test.battery.start.quick
юзернейм (в крадратных скобках) и пароль из /etc/ups/upsd.users

legolegs ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.