Руководство по настройке оповещений

Пошаговое руководство по настройке оповещений в Proto Observability Platform: создание каналов оповещений (email, Telegram, Webhook), политик маршрутизации и правил алертинга с описанием каждого поля формы.

На этой странице:

В этом руководстве описана настройка оповещений в веб-интерфейсе Proto Observability Platform: как создать каналы доставки, как направить алерты в нужные каналы с помощью политик и как создавать и сопровождать правила алертинга.

Концептуальное описание модуля алертинга (встроенные правила, SLO-алертинг, выявление аномалий) приведено в разделе Алертинг в Proto Observability Platform.

Как устроены оповещения

Оповещения складываются из трёх связанных сущностей. Их настраивают в разделе главного меню Алерты:

СущностьРаздел менюНазначение
Канал оповещенияАлерты > КаналыКуда доставлять уведомления (email, Telegram, Webhook).
Политика оповещенийАлерты > ПолитикиКакие алерты в какой канал направлять (маршрутизация по лейблам).
Правило алертингаАлерты > ПравилаЧто считать инцидентом (условие на языке PromQL/MetricsQL).

Данные движутся так: правило срабатывает по условию → политика сопоставляет лейблы алерта со своими матчерами и выбирает канал → канал доставляет уведомление получателю.

Рекомендуемый порядок настройки с нуля:

  1. Создать каналы оповещений — адреса и реквизиты доставки.
  2. Создать правила алертинга — условия срабатывания и лейблы.
  3. Создать политики, которые свяжут лейблы правил с каналами.

Раздел «Алерты» в главном меню Скриншот: пункт меню «Алерты» с подразделами «Каналы», «Политики», «Правила».


Каналы оповещений

Канал оповещения определяет, куда и как доставляется уведомление. Поддерживаются три типа каналов: Электронная почта (email), Telegram и Webhook.

Список каналов

Откройте раздел Алерты > Каналы. На странице доступны поиск по названию, фильтр по типу канала и действия над каждым каналом (просмотр, редактирование, удаление).

Список каналов оповещений Скриншот: список каналов с фильтром по типу и кнопкой «Добавить».

Создание канала

Нажмите «Добавить» и заполните форму. Часть полей общая для всех типов, остальные зависят от выбранного типа.

Общие поля:

ПолеОбязательноеОписание
НазваниеДаУникальное и описательное имя канала (до 64 символов). Допускаются латинские и кириллические буквы, цифры, дефис, подчёркивание и пробелы.
ТипДаТип канала: Электронная почта, Telegram или Webhook. При смене типа поля, специфичные для типа, очищаются.
КомментарийНетПроизвольная заметка (до 500 символов): например, какая команда получает уведомления или для чего используется канал.
Отправлять завершённые?НетОтправлять ли в канал уведомления о завершившихся (разрешившихся) алертах.
Отключить проверку SSLНетОтключает проверку валидности SSL-сертификата сервера. Включайте только при использовании самоподписанного сертификата.

Канал «Электронная почта» (email)

Создание канала: Электронная почта Скриншот: форма создания канала типа «Электронная почта» с заполненными полями SMTP.

ПолеОбязательноеОписание
КомуДаEmail-адрес получателя оповещений.
От когоДаАдрес отправителя (поле from).
SMTP серверДаSMTP-сервер для отправки писем в формате хост:порт, например smtp.example.com:587.
Имя пользователя SMTPНетИмя пользователя для SMTP-аутентификации.
Пароль SMTPНетПароль для SMTP-аутентификации (хранится в зашифрованном виде).
hello имя хостаНетИмя хоста для идентификации на SMTP-сервере. По умолчанию localhost.
Требовать TLSНетТребовать TLS для SMTP-соединения.

Канал «Telegram»

Создание канала: Telegram Скриншот: форма создания канала типа «Telegram».

ПолеОбязательноеОписание
Telegram IDДаИдентификатор чата (chat_id), куда бот отправляет сообщения. Целое число, может быть отрицательным.
Токен ботаДаТокен Telegram-бота (хранится в зашифрованном виде).
API URLНетURL API Telegram, по умолчанию https://api.telegram.org.
ID ветки сообщенийНетИдентификатор ветки (topic) для форумных групп Telegram.

Канал «Webhook»

Создание канала: Webhook Скриншот: форма создания канала типа «Webhook».

ПолеОбязательноеОписание
Webhook URLДаURL, на который отправляется HTTP POST с данными алерта. Должен начинаться с http:// или https://.
Максимум алертовНетМаксимальное количество алертов в одном сообщении.
ТаймаутНетМаксимальное время ожидания ответа от приёмника.

