Network UPS Tools (NUT) – программа для контроля ИБП.

{{TOC}}

Несмотря на то, что в интернете много статей по настройке NUT, я решил написать еще одну, т.к. при попытке настроить NUT в CDS я столкнулся с трудностями, не описанными в этих статьях. Это даже не статья, а упрощенное руководство, при помощи которого можно быстро настроить NUT в Calculate. Пишу в первую очередь для себя, чтобы через полгода не забыть что и как.

  1. Подключаем ИБП к компьютеру

Если ИБП подключен к COM порту, то можно посмотреть номера COM портов командой: dmesg|grep ttyS.

У меня подключено 6 ИБП APC к портам: ttyS0, ttyS1, ttyS4, ttyS5, ttyS6, ttyS7. Последние четыре COM порта – это мультикарта, настройка которой будет описана в конце данного руководства.

Если ИБП подключен к USB порту, то можно посмотреть какие устройства подключены к USB командами: lsusb, dmesg|grep USB.

  1. Устанавливаем NUT

echo sys-power/nut cgi usb > /etc/portage/package.use/nut
emerge -bka sys-power/nut
  1. Редактируем конфигурационные файлы NUT

Я не буду расписывать какой файл/параметр за что отвечает. Просто скопируйте в каталог /etc/nut прикрепленные к данному руководству заранее подготовленные конфигурационные файлы, которые я перевел для себя, прочитайте и подправьте их под свою конфигурацию. Когда я уже все перевел, - нашел в интернете готовый перевод http://ru.opensuse.org/NUT. Но там перевод того, что содержалось в конфигурационных файлах, а я при переводе пользовался официальным руководством для NUT версии 2.6. Поэтому в моих конфигурационных файлах есть параметры, которых нет в других статьях и переводах (недавно появились). Так же у меня нет устаревших параметров.

Обратите внимание на строчку “LISTEN 192.168.2.35” в файле upsd.conf. Это ip сервера, если его не задать правильно, то upsd не запустится.

  1. Установка полномочий

В других руководствах написано, что нужно установить полномочия на конфигурационные файлы NUT, но в Gentoo это делается автоматически при установке пакета. Кроме одного файла, при помощи которого выдаются сообщения в консоль об изменении состояния ИБП (переход на батарею и т.д.):

chown .tty /usr/bin/wall
chmod 2755 /usr/bin/wall
  1. Запуск NUT

Запуск драйвера: /etc/init.d/upsdrv start
Запуск сервера: /etc/init.d/upsd start
Запуск монитора: /etc/init.d/upsmon start

  1. Проверка работы

Посмотрим информацию об ИБП: upsc ups1
Информацию по отдельным параметрам можно смотреть так: upsc ups1 ups.status и т.д.
Параметры прошивки ИБП можно смотреть/менять: upsrw ups1
Посмотреть какие команды можно отправить ИБП: upscmd -l ups1

Можно выключить ИБП подав последовательно 2 команды (компьютер должен быть подключен к другому ИБП):

upscmd -u admin -p admin_pass ups1 shutdown.stayoff
upscmd -u admin -p admin_pass ups1 load.off

Включить ИБП:

upscmd -u admin -p admin_pass ups1 load.on

Все это есть в веб-интерфейсе, который настраивается ниже.

  1. Делаем автостарт NUT при загрузке системы

rc-update add upsdrv default
rc-update add upsd default
rc-update add upsmon default

Если нужно чтобы ИБП выключался после выключения сервера, при разряде батареи, нужно:

rc-update add nut.powerfail shutdown

Это нужно! Иначе сервер не стартанет если ИБП не выключится совсем.

  1. Тестирование отключений

Прежде чем оставить сервер без присмотра, нужно проверить его выключение.
Сначала нужно посмотреть, как будет вести себя upsdrvctl без фактического отключения системы. Для этого используется параметр -t:

upsdrvctl -t shutdown

Далее необходимо проверить работает ли принудаительное завершение системы:

upsmon -c fsd

