Оповещения (алертер)

Алертер — встроенная служба оповещений. Она следит за состоянием потоков, оборудования узла, приёма DVB и записи DVR и поднимает алерты (инциденты), когда что-то выходит за заданные пределы. Список активных алертов виден в админке; в сети с включённым разносом по домену на каждом узле виден сводный набор алертов всего домена.

Алертер работает и на одиночном узле — Meshwork нужен только для разноса алертов по домену.

Как устроен алерт

  • У каждого инцидента есть устойчивый идентификатор: повторное появление той же проблемы — это тот же инцидент, а не новый.

  • Инцидент проходит состояния: поднят (впервые замечен), обновлён (замечен снова с существенным изменением), снят (проблема ушла). Активный набор — это инциденты, которые ещё не сняты.

  • У каждого алерта есть уровень серьёзности (по нарастающей: информация, предупреждение, ошибка, критический, требует действий администратора), код (числовой вид инцидента — см. каталог ниже), источник (поток, узел, хранилище), узел-источник (кто поднял алерт) и человекочитаемое имя объекта.

  • Большинство алертов уровневые: служба периодически переоценивает условие и сама поднимает или снимает алерт. Часть алертов, требующих действий администратора, липкие — они не снимаются сами, пока причина не устранена (их снимают вручную, см. Просмотр и снятие алертов).

Список активных алертов хранится в памяти и очищается при перезапуске сервиса.

Управление на уровне потока. У каждого потока есть выключатель, полностью заглушающий его алерты (вместе с алертами его входов и выходов), и задержка алерта: источник, восстановившийся в течение заданного времени, алерт не поднимает — это сглаживает кратковременные мерцания.

Настройки алертера

Настройки находятся в разделе оповещений и требуют роли администратора. Точные поля описаны в разделе Веб-интерфейс; ниже — что можно настроить.

  • Главный выключатель службы оповещений (по умолчанию включена).

  • Разнос по домену (по умолчанию включён): узел делится своими алертами с узлами того же домена и принимает их — на каждом узле виден сводный набор. Действует только при заданном домене.

  • Разнос системных алертов (по умолчанию выключен): алерты об оборудовании узла (CPU и память хоста, процесса стримера и транскодеров, загрузка сети и GPU, рабочие потоки и фронтенд DVB — коды 16–23 и 40–45) по умолчанию локальны; включите, чтобы они тоже разносились по домену. Алерты хранилищ (коды 24–25) остаются локальными всегда.

  • Пороги потоков: тайм-аут отсутствия данных (по умолчанию 15 с), минимально допустимый битрейт (по умолчанию проверка выключена), порог ошибок счётчика непрерывности за окно 10 с (уровни предупреждения и ошибки).

  • Пороги ресурсов узла — пары «предупреждение / ошибка» в процентах для CPU и памяти хоста, процесса стримера и транскодеров, загрузки сетевого интерфейса и GPU, а также заполнения хранилища DVR. Пороги хоста заданы выше, чем у процесса стримера и транскодеров, чтобы отдельный компонент предупреждал раньше, чем насытится вся машина. Значение 0 отключает соответствующий уровень.

  • Пороги DVB-фронтенда — уровень сигнала, SNR/качество, частота битовых ошибок и неисправленные блоки; применяются к адаптеру с захватом сигнала.

  • Пороги записи DVR — число неудачных записей подряд, множитель застопоривания записи, доля непокрытия архива и время чтения/записи чанков на диск.

Каталог кодов алертов

Код — числовой вид инцидента, удобный для группировки и локализации. В колонке «Разнос» указано, разносится ли алерт по домену (при включённом разносе) или остаётся локальным для узла.

Потоки: состояние и рабочий цикл (источник — поток)

Код

Событие

Разнос

1

вход или выход перешёл в состояние ошибки

по домену

2

неустранимая ошибка рабочего цикла, нужен ручной сброс (требует действий администратора)

по домену

3

запущенный поток не отдаёт данные дольше тайм-аута

по домену

4

битрейт потока держится ниже минимального

по домену

13

поток поставлен на паузу: не осталось пригодного входа (требует действий администратора)

по домену

14

вход или выход самоприпарковался и не восстанавливается повтором (требует действий администратора)

по домену

27

поток работает на резервном входе — произошло переключение

по домену

39

высокая загрузка CPU рабочим потоком потока

по домену

Соответствие транспортного потока (анализатор TR 101 290) (источник — поток; все разносятся по домену)

Код

Событие

5

повторяющиеся разрывы PCR (TR 101 290, 2.3)

6

интервал повторения PCR более 40 мс (2.3a)

7

интервал повторения PAT более 500 мс (1.3)

8

интервал повторения PMT более 500 мс (1.5)

9

интервал повторения PTS более 700 мс (2.5)

10

точность PCR хуже 500 нс (2.4)

11

пере- или недополнение буфера T-STD по видео (3.3)

12

дрейф PCR более 30 ppm (историческое: оповещение больше не поднимается, дрейф отображается как метрика — Постоянные измерения)

15

ошибки счётчика непрерывности выше порога за короткое окно (1.4)

46

ошибка CRC таблиц PSI (2.2)

47

установлен признак transport_error_indicator (2.1)

48

превышен интервал повторения SI-таблицы (SDT / EIT / TDT / NIT)

49

сводный вердикт: поток не соответствует TR 101 290

Часть кодов анализатора появляется только при включённых опциях анализа (глубокий анализ, анализ PTS-разрывов, анализ буфера T-STD) и применима лишь к потокам с постоянным битрейтом; сводный вердикт (49) выносится только для уверенно постоянного битрейта. Подробнее — в разделе Анализатор.