Редактирование и удаление каналов

Канал можно изменить или удалить из списка каналов. При редактировании тип канала изменить нельзя — он отображается заблокированным; для смены типа создайте новый канал.

Редактирование канала оповещения Скриншот: форма редактирования канала — тип заблокирован, секретные поля (Пароль SMTP) пусты.


Политики оповещений

Политика (маршрут) определяет, какие алерты доставляются в какой канал. Политики сопоставляют лейблы входящего алерта со своими условиями (матчерами) и направляют совпавшие алерты в выбранный канал.

Список политик

Откройте раздел Алерты > Политики. Политики проверяются по возрастанию значения поля «Порядок» (приоритета) — сверху вниз. В списке видны матчеры, признак «Продолжение», привязанный канал и лейблы группировки каждой политики.

Список политик оповещений Скриншот: список политик с приоритетами и кнопкой «Добавить».

Создание политики

Нажмите «Добавить» и заполните форму.

Создание политики оповещений Скриншот: форма создания политики с матчерами и выбором канала.

ПолеОбязательноеОписание
Лейблы группировкиДаЛейблы, по которым входящие оповещения объединяются в одну группу (например, alertname, cluster, service). Несколько алертов с одинаковыми значениями этих лейблов придут одним сообщением. Чтобы отключить группировку, используйте специальный символ ....
Каналы оповещенияДаКанал, в который направляются совпавшие алерты. Канал должен быть создан заранее (см. раздел «Каналы оповещений»).
МатчерыДа (≥1)Условия сопоставления лейблов алерта. Каждый матчер — это тройка «ключ — оператор — значение».
ПродолжениеНетПрименять ли последующие политики, если текущая совпала. Выкл. — обработка алерта останавливается на первой совпавшей политике. Вкл. — алерт обрабатывается и следующими политиками.
ПорядокДаПриоритет проверки политики, от 1 до 100. Политики проверяются по возрастанию; на первой совпавшей обработка прекращается, если не включено «Продолжение».
КомментарийНетКраткое описание политики или ссылка на регламент (до 500 символов).

Матчер состоит из трёх частей:

ЧастьОписание
ключИмя лейбла алерта, например severity, service, env, alertname, instance, job.
оператор= равно, != не равно, =~ совпадает с regex, !~ не совпадает с regex.
значениеЗначение для сравнения. Для операторов =~ / !~ — регулярное выражение.

Несколько матчеров в одной политике объединяются по «И»: алерт должен удовлетворять всем условиям.

Примеры матчеров

ЦельМатчер
Любой алерт (политика-перехватчик)alertname =~ .*
Алерты определённого семейства по имениalertname =~ Аномалия.*
Только сервисные алерты (APM)type = apm (или component_type = service)
Алерты конкретного сервисаservice = payment-service (или service =~ payment.*)
Только критичныеseverity = CRITICAL
Только инфраструктурные алертыtype = infra
Конкретная технологияtechnology = postgres
Всё, кроме предупрежденийseverity != WARNING

Матчер alertname =~ .* совпадает с любым алертом — это удобно для политики-«перехватчика» по умолчанию. Разместите её последней (наибольшее значение поля «Порядок»), чтобы она ловила алерты, не подошедшие под более специфичные политики.

Типовые лейблы встроенных правил

Встроенные правила платформы несут стандартный набор лейблов — по ним удобно строить матчеры. Матчеры сопоставляются именно с лейблами, а не с аннотациями (summary, dashboard и т. п. для маршрутизации не используются).

ЛейблТиповые значенияОписание
alertnameимя правилаНазвание сработавшего правила, например Аномалия во времени отклика.
severityCRITICAL, WARNINGКритичность.
typeapm, infra, licensingКатегория правила: приложения/сервисы, инфраструктура, лицензирование.
component_typeservice, endpoint, application, db, host, k8s, container, queue, web_server, virtualizationТип объекта, к которому относится алерт.
technologypostgres, mysql, mongodb, redis, memcached, kafka, nginx, httpd, php_fpm, elasticsearch, vsphere, k8s_node, k8s_ns, k8s_pod, k8s_deploy, k8s_daemon, k8s_statefulКонкретная технология (для инфраструктурных правил).
rule_typeSLA, APDEX, anomaly_calls, anomaly_resptime, anomaly_errors, anomaly_errorperc, anomaly_duration, cpu, cpu_iowait, ram, error_endpointПодтип правила.
service, service_id, service_groupиз метрикиСервис, к которому относится алерт (APM-правила).
endpoint, opNameиз метрикиЭндпоинт/операция (правила по эндпоинтам и ключевым транзакциям).

