ADG Оставить заявку
Блог Инфраструктура 4 мин чтения

ИБП APC через NMC в Zabbix: первый алерт за четыре минуты до выключения

Подключили все ИБП APC через Network Management Card к Zabbix. Первый боевой тест: сигнал пришёл за 4 минуты до отключения - успели перенести виртуалки вручную.

Контекст момента

APC Network Management Card и SNMP-мониторинг ИБП - стандарт для датацентров и серверных 2011 года

До этой зимы мониторинг ИБП у большинства клиентов выглядел одинаково: наклейка с датой последней проверки батареи на корпусе и надежда на лучшее. APC умел слать SNMP-трапы уже давно, но карты Network Management Card стояли далеко не везде, а там, где стояли, - настроены были в режиме «лишь бы пинговалась». В январе мы решили это исправить по-нормальному.

Работа проводилась в рамках сопровождения инфраструктуры.

Карты NMC - это отдельный мозг ИБП, который живёт независимо от основного блока. AP9617, AP9619, AP9631 - в зависимости от модели и года выпуска устройства. Подключается в слот на задней панели Smart-UPS или Symmetra, получает свой IP и начинает отвечать по SNMP, HTTP и Telnet. У нас набралось чуть меньше двадцати единиц на нескольких объектах - от небольших серверных до стоечных конфигураций с Symmetra.

Первый шаг - инвентаризация того, что вообще есть. Часть карт была с прошивкой трёх-четырёхлетней давности, community string везде был «public», пароль на веб-интерфейс - заводской. Обновили прошивки, раздали нормальные community, закрыли HTTP там, где не нужен. Это заняло больше времени, чем сама настройка мониторинга.

Шаблон в Zabbix собирали вручную по MIB от APC. Производитель публикует powernet.mib - там несколько сотен OID, нужны далеко не все. Мы взяли ключевые группы:

  • Состояние входного питания - upsBasicInputStatus: onLine / onBattery / onBypass и пр.
  • Заряд батареи - upsHighPrecBatteryCapacity, в процентах с одним знаком после запятой
  • Оставшееся время автономной работы - upsHighPrecTimeRemaining, в секундах
  • Температура батарейного модуля - upsHighPrecBatteryTemperature
  • Статус замены батареи - upsBasicBatteryStatus: batteryNormal / batteryLow / batteryInFaultCondition
  • Выходная нагрузка - upsHighPrecOutputLoad, процент от номинала

Триггеры выставили по трём уровням. Критический - переход на батарею (onBattery), заряд ниже 20%, температура выше 40°C, статус batteryInFaultCondition. Предупреждение - заряд ниже 50%, нагрузка выше 80% номинала, время автономии менее 10 минут при нормальном питании (значит батарея деградировала). Информационный - переход в bypass-режим.

Интервал опроса поставили 60 секунд. Для SNMP это вполне нормально: карта не перегружается, данные актуальные.

Первый настоящий боевой случай произошёл примерно через три недели после завершения настройки. На одном из объектов пропало питание - обычное отключение на подстанции. ИБП штатно взял нагрузку, Zabbix через минуту показал onBattery на четырёх устройствах сразу. Триггер ушёл в Slack (тогда мы как раз тестировали интеграцию) и на почту дежурному.

Дальше - самое интересное. Расчётное время автономии на самом нагруженном ИБП показало около шести минут. Электрики оценили ситуацию в «минут на десять, может больше». Мы решили не ждать и начали переносить виртуальные машины на узлы, питающиеся от другого ИБП с лучшим запасом. vMotion сделал своё дело, критичные ВМ ушли за две с небольшим минуты.

Питание восстановили через четыре минуты после первого алерта - то есть примерно за две минуты до того, как на перегруженном ИБП началось бы аварийное отключение. Успели с запасом, но именно потому, что сигнал пришёл сразу, а не когда сервер уже начал падать.

Второй вывод оказался не менее важным: мониторинг выявил деградацию батарей на двух устройствах, которым уже три года. Расчётное время автономии при половине номинальной нагрузки было меньше пяти минут - вместо заявленных двадцати. Без мониторинга это обнаружилось бы только в момент, когда стало бы поздно.

Сейчас SNMP-мониторинг ИБП включён в базовый набор для всех объектов, где мы занимаемся инфраструктурой. Карты NMC есть в большинстве серверных APC - вопрос только в том, настроены ли они. Как правило, нет.

Автоматическое гашение серверов через PowerChute Network Shutdown отложили - это требует агента на каждом сервере, и механику нужно тщательно тестировать, чтобы не получить ситуацию, когда PowerChute гасит машины раньше, чем это реально нужно. Задача на следующий этап.

Контакт

Нужна такая же инженерная работа?

Опишите задачу и контекст. Ответим в течение рабочего дня, при необходимости подпишем NDA.