Перейти к основному содержимому
Версия: 2.0 (WIP)

Агент обработки правил

Компонент отвечает за проверку правил (rules) и создание алертов. Он постоянно опрашивает базу данных, выполняет заданные запросы и, если результат выходит за рамки нормы, отправляет уведомление.

Основные задачи агента:

  • Alerting Rules (Правила алертинга) - Проверяет состояние системы. Например: «Если загрузка CPU > 90% в течение 5 минут, создай алерт».
  • Recording Rules (Правила записи) - Предварительно вычисляет сложные и тяжелые запросы и сохраняет их результат как новую метрику.

Конфигурация агента обработки правил

Конфигурирование агента выполняется на странице Главная/Настройки/Мониторинг/Агенты обработки правил.

  • Отображение - отображение агента
  • Системное имя - уникальное название агента (только латиница)
  • URL для получения конфигурации - ссылка на конфиг
  • URL для обработки алертов - ссылка для отправки сработавших уведомлений
  • Теги - список визуальных тегов, с возможностью создавать новые
  • Группировка по лейблам - поле с возможностью добавления лейблов из конфига агента, по которым будет производиться группировка алертов
  • Игнорируемые лейблы - поле с возможностью добавления лейблов, которые будут вырезаны из алертов перед обработкой
  • Управление - выбор способа управления конфигурацией (после сохранения агента нельзя будет изменить тип управления):
    • SYSTEM - конфигурация правил алертинга будет автоматически добавляться и управляться системой через Индикаторы здоровья (Шаблоны мониторинга).
    • USER - конфигурацию правил алертинга или записи (recording rules) создает и редактирует пользователь вручную.
  • Конфигурация - конфигурация агента (в формате YAML)

Пример собранной конфигурации агента:

groups:
- name: HostAlerts
rules:
- alert: HighCpuUsage
expr: sum(rate(node_cpu_seconds_total{mode="idle"}[5m])) by (instance) < 0.1
for: 5m
labels:
severity: critical
annotations:
summary: "Высокая нагрузка на CPU: {{ $labels.instance }}"

Основные параметры агента

ключ YAMLОписание
groupsСписок групп правил. Правила внутри одной группы выполняются последовательно.
nameНазвание группы правил.
rulesСписок самих правил (alert или record).
alertНазвание алерта.
exprЗапрос на языке MetricsQL/PromQL, который проверяет условие.
forВремя, в течение которого условие expr должно быть истинным, чтобы алерт сработал (защита от «флэппинга»).
labelsДополнительные метки, добавляемые к конкретному алерту (например, severity: critical).
annotationsОписательные поля для человека (текст сообщения, ссылка на инструкцию).

Импорт и Экспорт агентов обработки правил

Система позволяет выгружать конфигурации агентов обработки правил в виде JSON-файла для бэкапа или переноса на другие стенды. Управление осуществляется через выпадающее меню рядом с кнопкой «Добавить» в левой панели списка агентов.

⚠️ Важное замечание о связях с Шаблонами мониторинга В отличие от агентов сбора метрик, агенты обработки правил не связаны с Заданиями (jobs). Их работа неразрывно связана с Шаблонами мониторинга. При настройке Индикатора здоровья внутри Шаблона пользователь выбирает, какой именно агент обработки правил будет выполнять проверку (как правило, в системе используется один такой агент для всех задач).

При экспорте агента обработки правил его связи с Шаблонами мониторинга НЕ выгружаются. Если вам необходимо перенести на другой стенд логику работы алертов (правила + связи с КЕ), вам необходимо экспортировать сам Шаблон мониторинга из соответствующего раздела системы.

Экспорт агентов

  1. Откройте выпадающее меню рядом с кнопкой «Добавить» и активируйте переключатель «Выбор».
  2. В списке слева отметьте галочками агенты, которые необходимо выгрузить.
  3. Снова откройте меню и нажмите «Экспорт». Будет скачан единый JSON-файл.

Импорт агентов

  1. В выпадающем меню выберите «Импорт».
  2. Прикрепите ранее выгруженный JSON-файл и нажмите «Анализировать».
  3. Система проверит файл на конфликты имен с существующими агентами. При наличии конфликта (статус ⚠️ Конфликт) выберите действие:
  • Заменить существующий (перезаписать настройки из файла)
  • Переименовать (загрузить агент под новым именем)
  • Пропустить действие (отменить импорт для данного агента)
  1. Нажмите «Импорт» для завершения загрузки.

Структура файла конфигурации (JSON)

Ниже представлен пример структуры JSON-файла, формируемого при экспорте. Он содержит системные настройки агента и сгенерированный YAML-код правил:

{
"vmalerts": [
{
"name": "vmalert", // Системное имя агента
"label": "vmalert", // Имя для отображения в интерфейсе
"tags": [ // Визуальные теги
"default"
],
"config": "groups:\n- name: pamir\n rules:\n - for: 5m\n...", // Исходный YAML-код с правилами алертинга (переносы строк экранированы как \n)
"managed_by": "SYSTEM", // Тип управления конфигурацией (SYSTEM или USER)
"deduplication_group_by_labels": [], // Массив лейблов для группировки
"deduplication_ignore_labels": [] // Массив игнорируемых лейблов
}
]
}

Связанные разделы