Подключение APC SMART UPS в FreeBSD и Веб-мониторинг

Apcupsd - это демон (служба) для управления большинством моделей ИБП фирмы
APC на машинах под Unix и Windows. При исчезновении питания  apcupsd
оповещает пользователя об этом, а так же о том, что может произойти перезгрузка.
Если питание не восстанавливается, система выключается при достижении некоего
таймаута.


Установка под FreeBSD проводится стандартно из портов
# cd /usr/ports/sysutils/apcupsd


apcupsd

# make
# make install

Разрешаем запуск apcupsd:
# echo 'apcupsd_enable="YES"' >> /etc/rc.conf
Cмотрим как называется com порт, на нашей машинке, я буду подключать к СОМ1
#ls /dev/

ага вот и он cuad0

Если сильно не заморачиваться то в общем случае настройка на локальной машине выглядят следующим образом
 #/usr/local/etc/apcupsd/apcupsd.conf

 

#Название ИБП. Используется в логах и прочей служебной информации
UPSNAME BU600
#Тип кабеля для подключения ИБП к компьютеру
UPSCABLE 940-0020B
#Тип подключения. dumb - через последовательный порт
#UPSCABLE usb
#UPSTYPE usb
#DEVICE #usb, для опции DEVICE поле оставить пустым
UPSTYPE dumb
DEVICE /dev/cuad0
# Путь к файлу блокировки powerfail
LOCKFILE /var/spool/lock
# Путь к директории со скриптами
SCRIPTDIR /usr/local/etc/apcupsd
# Путь к файлу powerfail
PWRFAILDIR /var/run
# Путь к файлу nologin. Если он есть, apcupsd запрещает вход пользователя
NOLOGINDIR /var/run
# Время задержки до перехода на питание от батарей
ONBATTERYDELAY 6
# Уровень заряда, при котором компьютер начнет выключаться
BATTERYLEVEL 5
# Просле скольки минут начинать выключение
MINUTES 3
# Таймаут для перехода на батарейное питание
TIMEOUT 0
# После скольки минут предупредить пользователя о завершении работы
ANNOY 300
# Время до выключения после предупреждения пользователя
ANNOYDELAY 60
# Время, при котором пользователю нельзя входить в систему при выключении
NOLOGON disable
# Если KILLDELAY не 0, то apcupsd будет пытаться запуститься после силгнала
# о завершении работы
KILLDELAY 0
# Включает/отключает сервер
NETSERVER off
# Класс ИБП (если используется карта APC ShareUPS)
UPSCLASS standalone
# Режим ИБП (если используется карта APC ShareUPS, включается)
UPSMODE disable
# Интервал между попытками запими лога
STATTIME 1
# Файл лога
STATFILE /var/log/apcupsd.status
# Включает запись во лог файл
LOGSTATS on
# Промежуток времени между записью строк данных в логе
DATATIME 0

#/usr/local/etc/rc.d/apcupsd start

проверяем логи:
#cat /var/log/messages
видим, что всё в поорядке

проверяем еще так, запуская утилиту, которая проверит и покажет все доступные характеристики вашего
#apctest
#apcaccess
apcaccess

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Теперь о графиках, думаю что у вас уже установлен, APACHE и PHP
и не буду повторятся как устанавливать munin

#ln -a /usr/local/share/munin/plugins/apc_nis apc_nis
#/usr/local/etc/rc.d/munin-node restart
И это все. После чего, через время, у вас появятся такие красивые графики:
apc_nis

 

 

 


 
 
 
 
 
 
 
 
 
 
 
 
 
Вот еще, по умолчанию apcupsd выполняет команду shutdown -h now и происходит halt системы. Минус такой ситуации в том, что если питание появиться до того как UPS разрядиться, то сервер так и будет висеть в этом сосотоянии пока его в ручную не включишь. В /usr/local/etc/apcupsd правится файл apccontrol. Поведение описано в doshutdown). Меняем
 
${SHUTDOWN} -h now "apcupsd initiated shutdown"
на
${SHUTDOWN} -p now "apcupsd initiated shutdown"
 
Еше можно сделать уведомление через электронную почту, содержание файла 
/usr/local/etc/apcupsd/offbattery
и
/usr/local/etc/apcupsd/onbattery
#!/bin/sh
#
# This shell script if placed in /etc/apcupsd
# will be called by /etc/apcupsd/apccontrol when the
# UPS goes back on to the mains after a power failure.
# We send an email message to root to notify him.
#
SYSADMIN=root
SMS=admin@domain.ru
APCUPSD_MAIL="/usr/bin/mail"

HOSTNAME=`my_hostname`
MSG="$HOSTNAME Power On"
#
(
echo "Subject: $MSG"
echo " "
echo "$MSG"
echo " "
/usr/sbin/apcaccess status
) | $APCUPSD_MAIL -s "$MSG" $SYSADMIN

MSG="$HOSTNAME Power On"
#
(
echo "ALERT"
echo " "
) | $APCUPSD_MAIL -s "$MSG" $SMS

exit 0

 

 

Коментувати

Простий текст

  • Не дозволено жодних HTML теґів.
  • Рядки й абзаци переносяться автоматично.
  • Адреси вебсторінок та адреси електронної пошти автоматично перетворюються у посилання.