Перейти к содержимому

Алерты об авариях

Когда рвётся волокно или обесточивается район, с порта разом уходят десятки абонентов. GetOLT замечает это на цикле опроса и присылает одно сообщение об аварии на порт — а не по сообщению на каждую упавшую ONU. Второе сообщение приходит, когда порт восстановился, и содержит длительность аварии.

Что приходит

🔴 АВАРИЯ · OLT «Восточная» (10.110.0.9) · Краснодар · порт 3
Отвалились 47 из 52 ONU за один цикл опроса (90%).
Вероятная причина: массовое падение ONU, причина не определена.
Началось: 13.08 14:32 · Абоненты: 47 (список — в панели)

и после восстановления:

🟢 ВОССТАНОВЛЕНО · OLT «Восточная» (10.110.0.9) · Краснодар · порт 3
Онлайн 51 из 52.
Длительность аварии: 1 ч 04 мин.

Пока авария открыта, повторных сообщений нет — бота не приходится глушить.

Как настроить

Админка → Вебхуки → Добавить подписку.

ПолеЧто задаёт
КаналTelegram (бот) или Вебхук (HTTP POST с JSON на ваш адрес)
Типы событийoutage — авария и восстановление приходят по одной подписке
Параметры каналадля Telegram — токен бота и chat_id (плюс резервный chat_id); для вебхука — URL и подпись

Подписка получает аварии со всех OLT инсталляции. Кнопка «Отправить тест» шлёт в канал пробное сообщение — так можно проверить токен и доступность адреса, не дожидаясь настоящей аварии.

Что считается аварией

Абоненты штатно выключают оборудование, поэтому одиночные пропажи ONU аварией не являются. Событие создаётся, только когда одновременно выполняются два условия:

  1. Упало достаточно ONU в абсолютном выражении — не меньше порога и не меньше заданной доли порта. На порту из 44 абонентов это 8 ONU, на порту из 120 — 18. Порог растёт вместе с портом, чтобы вечерний спад на крупной ветке не выглядел аварией.
  2. Упала достаточная доля порта, причём требование зависит от того, как давно порт опрашивался. «Отвалились 45%» за десять минут и за три часа — разные события: за три часа столько абонентов могло выключить оборудование само.
Интервал с прошлого опросаТребуемая доля упавших
до 15 минут40%
до часа55%
до трёх часов70%
больше трёх часов75%

Авария закрывается, когда на порту снова онлайн 90% абонентов.

Уведомление не отправляется, если сам опрос бокса прошёл плохо — упёрся в таймаут сессии или не снял больше трети портов. Это проблема связи с оборудованием, а не сети абонентов; такой инцидент попадёт в журнал, но не в мессенджер.

Журнал аварий

Страница «Аварии» показывает открытые и закрытые инциденты за выбранный период: какой порт, сколько ONU упало, когда началось, сколько длится. Строка раскрывается — внутри список упавших абонентов с номером ONU, MAC-адресом, договором (если настроено обогащение) и временем падения. Счётчик открытых аварий виден в верхнем меню на любой странице.

Настройки

Пороги задаются переменными окружения — в /opt/getolt/.env для bare-metal или в .env рядом с docker-compose.yml. Значения по умолчанию подобраны так, чтобы штатный отток абонентов не порождал ложных аварий.

ПеременнаяПо умолчаниюСмысл
OUTAGE_ENABLEDtrueДетект аварий целиком
OUTAGE_MIN_ABSOLUTE8Минимум упавших ONU
OUTAGE_CHURN_GUARD_RATIO0.15Доля порта, ниже которой падение считается штатным оттоком
OUTAGE_MIN_RATIO0.6Базовая доля упавших (для интервала опроса около часа)
OUTAGE_RESOLVE_RATIO0.9Доля онлайн, при которой авария считается закрытой
OUTAGE_QUIET_HOURSпустоТихое окно, например 00:00-07:00
OUTAGE_RETENTION_DAYS90Срок хранения истории статусов ONU

Тихое окно заглушает только сообщения о новых авариях — ночью абоненты массово выключают оборудование. Сообщения о восстановлении в окне не подавляются: иначе авария, о которой сообщили вечером, закрылась бы молча. Сами инциденты в окне всё равно фиксируются и видны в журнале.

Насколько быстро приходит алерт

Задержка определяется не детектором, а частотой опроса: авария обнаруживается на ближайшем проходе по боксу. Чем чаще опрашивается парк, тем раньше приходит сообщение — режим опроса подбирается под размер вашей сети при внедрении.

Нашли ошибку или нужно что-то дополнить? Напишите нам или в Telegram @getolt_pub.

Разработка: gmasich.ru

Политика конфиденциальности · Пользовательское соглашение