Настройка алертинга
vmalert, Alertmanager, группы правил, каналы уведомлений.
Обзор
Алертинг (оповещения) в платформе «Штурвал» реализован на основе VictoriaMetrics AlertManager и AlertManagerConfig. Графический интерфейс доработан так, чтобы минимизировать риск ошибок при конфигурации. Используются компоненты:
- vmalert (VM Alert) — оценка правил алертинга на основе метрик;
- Alertmanager — маршрутизация и доставка уведомлений.
По умолчанию в кластерах установлены правила оповещений (см. предустановленные правила). Для кастомных правил оповещения (alert) или записи (record) создайте группу правил.
По умолчанию оповещения отображаются в интерфейсе платформы. Для отправки в Email, Telegram, Webhook и др. в интерфейсе настраивают:
- блокировку оповещений (inhibit);
- временные интервалы оповещений;
- маршруты;
- получателей.
Просмотр сработавших оповещений — на странице Оповещения → Просмотр оповещений (см. раздел ниже).
Условия работы алертинга
Клиентский кластер
Алертинг клиентского кластера доступен из интерфейса платформы, если включены и работают сервисы:
- в кластере управления Модуль мониторинга (VictoriaMetrics)
shturval-monitoringи Компонент управления модуля мониторинга (VictoriaMetrics Agent)shturval-metrics-collector; - в клиентском кластере Компонент управления модуля мониторинга (VictoriaMetrics Agent)
shturval-metrics-collector.
Кластер управления
Алертинг кластера управления можно настроить, если включены и работают сервисы:
- в кластере управления Модуль мониторинга (VictoriaMetrics)
shturval-monitoring; - в кластере управления Компонент управления модуля мониторинга (VictoriaMetrics Agent)
shturval-metrics-collector.
Просмотр оповещений
Раздел Оповещения → страница Просмотр оповещений доступен просмотр оповещений по сработавшим правилам.
Интерфейс оповещений

Оповещения разбиты по вкладкам:
| Статус | Описание |
|---|---|
| Firing | Алерт срабатывает — актуальное нарушение условия или событие. |
| Pending | Алерт не срабатывает, но возможен в будущем (временные изменения). |
| Inactive | Алерт не срабатывает длительное время или отключён администратором. |
На каждой вкладке алерты разбиты по группам в соответствии с заданным выражением. В каждой группе указаны выражение, описание условий срабатывания, счётчик событий в группе и сами алерты.
Состав алерта:
- идентификатор;
- название;
- дата и время срабатывания;
- описание;
- выражения;
- критичность.
Предустановленные правила
В кластерах по умолчанию установлены правила оповещений (VMRule с постфиксом system). Перечень правил приведен:
- в кластере управления: Администрирование → Кастомные ресурсы → API-группа
operator.victoriametrics.com→ ресурс VMRule с постфиксомsystemв неймспейсе с именем кластера (клиенсткого, управления) в кластере управления; - в документации: полный перечень предустановленных правил.
Группы правил оповещения
Для кастомных правил создаётся группа правил.
- Правила оповещения → + Добавить группу правил.
Скриншоты: группы правил оповещения

- Заполните:
- Имя группы (обязательно);
- Тип выражений — Prometheus или Graphite (по умолчанию Prometheus);
- Тип правил — оповещения (alert) или запись (record);
- как часто оцениваются правила;
- сколько правил выполняются одновременно в группе.
Скриншот: добавление группы правил

После создания имя группы, тип выражений и тип правил неизменяемы. Удаление группы приводит к каскадному удалению правил.
Как управлять правилами в группе
Когда создана группа правил оповещения, на странице просмотра группы можно управлять правилами. В нижней части страницы слева — список добавленных правил. Создайте правило, нажав + в списке; добавление и просмотр правила отображаются справа.
Правила бывают типа оповещение (alert) или запись (record):
- Правила оповещения — условия на основе выражений Prometheus или Graphite (в зависимости от типа выражений группы) и уведомления при срабатывании.
- Правила записи — предварительный расчёт часто используемых или ресурсоёмких выражений с сохранением результата как нового набора временных рядов; запрос к предвычисленному результату обычно быстрее повторного выполнения исходного выражения. Особенно полезно для дашбордов с повторяющимися запросами при каждом обновлении.
Правила оповещения (alert)
Скриншот: правило оповещения

