Шаблоны мониторинга
Шаблон мониторинга — это предопределённая конфигурация или набор правил, который используется для сбора и анализа данных. Шаблоны упрощают настройку мониторинга, предоставляя готовые решения для типичных задач, таких как мониторинг серверов, баз данных, сетевых устройств или приложений.
Шаблон мониторинга является центральной сущностью системы мониторинга, объединяющей в себе все остальные компоненты: агенты сбора метрик, задания, агенты обработки правил и индикаторы здоровья. Именно поэтому экспорт шаблона мониторинга — это единственный способ перенести полную, самодостаточную конфигурацию мониторинга между стендами в рамках одной операции.
Основные компоненты шаблона мониторинга
- Область видимости КЕ — определяет, какие конфигурационные единицы (КЕ) попадают в область действия шаблона. Задаётся с помощью TQL-запроса, который описывает иерархию узлов и условия фильтрации.
- Метрики — определяет, какие данные собирать (например, использование CPU, памяти, количество запросов к веб-серверу). Каждая метрика привязана к узлу TQL, заданию (Job) и агенту сбора метрик, а также содержит шаблон формирования таргетов.
- Индикаторы здоровья — предопределённые правила для создания алертов о проблемах (например, если использование CPU превышает 90%). Индикатор может быть связан с агентом обработки правил.
Конфигурация шаблона мониторинга
Конфигурирование шаблона выполняется на странице Главная/Настройки/Мониторинг/Шаблоны мониторинга.
- Отображение — имя шаблона для отображения в интерфейсе
- Системное имя — уникальное название шаблона (только латиница)
- Описание — текстовое описание назначения шаблона
- Область видимости КЕ (TQL-запрос) — визуальный редактор TQL-запроса, определяющий, к каким КЕ из CMDB применяется шаблон. Запрос описывает граф узлов (типов КЕ) и рёбер (связей между ними), а также условия фильтрации для каждого узла.
- Метрики — список метрик, привязанных к узлам TQL. Для каждой метрики указываются задание (Job), агент сбора метрик и шаблон таргетов (Jinja2).
- Индикаторы здоровья — список индикаторов, определяющих правила алертинга. Каждый индикатор привязан к узлу TQL, типу индикатора здоровья и агенту обработки правил.
Импорт и Экспорт шаблонов мониторинга
Система позволяет выгружать полные конфигурации шаблонов мониторинга в виде JSON-файла для резервного копирования или переноса на другие стенды, а также загружать их из ранее выгруженного файла. Управление осуществляется через выпадающее меню рядом с кнопкой «Добавить» в левой панели списка шаблонов.
✅ Шаблон мониторинга — единый пакет для переноса
В отличие от отдельного экспорта агентов сбора метрик (которые выгружают только имена связанных заданий, но не их конфигурации) и отдельного экспорта заданий (которые выгружают только имена связанных агентов), при экспорте шаблона мониторинга выгружается вся связанная конфигурация целиком:
- TQL-запрос (область видимости КЕ) — полный граф узлов и рёбер с условиями фильтрации
- Метрики — включая шаблоны формирования таргетов (Jinja2)
- Задания (Jobs) — полные YAML-конфигурации заданий, привязанных к метрикам шаблона, с указанием имён связанных агентов
- Агенты сбора метрик — полные конфигурации (YAML) агентов, используемых в метриках шаблона, включая списки всех привязанных к ним заданий
- Индикаторы здоровья — правила алертинга, включая выражения (expr), пороги срабатывания, severity, аннотации и зависимости между индикаторами
- Типы индикаторов здоровья — конфигурации типов индикаторов, используемых в шаблоне
- Агенты обработки правил — полные конфигурации (YAML) агентов, выполняющих проверку правил алертинга
Это делает экспорт шаблона мониторинга самодостаточным: для разворачивания мониторинга на новом стенде достаточно импортировать один файл.
⚠️ Важные замечания при импорте
- Типы КЕ и атрибуты в CMDB должны существовать на целевом стенде. Шаблон ссылается на типы КЕ (например,
pamir_microservice,patgresql_pamir) и их атрибуты — если их нет в CMDB целевого стенда, область видимости TQL не вернёт результатов, и таргеты не будут сгенерированы.- Экспортёры (blackbox-exporter, postgres-exporter и т.д.) должны быть развёрнуты и доступны по сети на целевом стенде.
- При импорте система проверяет конфликты имён для всех вложенных сущностей: шаблонов, заданий, агентов сбора метрик и агентов обработки правил. Для каждого конфликта необходимо выбрать действие.
Экспорт шаблонов
- Откройте выпадающее меню рядом с кнопкой «Добавить» и активируйте переключатель «Выбор».
- В списке слева отметьте галочками шаблоны, которые необходимо выгрузить.
- Снова откройте меню и нажмите «Экспорт». Будет скачан единый JSON-файл.
Импорт шаблонов
- В выпадающем меню выберите «Импорт».
- В открывшемся окне прикрепите ранее выгруженный JSON-файл и нажмите «Анализировать».
- Система проверит файл на наличие конфликтов с существующими сущностями (шаблоны, задания, агенты сбора метрик, агенты обработки правил). При обнаружении конфликта (статус ⚠️ Конфликт) для каждой сущности потребуется выбрать действие:
- Пропустить действие — оставить существующую сущность без изменений
- Заменить существующий — перезаписать настройки из файла
- Переименовать — загрузить сущность из файла под новым уникальным именем
- После разрешения всех конфликтов нажмите «Импорт» для завершения загрузки.
Структура файла конфигурации (JSON)
При экспорте шаблона мониторинга формируется JSON-файл, содержащий полную иерархию всех связанных сущностей. Ниже описана структура основных разделов:
{
"templates": [
{
"name": "pamir", // Системное имя шаблона
"label": "ПАМИР", // Имя для отображения в интерфейсе
"description": null, // Описание шаблона
"query": { // TQL-запрос (область видимости КЕ)
"nodes": [...], // Узлы графа (типы КЕ с условиями фильтрации)
"edges": [...], // Рёбра графа (связи между узлами)
"links": false // Флаг учёта связей
},
"tql_metrics": [ // Массив метрик шаблона
{
"name": "pamir_selfmonitoring", // Системное имя метрики
"description": null, // Описание метрики
"monitoring_template_name": "pamir", // Имя родительского шаблона
"node_id": "1", // ID узла TQL, к которому привязана метрика
"template": "- labels:\n ...", // Jinja2-шаблон формирования таргетов
"job": { // Полная конфигурация задания (Job)
"name": "pamir", // Системное имя задания
"label": "Памир", // Отображаемое имя
"tags": ["selfmonitoring"], // Теги задания
"config": "job_name: pamir\n...", // YAML-конфигурация задания
"vmagent_names": ["vmagent", "testik"] // Имена связанных агентов сбора
},
"vmagent_job": { // Связь метрика–агент–задание
"job_name": "pamir",
"vmagent_name": "vmagent"
},
"vmagent": { // Полная конфигурация агента сбора метрик
"name": "vmagent",
"label": "vmagent",
"tags": ["VM-AGENT"],
"config": "global:\n scrape_timeout: 10s\n...", // YAML-конфиг агента
"enabled": true,
"jobs": ["pamir", "node_exporter", "http", ...] // Все задания агента
}
}
],
"tql_hi_links": [ // Массив индикаторов здоровья
{
"id": "96830694-...", // UUID индикатора
"node_id": "1", // ID узла TQL
"hi_type_name": "license_state", // Имя типа индикатора здоровья
"type": "calculate", // Тип индикатора (calculate, metric и др.)
"metric_name": null, // Имя связанной метрики (если тип metric)
"rule": "", // Правило вычисления
"expression": 2, // Выражение/порог
"arguments": {}, // Аргументы правила
"template_name": "pamir", // Имя родительского шаблона
"vmalert_names": ["vmalert"], // Имена агентов обработки правил
"depend_hi_link_ids": [ // Зависимости от других индикаторов
{
"hi_link_id": "b14db5f8-...",
"link_id": "f3e9a888-...",
"src_node_id": "10",
"hi_type_name": "license_state"
}
],
"hi_type": { // Конфигурация типа индикатора здоровья
"name": "license_state",
"label": "Состояние лицензии",
"description": "",
"template": "",
"exporter_name": null,
"tags": [],
"exporter": null
},
"vmalert": { // Полная конфигурация агента обработки правил
"name": "vmalert",
"label": "vmalert",
"tags": ["default"],
"config": "groups:\n- name: pamir\n rules:\n - for: 5m\n...", // YAML с правилами
"managed_by": "SYSTEM",
"deduplication_group_by_labels": [],
"deduplication_ignore_labels": []
}
}
]
}
]
}
Описание ключевых разделов файла
Раздел query — TQL-запрос
Описывает граф области видимости шаблона:
| Поле | Описание |
|---|---|
nodes | Массив узлов графа. Каждый узел описывает тип КЕ (name), условия фильтрации (conditions), псевдоним (alias), отображаемое имя (display_name) и позицию в визуальном редакторе (position). |
edges | Массив рёбер графа. Каждое ребро описывает тип связи (name, например association), источник (source) и цель (target) по ID узлов, а также ограничения кардинальности (limitations_source, limitations_target). |
links | Флаг учёта косвенных связей между КЕ. |
Раздел tql_metrics — Метрики
Каждая метрика содержит:
| Поле | Описание |
|---|---|
name | Системное имя метрики (латиница, цифры, _). |
node_id | Идентификатор узла TQL, к экземплярам которого привязывается метрика. |
template | Jinja2-шаблон для динамического формирования таргетов на основе КЕ из CMDB. |
job | Полная конфигурация задания — включает YAML-код (config), теги, имена связанных агентов (vmagent_names). |
vmagent_job | Связка «задание–агент», определяющая, какой агент использует данное задание для этой метрики. |
vmagent | Полная конфигурация агента сбора метрик — включает YAML-код (config), статус активности (enabled), список всех привязанных заданий (jobs). |
Раздел tql_hi_links — Индикаторы здоровья
Каждый индикатор содержит:
| Поле | Описание |
|---|---|
id | Уникальный UUID индикатора. |
node_id | Идентификатор узла TQL, к которому привязан индикатор. |
hi_type_name | Системное имя типа индикатора здоровья. |
type | Тип индикатора (calculate — вычисляемый, metric — на основе метрики и др.). |
rule | Правило вычисления состояния индикатора. |
expression | Выражение или порог срабатывания. |
vmalert_names | Массив имён агентов обработки правил, выполняющих проверку. |
depend_hi_link_ids | Массив зависимостей от других индикаторов здоровья (для каскадного вычисления состояний). |
hi_type | Конфигурация типа индикатора — включает имя, описание, шаблон, связанный экспортёр. |
vmalert | Полная конфигурация агента обработки правил — включает YAML с группами правил алертинга, тип управления (managed_by), настройки дедупликации. |
Связанные разделы
- Пакет конфигураций (Настройки → Система)