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

Агент сбора метрик

Для сбора, фильтрации, агрегации и пересылки метрик в системы хранения (TSDB базы данных временных рядов) Памир использует агент сбора метрик. Он является связующим звеном между источниками данных (экспортерами) и хранилищем.

Ключевые функции:

  • Универсальный сбор данных

    • Pull-модель: опрашивает цели (targets), указанные в конфигурации заданий (Jobs), используя протоколы Prometheus.
    • Push-модель: принимает данные по протоколам InfluxDB, Graphite, OpenTSDB, DataDog и Prometheus remote_write.
  • Умная обработка

    • Relabeling: позволяет на лету изменять, добавлять или удалять теги у метрик (labels) до того, как данные будут отправлены в базу.
    • Фильтрация: можно отбрасывать ненужные метрики еще до того, как они попадут в хранилище, экономя место.
    • Stream Aggregation: умеет агрегировать данные «в потоке» (например, считать среднее или сумму за 1 минуту) и отправлять в базу уже готовый результат.
  • Надежность и буферизация

    • Если основная база данных временно недоступна, vmagent сохраняет метрики в локальный буфер на диске. Как только связь восстановится, он дошлет всё накопленное. Это критически важно для нестабильных сетей.

Конфигурация агента сбора метрик

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

  • Отображение - отображение агента
  • Системное имя - уникальное название агента (только латиница)
  • URI для получения конфигурации - ссылка на конфиг (доступна для копирования или открытия в новой вкладке)
  • Включить пересборку конфигурации - при включении разрешает добавлять задания, конфиг которых занесется в общий конфиг агента. Поле существует только у сохраненного агента.
  • Задания - список заданий для текущего агента. Если включена пересборка, конфигурация заданий добавляется в общий конфиг агента после нажатия кнопки «Сохранить».
  • Теги - список визуальных тегов, с возможностью создавать новые.
  • Конфигурация - конфигурация агента (в формате YAML).

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

global:
scrape_timeout: 10s
scrape_interval: 46s
scrape_configs:
- params:
module:
- http_2xx
job_name: http
metrics_path: /probe
http_sd_configs:
- url: http://monitoring:8004/v4/vmagent/vmagent/http/targets
relabel_configs:
- target_label: __param_target
source_labels:
- __address__
- target_label: instance
source_labels:
- __name
- replacement: blackbox-exporter:9115
target_label: __address__
- job_name: icmp
...

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

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

⚠️ Важное замечание о связи Агентов и Заданий (Jobs) В системе реестр агентов сбора метрик и реестр заданий существуют независимо друг от друга. При добавлении задания в агент, между ними создается лишь логическая связь.

При экспорте агента экспортируется только список имен связанных с ним заданий, но НЕ сама конфигурация этих заданий.

  • Если вам нужно перенести сами настройки заданий, их необходимо экспортировать отдельно из раздела «Задания».
  • Если вам нужно экспортировать Агент вместе с полными конфигурациями привязанных к нему заданий единым пакетом, используйте функционал Шаблонов мониторинга.

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

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

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

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

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

При экспорте агента формируется JSON-файл следующей структуры, описывающий основные параметры сущности:

{
"vmagents": [
{
"name": "vmagent", // Системное имя агента
"label": "vmagent", // Имя для отображения в интерфейсе
"tags": [ // Массив назначенных тегов
"VM-AGENT"
],
"config": "global:\n scrape_interval: 46s\n...", // Исходный YAML-код конфигурации агента (переносы строк экранированы как \n)
"enabled": true, // Статус активности агента (true/false)
"jobs": [ // Массив имен привязанных заданий. Сами настройки заданий здесь не хранятся!
"tcp",
"http",
"postgres_exporter",
"node_exporter"
]
}
]
}

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