Если все работает правильно, ОС завершит работу, компьютер будет принудительно отключен от электросети (ИБП выключится). В зависимости от производителя, ИБП будет оставаться выключенным от нескольких секунд до нескольких минут, затем включится. У меня ИБП отключается через три минуты (настраивается в ИБП) и включается через пару секунд.

  1. Установка и настройка http-сервера Lighttpd

emerge -bka www-servers/lighttpd

В файле /etc/lighttpd/lighttpd.conf раскомментируйте строки:

"mod_alias",
include "mod_cgi.conf"

В файле /etc/lighttpd/mod_cgi.conf замените строку
“.cgi” => “/usr/bun/perl”
на
“.cgi” => “”

Копируем файлы NUT в директорию http-сервера:

cp /usr/share/nut/html/* /var/www/localhost/htdocs/
mkdir /var/www/localhost/cgi-bin/
mkdir /var/www/localhost/cgi-bin/nut/
cp /usr/share/nut/cgi/* /var/www/localhost/cgi-bin/nut/

Запускаем: /etc/init.d/lighttpd start

Пробуем подключиться удаленно.

Делаем автостарт lighttpd при загрузке:

rc-update add lighttpd default
  1. Мультикарта

Если у вас есть мультикарта COM портов, то для ее работы нужно пересобрать ядро, иначе больше четырех COM портов получить не удастся. У меня, например, два COM порта на материнской плате и четыре на мультикарте.

cl-kernel --menuconfig

В разделе:
[Device Drivers] => [Character drivers] => [Serial drivers]
Изменить параметры:
(по умолчанию 4, нужно 8) Maximum number of 8250/16550 serial port
(по умолчанию 4, нужно 8) Number of 8250/16550 serial port to register at runtime

Выйти из menuconfig, дождаться пересборки ядра и перезагрузиться.

Спасибо! Всё работает.
P.s.
Совет (для тех, у кого UPS на USB, а не на COM): после установки nut нужно перезагрузить машину, иначе старт драйвера “/etc/init.d/upsdrv start” попросту не сработает.

Пожалуйста.
Посмотрите еще список клиентского ПО для NUT:
http://www.networkupstools.org/projects.html

Только вот не могу разобраться, как отключить оповещение монитора о том, что заряд батареи - низкий. На сколько я понял, за это отвечает опция REPLBATT. Но, как её отключить - вот в чём вопрос?

Добавьте такую строку в upsmon.conf:

NOTIFYFLAG REPLBATT IGNORE

Но лучше заменить батареи, зарядить на 100% и откалибровать ИБП.
У меня на работе все ИБП стоят в электрощитовой, а по 3х этажному зданию проложена выделенная сеть гарантированного электропитания. Сервер оповещает удаленных пользователей (каждого от своего ИБП) и мой рабочий комп (все ИБП). Два ИБП иногда выдавали низкий заряд батареи. Выяснилось что к ИБП были подключены лазерные принтеры и в момент печати нагрузка на ИБП сильно возрастала, он производил перерасчет времени работа от батарей и это время оказывалось очень маленьким. На этих ИБП скоро менять батареи.

Сергей Кузьминов писал(а):

Добавьте такую строку в upsmon.conf:
[…]
Но лучше заменить батареи, зарядить на 100% и откалибровать ИБП.
У меня на работе все ИБП стоят в электрощитовой, а по 3х этажному зданию проложена выделенная сеть гарантированного электропитания. Сервер оповещает удаленных пользователей (каждого от своего ИБП) и мой рабочий комп (все ИБП). Два ИБП иногда выдавали низкий заряд батареи. Выяснилось что к ИБП были подключены лазерные принтеры и в момент печати нагрузка на ИБП сильно возрастала, он производил перерасчет времени работа от батарей и это время оказывалось очень маленьким. На этих ИБП скоро менять батареи.

Я поставил данный флаг в конфигурационном файле. Заметил, что сообщения стали значительно реже появляться, но всё равно не прекратились. И продолжают “гадить” в консоль!