Apcupsd в Zabbix Мониторинг состояние блока бесперебойного питания в 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

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

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

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

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

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

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

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

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

Мы получили статус 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 радует своей гибкостью.

Добавить комментарий