| Поле | Описание |
|---|---|
| Название | Обязательное. После создания не изменяется. |
| Время ожидания | Лаг перед отправкой: система ждёт, сохранится ли состояние по выражению; если да — оповещение отправляется. |
| Критичность | Записывается в лейбл severity. Если подходящего уровня нет — оставьте Не выбрано и задайте критичность лейблом (значение поля не перезаписывает лейбл). |
| Ссылка на решение | Аннотация runbook_url. |
| Короткое описание | Аннотация summary. |
| Описание | Аннотация description. |
| Выражение | Обязательное. Prometheus (PromQL) или Graphite — по типу выражений группы. |
| Лейблы, аннотации | Дополнительные метаданные. |
Уровни критичности:
- Не выбрано (по умолчанию; можно использовать вместе с лейблом
severity, заданным вручную) - Авария (Emergency) — система недоступна для использования
- Тревога (Alert) — требуется немедленная реакция
- Опасность (Critical) — критическое состояние
- Ошибка (Error) — состояние ошибки
- Предупреждение (Warning) — состояние может привести к сбою
- Уведомление (Notice) — в пределах нормы, но стоит обратить внимание
- Инфо (Info) — информационное сообщение
- Отладка (Debug) — сообщение для отладки
Обратите внимание! Если в правиле есть аннотации с ключами description, summary или runbook_url, они перезаписываются значениями из полей формы.
На созданном правиле доступны кнопки Сохранить и Удалить правило.
По умолчанию оповещения маршрутизируются в кластер мониторинга VictoriaMetrics в кластере управления. Сработавшие оповещения отображаются в интерфейсе кластера в разделе Оповещения → Просмотр оповещений.
Для дополнительной маршрутизации создайте получателей и маршруты. Чтобы задать интервалы, когда оповещения не приходят, настройте временные интервалы и укажите их в маршрутах.
Пример правила оповещения
Для проверки создайте правило, срабатывающее при создании нового Pod в кластере Kubernetes. В разделе Правила оповещения создайте группу с типом правил оповещения (alert) и добавьте правило:
sum by(namespace, pod) (increase(kube_pod_created[5m])) > 0
Как работает выражение:
kube_pod_created— время создания каждого Pod (Unix timestamp)increase(...[5m])— число новых значений за последние 5 минутsum by(namespace, pod)— группировка по namespace и имени Pod> 0— создан хотя бы один новый Pod
Для удобства добавьте:
- короткое описание:
"New pod created in {{ $labels.namespace }}"(см. скриншот ниже) - описание:
"Pod {{ $labels.pod }} was created in namespace {{ $labels.namespace }}"(см. скриншот ниже)
Итоговый вид правила (см. скриншот ниже):
Пример правила оповещения с выражением PromQL и аннотациями

Правила записи (record)
Предварительно вычисляют выражения и сохраняют результат как временные ряды — ускоряет повторные запросы, в том числе на дашбордах.
Скриншот: правило записи

| Поле | Описание |
|---|---|
| Название | Обязательное. После создания не изменяется. |
| Выражение | Обязательное. Prometheus (PromQL) или Graphite — по типу выражений группы. |
| Лейблы | Дополнительные метаданные. |
На созданном правиле доступны кнопки Сохранить и Удалить правило.
Получатели (receivers)
По умолчанию оповещения маршрутизируются в кластер мониторинга VictoriaMetrics в кластере управления. Сработавшие оповещения отображаются в интерфейсе кластера в разделе Оповещения → Просмотр оповещений.
Для дополнительной маршрутизации создайте получателей и маршруты. При необходимости задайте временные интервалы, в которые оповещения не приходят, и укажите их в маршрутах.
Страница Оповещения → Получатели — таблица с полями:
- Имя получателя (есть фильтрация по имени);
- Тип — выбор из списка:
default,webhook,email,telegram.
На странице можно добавить нового получателя или удалить ранее созданного.
Получатель devnull (тип default) создаётся по умолчанию, блокирует отправку оповещений; его нельзя удалить или изменить. При добавлении нового получателя тип default недоступен для выбора.
При создании получателя укажите:
- Имя получателя (обязательное поле);
- Тип получателя:
webhook,emailилиtelegram.
В зависимости от типа набор полей конфигурации разный. Подробнее по типам:
Сводка полей по типам (для быстрой настройки в одном месте):
Получатели оповещений

