Когда система была развёрнута, мы не стали просто смотреть на дашборд и надеяться на лучшее. Провели серию контролируемых тестов — реально отключали питание и смотрели, что происходит.
Три теста в нерабочее время, чтобы не рисковать:
Тест 1: Отключение питания одной стойки — вырубили ввод на стойке 4. UPS перешёл на батарею за 0 мс (online-режим, как и должно быть), NUT сразу показал статус OB, Zabbix отстучал алерт в Telegram через 7 секунд. Подержали на батарее 5 минут, потом восстановили питание — UPS штатно перешёл в OL CHRG и начал заряжаться.
Тест 2: Имитация критического разряда — на тестовом UPS искусственно снизили порог LOWBATT до текущего уровня заряда. Каскадный скрипт отработал чисто: сервер получил сигнал и завершил работу за 12 секунд. Без зависаний, без потери данных.
Тест 3: Полное отключение серверной — выключили основной ввод целиком. Все 6 UPS перешли на батарею одновременно. Каскадное отключение прошло точно по сценарию: медиа (0 сек) → BRAS (10 сек) → биллинг (40 сек) → коммутация (55 сек) → мониторинг (60 сек). Ни одного некорректного завершения, данные целы.
# Лог каскадного отключения (тест 3)
[2025-11-15 03:00:05] === КАСКАДНОЕ ОТКЛЮЧЕНИЕ НАЧАТО ===
[2025-11-15 03:00:05] UPS apc-billing: статус OB, заряд 92%
[2025-11-15 03:00:05] Фаза 1: Отключение медиа-сервера...
[2025-11-15 03:00:08] media-server: shutdown initiated
[2025-11-15 03:00:15] Фаза 2: Graceful shutdown BRAS...
[2025-11-15 03:00:18] bras-server: stopping sessions (1247 active)
[2025-11-15 03:00:35] bras-server: all sessions closed, shutdown
[2025-11-15 03:00:45] Фаза 3: Отключение биллинга...
[2025-11-15 03:00:48] billing-server: PostgreSQL checkpoint complete
[2025-11-15 03:00:52] billing-server: shutdown initiated
[2025-11-15 03:01:00] Фаза 4: Отключение мониторинг-сервера...
[2025-11-15 03:01:05] === ВСЕ СЕРВЕРЫ ОТКЛЮЧЕНЫ ===
Весь проект уложился в 5 рабочих дней: 2 дня ушло на настройку мониторинга и автоматизации, 1 день — на замену батарей и перебалансировку нагрузки, ещё 2 дня — на тестирование.
| Метрика | До внедрения | После внедрения |
|---|
| Мониторинг UPS | Нет | Все 6 UPS в Zabbix |
| Автоматическое отключение | Нет (серверы работали до разряда) | Каскадное отключение за 60 сек |
| Время алерта | Узнавали постфактум | 7 сек (Telegram) |
| Мин. автономия | 4 мин (стойка 4) | 10 мин (все стойки) |
| Средняя нагрузка | 72% (перегрузка) | 64% (норма) |
| Состояние батарей | 3 из 6 изношены | Все в норме |
За 4 месяца после внедрения электричество отключалось трижды. Все три раза система отработала без вопросов: серверы корректно завершились, ни одного повреждения данных. Среднее время восстановления после возврата питания — 8 минут. Раньше было 14 часов.
«Раньше отключение света — это паника. Теперь я получаю SMS, смотрю в Zabbix и спокойно жду. Серверы сами выключатся и сами включатся» — системный администратор КомЛинк.
Теперь про деньги — потому что это аргумент, который понимают все. Два сгоревших сервера до внедрения системы обошлись больше чем в 800 000 ₽: замена RAID-контроллера Dell и двух NVMe SSD. Наш проект вместе с заменой батарей — 320 000 ₽. Если честно, окупаемость считать легко: один предотвращённый инцидент покрывает всё. А за 4 месяца таких инцидентов было три.
Под конец проекта мы передали IT-отделу КомЛинк регламент обслуживания UPS — чтобы через год не начинать всё заново:
- Ежемесячно — просматривать логи NUT, визуально осматривать UPS
- Ежеквартально — запускать self-test на каждом UPS через NUT (
upscmd apc-billing test.battery.start) - Раз в полгода — полный тест автономии: контролируемое отключение питания стойки и замер реального времени работы
- Ежегодно — замер ёмкости батарей, принятие решения о заменах до следующего сезона