Всем доброго времени суток.
Небольшая предыстория.
В организации уже несколько лет был установлен и 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 следующие параметры:
- Статус
- Уровень заряда аккумуляторов
- Напряжение на аккумуляторах
Дернем вывод 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, выбираем его «Элементы данных» , и жмем в правом верхнем углу кнопку «Создать элемент данных»


Еще раз клонируем для ключа BATTV.

Переходим в триггеры этого хоста и жмем «Создать триггер»

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



