Apcupsd в Zabbix

Всем доброго времени суток.

Небольшая предыстория.
В организации уже несколько лет был установлен и Zabbix и Apcupsd. Apcupsd, как сетевой клиент был установлен на все сервера организации, который реально выручал от крушения файловой системы и долгих ребилдов gmirror, так же слал на почту алерты об отключении энергии. На днях сменили один из UPS АРС Smart 2200, который с одной заменой аккумуляторов проработал ровно 15 лет. В замен него приобрели  APC by Schneider Electric Smart-UPS 2200 (SMT2200I) и решили мониторить его через Zabbix-server, тем более, что на днях прикрутили к нему оповещение в вконтакт и телеграмм.
APC by Schneider Electric Smart-UPS 2200 (SMT2200I) комплектуется кабелем 940-0625A для серийного порта RS232 и USB кабелем. По серийному порту не удалось заставить работать Apcupsd, либо не мониторила либо вываливалась в ошибку.
С USB кабелем заработало сразу, мой конфиг apcupsd.conf

UPSNAME  2200
UPSCABLE usb 
UPSTYPE usb
DEVICE 
LOCKFILE /var/spool/lock
SCRIPTDIR /usr/local/etc/apcupsd
PWRFAILDIR /var/run
NOLOGINDIR /var/run
ONBATTERYDELAY 6
BATTERYLEVEL 5«
MINUTES 3
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
LOGSTATS off
DATATIME 0
BATTDATE 17/06/07

Итак Apсupsd и Zabbix-server и Zabbix-agent (должен быть установлен на хосте с Apсupsd) у нас настроены и работают. Я делаю все на FreeBSD, но должно подойти и для Linux (после корректировки путей). Мы будем дергать Zabbix-agentd apcaccess и передавать Zabbix-server следующие параметры:

  1. Статус
  2. Уровень заряда аккумуляторов
  3. Напряжение на аккумуляторах

Дернем вывод apcaccess

# apcaccess 
APC      : 001,027,0658
DATE     : 2017-06-07 14:41:08 +0300  
HOSTNAME : xx.xx.ru
VERSION  : 3.14.14 (31 May 2016) freebsd
UPSNAME  : 2200
CABLE    : USB Cable
DRIVER   : USB UPS Driver
UPSMODE  : Stand Alone
STARTTIME: 2017-06-07 11:09:39 +0300  
MODEL    : Smart-UPS 2200 
STATUS   : ONLINE 
BCHARGE  : 100.0 Percent
TIMELEFT : 26.0 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME  : 0 Seconds
ALARMDEL : 30 Seconds
BATTV    : 54.5 Volts
NUMXFERS : 0
TONBATT  : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
STATFLAG : 0x05000008
MANDATE  : 2016-10-23
SERIALNO : AS1642145340  
NOMBATTV : 48.0 Volts
FIRMWARE : UPS 09.3 / ID=18
END APC  : 2017-06-07 14:41:24 +0300

Мы будем использовать строки:

  • STATUS (Статус)
  • BCHARGE (Уровень заряда аккумуляторов)
  • BATTV (Напряжение на аккумуляторах)

Создаем в zabbix_agentd.conf нужные нам UserParameter, дописываем в конце файла:

UserParameter=STATUS,/usr/local/sbin/apcaccess -p STATUS
UserParameter=BATTV,/usr/local/sbin/apcaccess -p BATTV|cut -f 1 -d " "
UserParameter=BCHARGE,/usr/local/sbin/apcaccess -p BCHARGE|cut -f 1 -d " "

Перезапускаем агента:

/usr/local/etc/rc.d/zabbix_agentd restart

На хосте с Zabbix-server проверяем доступность наших параметров, 192.168.99.5 — это хост на котором установлен Apcupsd и Zabbix-agentd с userparameters :

# zabbix_get -s 192.168.99.5 -p 10050 -k STATUS
ONLINE
# zabbix_get -s 192.168.99.5 -p 10050 -k BCHARGE
100.0
# zabbix_get -s 192.168.99.5 -p 10050 -k BATTV
54.5

Мы получили статус ONLINE, уровень заряда 100%, напряжение аккумуляторов 54.5V.

Теперь нам необходимо в нашем хосте создать три элемента данных, для этого заходим на веб-интерфейс нашего Zabbix-servera, выбираем «Настройка»->»Узлы сети» находим наш хост с Apcupsd и Zabbix-agentd, выбираем его «Элементы данных» ,  и жмем в правом верхнем углу кнопку «Создать элемент данных»
Заполняем и создаем элемент данных для статуса нашего UPS
Далее клонируем нажав кнопку «Клонировать», меняем ключ на BCHARGE.

Еще раз клонируем для ключа BATTV.
Создадим два триггера для элемента данных Status, будем проверять, что возвращает нам статус, если ONLINE, то ничего не делаем, если возвращает ONBATT, что указывает на работу от аккумуляторов — шлем алерт, так же создаем алерт, если возвращается статус как NOBATT , т.к. это означает, что аккумуляторы не установлены:)
Переходим в триггеры этого хоста и жмем «Создать триггер»
Создаем триггер

Где строка {ИМЯ_ВАШЕГО_ХОСТА:STATUS.regexp(ONBATT)}=1 указывает, как только STATUS вернет вместо ONLINE ONBATT, то сработает этот триггер.
Склонируем его, изменим имя на «UPS без аккумуляторов» изменив строку на {ИМЯ_ВАШЕГО_ХОСТА:STATUS.regexp(NOBATT)}=1.
Так же вы можете создать график, который будет отображать % зараяда и напряжение аккумуляторов в UPS.
Перейдите в графики этого хоста, создать новый график, выбрать наши данные
В предпросмотре получите что-то типа этого
Вроде как все, zabbix радует своей гибкостью.

Рейтинг
( 1 оценка, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

:) :D :( :o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.