====== Мониторинг работы ИБП в Ubuntu ======
Мониторинг работы ИБП в Убунту будем осуществлять через nut. Вообще, при всей простоте настройки, зачастую программа не работает корректно, ссылаясь то на драйвер, то на отсутствие связи с ИБП и прочее. В-общем, если у вас все заработает с первого разу, то считайте, вы счастливчик.
**Дана исходная среда**:
* Ubuntu 10.10 32bit
* ИБП APC Back-UPS 500, подключается по кабелю USB к Убунту
**Использованные ссылки**
* http://blog.shadypixel.com/monitoring-a-ups-with-nut-on-debian-or-ubuntu-linux/
* http://forum.ubuntu.ru/index.php?topic=2978.msg192622#msg192622
* https://help.ubuntu.com/community/apcupsd
Итак, приступаем.
===== Установка и настройка =====
- Устанавливаем программу nut: $ sudo apt-get install nut
- Редактируем файл /etc/nut/ups.conf:# /etc/nut/ups.conf
[apc]
driver = usbhid-ups
port = auto
desc = "APC01"
То, что задано в квадратных скобках - это имя для демонов upsd и upsmon, т.е. может быть по вашему усмотрению. Что касается названия драйвера в директиве driver, то лучше посмотреть страничку http://www.networkupstools.org/compat/stable.html и выбрать подходящее название драйвера для вашей модели ИБП. Если же ваш ИБП соединяется с машиной по COM-порту, то нужно указать правильное имя порта, например /dev/ttyS0. В случае COM-порта необходимо также задать право на обращение к порту. См. текст по ссылке выше.
- Далее, конфигурируем upsd:# /etc/nut/upsd.conf
LISTEN 0.0.0.0
# /etc/nut/upsd.users
[local_mon]
password = PASSWORD_HERE
allowfrom = localhost
upsmon master
Здесь мы задали имя пользователя в квадратных скобках (local_mon), пароль и с какой машины ему разрешен доступ к демону upsd.
- Конфигурируем upsmon: # /etc/nut/upsmon.conf
MONITOR apc@localhost 1 local_mon PASSWORD_HERE master
POWERDOWNFLAG /etc/killpower
SHUTDOWNCMD "/sbin/shutdown -h now"
Здесь мы прописали в директиве MONITOR идентификатор ИБП apc (мы его задавали в /etc/nut/ups.conf), далее через @ машину, на которой настроен и запущен демон upsd (мы его настроили на предыдущем шаге), далее цифрой 1 мы указали количество потребителей, которое защищает наш ИБП (если задать 0, то при отключении питания демон upsd будет сигнализировать, однако выключать машину не будет, подробнее см. комменты в upsmon.conf); далее идет имя пользователя и пароль, заданные в файле /etc/nut/upsd.users; слово master задает, что данная машина будет отключена последней (в случае, если конфигурация предусматривает ведомые машины). Прописываем также директиву SHUTDOWNCMD в случае, если нам нужно выключить машину в случае сбоя по питанию.
- далее пропишем автостарт демонов: # /etc/default/nut
START_UPSD=yes
START_UPSMON=yes
- пропишем права:sam@sam-desktop:~# chown root:nut /etc/nut/upsd.conf
# chmod 640 /etc/nut/upsd.conf
# chown root:nut /etc/nut/upsd.users
# chmod 640 /etc/nut/upsd.users
# chown root:nut /etc/nut/upsmon.conf
# chmod 640 /etc/nut/upsmon.conf
- Далее пытаюсь запустить и получаю ошибки:$ sudo /etc/init.d/nut start
* Starting Network UPS Tools [ OK ]
Широковещательное сообщение от nut@sam-desktop
(somewhere) at 12:53 ...
Communications with UPS myups@localhost lost
Широковещательное сообщение от nut@sam-desktop
(somewhere) at 12:54 ...
UPS myups@localhost is unavailable
Пытаемся еще раз (от имени рута):# /etc/init.d/nut start
* Starting Network UPS Tools [ OK ]
Запустилось без ошибок.
- Смотрим логи ошибок в /var/log/daemon.log
- Некоторые команды:
- Смотрим информацию по ИБП:upsc apc
- смотрим ИБП, зарегистрированные на локальном сервере: /usr/local/bin/upsc -L localhost
- Правим файл /etc/nut/upssched.conf: # /etc/ups/upssched.conf
## Дописать скрипт CMSCRIPT!
# Включаем таймер earlyshutdown, который сработает через 120 секунд:
AT ONBATT * START-TIMER earlyshutdown 120
# отключаем таймер по восстановлению напряжения:
AT ONLINE * CANCEL-TIMER earlyshutdown
Проверьте, что система корректно закрывается после пропадания питания. Отсоедините UPS от питающей сети и наблюдайте на консоли сообщения. После успешных тестов в файле /etc/ups/upssched.conf замените строку "AT ONBATT * START-TIMER earlyshutdown 120 на AT ONBATT * START-TIMER earlyshutdown 1500.
На доработку: скрипт CMDSCRIPT в /etc/nut/upssched.conf может быть примерно таким:#!/bin/bash
# /etc/nut/upssched-cmd - Run scheduled commands
case $1 in
apc1-on-batt)
/sbin/shutdown -h now +0
;;
belkin-on-batt)
/sbin/shutdown -h now +0
;;
*)
logger -t upssched-cmd "Unrecognized command: $1"
;;
esac
# EOF
TAG: {{tag>ubuntu nut ups}}
~~DISCUSSION~~