| Тип | Назначение |
|---|---|
| webhook | Отправка в сервисы агрегации, service-desk, task-manager. Обязательно: URL-адрес. |
| SMTP. Обязательно: SMTP сервер, e-mail получателя. Gmail требует авторизацию. | |
| telegram | Telegram-бот. Токен бота (от @BotFather), идентификатор чата. |
Маршруты (routes)
Все маршруты формируются в одном конфигурационном файле. Первым заполняется корневой маршрут, далее настраиваются подмаршруты.
Маршруты задают, куда и при каких условиях отправлять оповещения.
Скриншот: маршруты

Параметры маршрута:
| Параметр | Описание |
|---|---|
| Получатель | Выбор из списка получателей. По умолчанию выбран дефолтный получатель. |
| Время ожидания до отправки первичных оповещений по группе | Временной лаг до первоначальной отправки; может отбрасывать ложные срабатывания. |
| Время ожидания до отправки обновлённых оповещений по группе | Лаг до отправки изменений по ранее отправленному оповещению. |
| Время ожидания до повторной отправки оповещений по группе | Лаг до повторной отправки ранее отправленных оповещений. |
| Совпадающие лейблы оповещений маршрутизации | Лейблы, по которым оповещение попадает на маршрут. |
| Ключи совпадающих лейблов для группировки | По каким ключам сгруппировать оповещения среди выбранных в совпадающих лейблах. |
| Интервалы блокировки оповещения | Ранее созданные временные интервалы, когда приостанавливать отправку по маршруту. |
Подмаршруты задают более детальную маршрутизацию среди групп, выбранных в корневом маршруте. В подмаршруте укажите, требуется ли продолжить обработку оповещений одной группы в других подмаршрутах. Группа определяется в корневом маршруте.
Временные интервалы (time_intervals)
На странице Добавить временной интервал задают интервалы месяцев, дней месяца, дней недели и часовых диапазонов для заглушения отправки оповещений. Эти интервалы используются в конфигурации маршрутов.
Скриншот: временные интервалы

Интервалы, охватывающие несколько смежных элементов времени, объединяются в диапазоны. Для выделения можно использовать Shift. Кнопка Выбрать всё выбирает все элементы; повторное нажатие снимает выбор.
Если в созданной конфигурации не задано ни одного значения, это равнозначно выбранным всем значениям. Например, если указаны дни недели, но не выбраны месяцы, эти дни недели действуют в каждом месяце.
Блокировка оповещений (inhibit)
На странице Блокировка оповещений настраивают критерии, по которым оповещения блокируются (не отправляются).
Скриншот интерфейса платформы

| Параметр | Описание |
|---|---|
Ключи лейблов для совпадения (equal) |
Список ключей лейблов, значения которых должны совпадать у исходного и целевого оповещения, чтобы блокировка сработала. |
о каким значениям лейблов отправлять оповещения (target_matchers) |
Целевые лейблы оповещений, при совпадении значений которых, оповещения будут отправлены. |
При наличии каких оповещений блокировать (source_matchers) |
Лейблы исходных оповещений, наличие которых вызывает блокировку целевых. Целевые оповещения не отправляются, пока активно хотя бы одно исходное. |
Порядок настройки
- Убедитесь, что в нужном кластере включены и работают сервисы мониторинга (см. Условия работы алертинга).
- При необходимости создайте группу правил и добавьте правила (alert или record).
- Создайте получателей (Email, Telegram, Webhook) при необходимости внешней доставки.
- При необходимости задайте временные интервалы и укажите их в маршрутах.
- Настройте маршруты — получатель, лейблы, интервалы.
- При необходимости настройте блокировку оповещений (inhibit).
Дополнительно
- Локальный алертинг, алертинг по логам, проверка и устранение неполадок — остальные страницы раздела «Оповещения».
- Подробнее об архитектуре — Архитектура сервисов мониторинга.