среда, 25 января 2012 г.

Установка APCUPSD на Debian 6 Squeeze

English: Logo of American Power Conversion
English: Logo of American Power Conversion (Photo credit: Wikipedia)










Все мы рано или поздно задумываемся о парашюте для сервера.
Я, как и многие предпочитаю использовать для этой цели оборудование фирмы APC поскольку у них достаточно качественное железо, и имеется admin frendly демон под названием apcupsd для управления бесперебойником.

Если наши вкусы в этом вопросе совпадают то подключаем сервер через UPS, и соединяем USB-Data кабелем.
Теперь можем заглянуть в /var/log/dmesg там иы должны увидеть что то подобное.
cat /var/log/dmesg | grep -i 'American Power Conversion'
[    1.570614] usb 6-2: Manufacturer: American Power Conversion
[    2.174944] generic-usb 0003:051D:0002.0001: hiddev0,hidraw0: USB HID v1.10 Device \
 [American Power Conversion Back-UPS ES 525 FW:851.t3.I USB FW:t3] on usb-0000:00:1d.1-2/input0


Если устройство появилось значит можно приступать к установке.

#Установим apcupsd и кое что необходимое для настройк
apt-get install apcupsd apcupsd-doc gawk sed vim gzip
#Подготовим конфигурационный файл для работы через usb-data-cabel
cp /etc/apcupsd/apcupsd.conf /etc/apcupsd/apcupsd.conf.origin
gunzip /usr/share/doc/apcupsd/examples/usb_hid_usages.gz
cp /usr/share/doc/apcupsd/examples/usb.conf /etc/apcupsd/apcupsd.conf
sed -i -e 's/^ISCONFIGURED.*$/ISCONFIGURED=yes/g' /etc/default/apcupsd
Сделаем базовую настройку.
Укажем NISPORT 3551 это порт по умолчанию к которому подключается apcaccess, и выключим опцию NETACCESS поскольку она уже не поддерживается.

sed -i -e 's/^NISPORT.*$/NISPORT 3551/g' /etc/apcupsd/apcupsd.conf
sed -i -e 's/^NETACCESS.*$/#NETACCESS/g' /etc/apcupsd/apcupsd.conf
Убедим систему, что мы себе доверяем.
cp /etc/hosts.allow /etc/hosts.allow.orig
echo "apcupsd: 127.0.0.0/255.0.0.0" >> /etc/hosts.allow
Присвоим нашему бесперебойнику правильное имя, перезапустим apcupsd и убедимся что имя было присвоено правильно.
UPSNAME=`cat /var/log/dmesg | awk -F'American Power Conversion ' '{ printf $2 }' | awk '{ print $1"_"$2"_"$3 }'`
sed -i -e "s/^UPSNAME.*$/UPSNAME $UPSNAME/g" /etc/apcupsd/apcupsd.conf
/etc/init.d/apcupsd restart
Stopping UPS power management: apcupsd.
Starting UPS power management: apcupsd.
apcaccess status | grep UPSNAME
UPSNAME  : Back-UPS_ES_525
Проверить статус бесперебойника можно командой.
apcaccess status
Пример:

Далее можно приступать к тонкой настройке, путём редактирования файла /etc/apcupsd/apcupsd.conf благо он снабжен обильным количеством комментариев.

Меня же лично интересует только пункт MINUTES где я поставил значение 30. Это значение описывает за сколько минут до окончания батарейки будет начато выключение сервера.

Кстати время кончины батарейки можно посмотреть так:
apcaccess status | grep TIMELEFT
TIMELEFT :  40.8 Minutes
Руководствовался я следующим.
Если за 10 минут свет не дали, то и не дадут в ближайшее время а лишние пол часа можно послушать музыку с ноутбука подключившись ноутбуком к остаткам батареи. Ж:-)) 

Если же у вас тяжелый сервер с кучей виртуалок, то советую посмотреть за какое время он выключается, и дать ему запас +10 минут.

Enhanced by Zemanta