Мониторинг APC UPS \ установка и настройка в Linux

ititle

Исходные данные:

  • сервер под управлением Debian GNU\Linux;
  • на сервере работают виртуальные машины (Windows\Linux) под управлением Qemu-KVM;
  • APC Smart-UPS 1000 XL подключено к серверу по USB.

 

Задача:

  • чтобы сервера не падали при малейшем скачке напряжения;
  • автоматическое корректное завершение работы виртуальных машин и сервера при достижении разряда батареи до 30% или 10 минут оставшегося времени автономной работы;
  • возможность предупредить выход из строя ИБП для своевременной замены\ремонта.

 

Практическая часть:

Демон apcupsd следит за работой ИБП подключенного по USB к хосту с Linux 

Для установки из стандартного репозитория (debian\ubuntu) достаточно написать: 
 
~# apt-get update
~# apt-get install apcupsd
 
Стандартный конфиг для USB подключений (/etc/apcupsd/apcupsd.conf):
 
## apcupsd.conf v1.1 ##
#
#  for apcupsd release 3.14.8 (16 January 2010) — debian
#
# «apcupsd» POSIX config file
 
UPSNAME LobnyaAPC
UPSCABLE usb
UPSTYPE usb
DEVICE
LOCKFILE /var/lock
SCRIPTDIR /etc/apcupsd
PWRFAILDIR /etc/apcupsd
NOLOGINDIR /etc
ONBATTERYDELAY 6
BATTERYLEVEL 30
MINUTES 10
TIMEOUT 0
ANNOY 300
ANNOYDELAY 60
NOLOGON disable
KILLDELAY 0
NETSERVER on
NISIP 0.0.0.0
NISPORT 3551
EVENTSFILE /var/log/apcupsd.events
EVENTSFILEMAX 10
UPSCLASS standalone
UPSMODE disable
STATTIME 0
STATFILE /var/log/apcupsd.status
LOGSTATS off
DATATIME 0
 
 
В файле /etc/default/apcupsd ставим параметр «yes» в строке ISCONFIGURED=yes
 
Запуск\остановка:
 
~# /etc/init.d/apcupsd start или stop или restart
 
Проверка состояния ИБП:
~# apcaccess
 
пример вывода (интересующие параметры подсвечены):
 
APC      : 001,034,0833
DATE     : 2017-01-31 11:31:15 +0300
HOSTNAME : hydrus
VERSION  : 3.14.14 (31 May 2016) debian
UPSNAME  : LobnyaAPC
CABLE    : USB Cable
DRIVER   : USB UPS Driver
UPSMODE  : Stand Alone
STARTTIME: 2017-01-31 11:23:09 +0300
MODEL    : Back-UPS ES 550G
STATUS   : ONLINE                            если не ONLINE, значит что-то не так с ИБП или электричеством.
LINEV    : 232.0 Volts
LOADPCT  : 3.0 Percent                нагрузка в %
BCHARGE  : 100.0 Percent           заряд батареи в %
TIMELEFT : 40.5 Minutes             время работы от батареи
MBATTCHG : 30 Percent                  процент батареи при достижении которого будет послан сигнал на выключение компьютера
MINTIMEL : 10 Minutes                  оставшееся время работы от батареи при достижении которого будет послан сигнал на выключение
MAXTIME  : 0 Seconds
SENSE    : Medium
LOTRANS  : 180.0 Volts
HITRANS  : 266.0 Volts
ALARMDEL : 30 Seconds
BATTV    : 13.6 Volts                 текущее напряжение батареи (может помочь в диагностике неисправности)
LASTXFER : No transfers since turnon
NUMXFERS : 0
TONBATT  : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
STATFLAG : 0x05000008
SERIALNO : 5B1438T00998
BATTDATE : 2014-09-16                  дата производства батареи
NOMINV   : 230 Volts
NOMBATTV : 12.0 Volts                  номинальное напряжение батареи
FIRMWARE : 870.O3 .I USB FW:O3
END APC  : 2017-01-31 11:32:01 +0300
 

План «Б»:

Установка из исходников:
Проверяем новую версию здесь http://www.apcupsd.com/support.html
 
Установка:
качаем архив wget https://netix.dl.sourceforge.net/project/apcupsd/apcupsd%20-%20Stable/3.14.14/apcupsd-3.14.14.tar.gz
 
Распаковываем:
~# tar -xzf apcupsd-3.14.14.tar.gz
 
Заходим в распаковынную папку:
~# cd apcupsd-3.14.14/
 
Конфигурим:
~# ./configure —enable-usb
 
Собираем:
~# make
 
Устанавливаем:
~# make install
 
Рестартим демон service apcupsd restart и смотрим версию в выводе apcaccess
 

Бонус:

 
Для мониторинга заббиксом в /etc/zabbix/zabbix_agentd.conf в конце файла добавляем строки:
 
UserParameter=apc.temp,apcaccess | awk ‘/ITEMP/ {print int($3)}’
UserParameter=apc.batt,apcaccess | awk ‘/BCHARGE/ {print int($3)}’
UserParameter=apc.status,apcaccess | grep ONLINE > /dev/null 2>&1;echo $?
 
 
И в заббиксе заводим шаблон с элементами данных по аналогии:
 
для заряда батареи
batt
 
для статуса ИБП
stat
если поддерживается ИБП, то можно наблюдать за температурой
temp
 
Применяем шаблон к нужным серверам и готово.
 
Пример графика мониторинга температуры:
chart
 

Оставьте первый комментарий

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*