Ресурсы и оборудование узла (источник — система)

Код

Событие

16

загрузка CPU хоста выше порога

17

использование памяти хоста выше порога

18

CPU процесса стримера выше порога

19

память процесса стримера выше порога

20

суммарный CPU транскодеров выше порога

21

суммарная память транскодеров выше порога

22

загрузка сетевого интерфейса выше порога (на каждый интерфейс)

23

загрузка GPU выше порога (на каждое устройство)

24

заполнение хранилища DVR выше порога (на каждое хранилище)

25

файловая система хранилища DVR недоступна (требует действий администратора)

40

высокая загрузка CPU рабочим потоком DVB-адаптера

41

DVB-фронтенд потерял сигнал (lock)

42

уровень сигнала DVB ниже порога

43

SNR/качество сигнала DVB ниже порога

44

частота битовых ошибок (BER) DVB выше порога

45

неисправленные блоки DVB выше порога

Все алерты этой группы по умолчанию локальны. Коды 16–23 и 40–45 можно разнести по домену переключателем разноса системных алертов; коды 24–25 остаются локальными всегда. Пороговые алерты DVB-фронтенда (42–45) оцениваются только на адаптере с захватом сигнала; код 41 поднимается при потере захвата (lock). BER (44) по умолчанию выключен, так как сырая шкала зависит от приёмника (см. DVB-приёмник).

Meshwork и жизненный цикл (источник — сеть/система; локально)

Код

Событие

26

узел сети замолчал — перестал подтверждать связь

28

процесс стримера завершил запуск (кратковременное уведомление)

37

в одном домене два узла с одинаковым именем (требует действий администратора)

Здоровье записи DVR (источник — поток; локально)

Код

Событие

29

записи сегментов или индекса DVR не проходят — архив не пишется

30

запись DVR застопорилась: есть вход, но новый сегмент долго не сохраняется

31

архив DVR деградировал — пропуски в недавнем покрытии

32

индекс архива DVR повреждён (требует действий администратора)

50

высокое время чтения/записи чанков DVR на диск

Конфигурация, транскодеры, OTT и сертификаты (источник — система/поток)

Код

Событие

Разнос

33

основная конфигурация не загрузилась при старте, сервис поднялся на запасной (требует действий администратора)

по домену

34

в режиме low-latency HLS/DASH отброшены звуковые дорожки в неподдерживаемом кодеке (поддерживаются AAC и AC-3)

по домену

35

не удалось выпустить или продлить HTTPS-сертификат через встроенный клиент ACME

по домену

36

настроенный транскодер не загрузился при старте — нет исполняемого файла или устройства (требует действий администратора)

по домену

38

поток требует транскодер (программный, NVIDIA или Intel VPL), недоступный на этом узле (требует действий администратора)

локально

Модуль условного доступа (CI/CAM, EN 50221) (источник — система; локально)

Код

Событие

51

модуль CAM извлечён (требует действий администратора)

52

нет подписки: модуль сообщает, что программа не оплачена

53

ошибка CI/CA — неустранимая ошибка канала или условного доступа

Просмотр и снятие алертов

В админке есть раздел оповещений со списком алертов. Его можно фильтровать по набору (только активные / только снятые / все), по уровню серьёзности, по типу и идентификатору источника, по коду, по домену и по времени, а также искать по тексту сообщения. По умолчанию показаны и активные, и недавно снятые записи (журнал переходов), поэтому общее число строк может превышать число активных инцидентов — для текущего активного набора выбирайте режим «только активные».

Состояние не обязательно опрашивать вручную: админка получает изменения активного набора в реальном времени и обновляет список сама, как только алерт поднимается, обновляется или снимается.

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

Разнос оповещений по домену

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

  • Разносятся по домену: потоковые алерты и алерты соответствия транспортного потока, переключение на резервный вход, ошибки загрузки конфигурации и транскодера, отбраковка звука OTT, ошибка сертификата ACME.

  • Остаются локальными: ресурсные алерты об оборудовании и хранилищах, «узел замолчал», коллизия имён узлов, уведомление о старте сервиса, алерты здоровья записи DVR и алерты модуля условного доступа. Системные алерты об оборудовании (коды 16–23 и 40–45) можно перевести в разнос переключателем разноса системных алертов.

Алерт «узел сети замолчал» каждый узел поднимает самостоятельно о том соседе, который перестал отвечать, — поэтому об одном упавшем узле его соседи поднимут такой алерт независимо друг от друга.

Внешняя доставка алертов

Помимо списка в браузере, алерты можно доставлять во внешнюю команду, в чат Telegram и по электронной почте (SMTP). Каждый канал независим и по умолчанию выключен, а доставку ведёт на своём фоновом потоке, поэтому медленный или недоступный адресат не задерживает остальные каналы и саму службу.

У каждого канала есть минимальный уровень серьёзности для доставки (по умолчанию — предупреждение): доставляется каждый видимый на узле алерт (собственный или разнесённый по домену) не ниже этого уровня, причём и при подъёме, и при снятии. Параметры подключения каждого канала описаны в разделе Веб-интерфейс.

Типичные проблемы

  • Алерты соседей не видны. Проверьте, что на узлах включён разнос по домену и задан общий домен. Системные алерты об оборудовании по умолчанию локальны — включите разнос системных алертов, если их тоже нужно видеть по домену.

  • Липкий алерт не уходит после устранения причины. Снимите его вручную на узле-источнике.