Собственные правила несут лейбл severity (поле Критичность) и любые лейблы, добавленные в блоке Лейблы (см. Создание правила).

Применение политик

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

Применение политик оповещений Скриншот: подтверждение применения настроек политик.


Правила алертинга

Правило определяет условие, при котором генерируется алерт. Условие задаётся выражением на языке PromQL или MetricsQL.

Подробнее о доступных метриках, лейблах сервисов, синтаксисе выражений и аннотациях со ссылками на дашборды см. Метрики и выражения для правил.

Список правил

Откройте раздел Алерты > Правила. Доступны фильтры по типу (встроенные/пользовательские), по группе и по статусу (включено/отключено), а также поиск по названию.

Список правил алертинга Скриншот: список правил с фильтрами по типу, группе и статусу.

Создание правила

Нажмите «Добавить» и заполните форму.

Создание правила алертинга Скриншот: форма создания правила с основными полями.

ПолеОбязательноеОписание
НазваниеДаКороткое описание сути правила (до 64 символов). Отображается на дашбордах и в уведомлениях.
ГруппаДаЛогическая группа правил. Имя группы отображается в дашборде реального времени и в уведомлениях. Можно выбрать существующую группу или ввести новую. Только латинские буквы, цифры и подчёркивание; без пробелов и кириллицы.
КритичностьДаУровень критичности: CRITICAL или WARNING. Сохраняется как лейбл severity (используется в политиках маршрутизации).
ОписаниеДаПонятное описание сути правила (до 200 символов). Отображается в списке правил и в тексте получаемых алертов. Сохраняется как аннотация summary.
ВыражениеДаУсловие правила на PromQL/MetricsQL (до 10 000 символов). Алерт срабатывает, когда выражение возвращает результат. Поле поддерживает подсветку синтаксиса.
forНетДлительность, в течение которой условие должно выполняться, прежде чем алерт перейдёт в статус firing (формат: 30s, 5m, 1h, 1d, 1w). До истечения этого времени алерт находится в статусе pending. Если не задано — алерт срабатывает сразу.
keep_firing_forНетДлительность, в течение которой алерт остаётся в статусе firing после того, как условие перестало выполняться. Откладывает разрешение алерта. Формат как у for.
ЛейблыНетДополнительные пары «ключ — значение», добавляемые к алерту. Используются для группировки и маршрутизации в политиках.
АннотацииНетДополнительные пары «ключ — значение» с метаданными алерта (приходят в текст уведомления). Зарезервированные ключи dashboard, dashboardHost, dashboardContainer формируют ссылки на дашборды — см. Метрики и выражения.
debugНетВыводить ли отладочную информацию в логи (изменения состояния алертов и запросы к источнику данных).
СтатусСостояние правила: включено или отключено. Новое правило по умолчанию создаётся отключённым.

Предпросмотр выражения на графике

В форме правила можно проверить выражение, не дожидаясь срабатывания: нажмите «Показать график», выберите интервал времени — система построит график по текущему выражению.

Предпросмотр выражения на графике Скриншот: предпросмотр PromQL-выражения в виде линейного графика.

Лейблы и аннотации

Лейблы и аннотации задаются как пары «ключ — значение».

Редактор лейблов и аннотаций Скриншот: блоки «Лейблы» и «Аннотации» с добавленными парами.

Применение правил

После добавления, изменения или отключения правил нажмите «Применить». Новые настройки вступят в силу в течение ~1 минуты.

Применение правил алертинга Скриншот: подтверждение применения настроек правил.


Работа с правилами

Над каждым правилом в списке доступен набор действий.

Действия над правилом Скриншот: меню действий правила — просмотр, редактирование, копия, отключение, удаление.

ДействиеОписаниеПрименимо к
ПросмотрОткрыть детали правила: выражение, лейблы, аннотации, статус.Все правила
РедактированиеИзменить параметры правила в форме (как при создании).Пользовательские правила
Создать копиюСоздать редактируемую копию правила. Основной способ кастомизировать встроенное правило.Все правила
Отключить / ВключитьПеревести правило в статус отключено / включено. Отключённое правило не срабатывает.Все правила
УдалитьУдалить правило без возможности восстановления.Только пользовательские

После любого изменения (редактирование, отключение, удаление, добавление) не забудьте нажать «Применить» — иначе изменения не активируются.


Что дальше