SensusAgent/docs/collectors.md
Sergey Antropoff 5fa101dfff feat: добавлен коллектор proxvmservices для обнаружения сервисов на VM
- Создан новый коллектор proxvmservices для обнаружения и мониторинга сервисов
- Поддержка PostgreSQL с Patroni (кластер, репликация, конфигурация)
- Поддержка etcd кластера (члены, лидер, здоровье)
- Поддержка остальных сервисов: Redis, ClickHouse, RabbitMQ, Kafka, MongoDB, Kubernetes
- Добавлен в Makefile и конфигурацию агента
- Обновлены групповые переменные Ansible для включения в группу proxvms
- Исправлены проблемы с шаблонами Ansible (конфигурация и systemd unit)
- Создана подробная документация
- Протестирован на удаленных серверах через Ansible

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-09-15 17:04:47 +03:00

5.2 KiB
Raw Permalink Blame History

Коллекторы

Автор: Сергей Антропов, сайт: https://devops.org.ru

Коллектор — это модуль, который исполняется агентом по расписанию и выводит результат в формате JSON в stdout. Агент объединяет вывод всех активных коллекторов в один JSON-документ.

Размещение исходников и артефактов:

  • Исходники Go-коллекторов: src/collectors/<name>
  • Собранные бинарники/скрипты: bin/agent/collectors/<name>

Требования к коллектору:

  • Вывод строго в формате JSON в stdout (одна строка или валидный JSON-объект)
  • Отсутствие побочного вывода в stderr/stdout кроме JSON (для корректного парсинга)
  • Завершение за время, не превышающее timeout в конфигурации

Пример внешнего скрипта-коллектора (bin/agent/collectors/sample.sh):

#!/usr/bin/env sh
set -eu
echo '{"sample": {"ok": true, "ts": '"$(date +%s)"'}}'

Пример описания коллектора в bin/agent/config.yaml:

collectors:
  system:
    enabled: true
    type: exec
    key: system
    interval: "30s"
    timeout: "8s"
    exec: "./collectors/system"
    platforms: [linux]

Сборка Go-коллекторов через Makefile (в Docker):

make collectors        # текущая платформа
make collectors-linux  # linux/amd64
make collectors-darwin # darwin/arm64

Рекомендации по разработке:

  • Следуйте единому JSON-стилю и ключам, не допускайте дублирования имен ключей между коллекторами
  • Логирование делайте в stderr, чтобы не мешать JSON
  • Ограничивайте потребление ресурсов и время выполнения
  • На стороне агента используйте interval ≥ 10s для тяжелых коллекторов

Доступные коллекторы

Встроенные коллекторы

  • system - системные метрики (CPU, RAM, сеть, диски, обновления) - Linux
  • uptime - время работы системы - Linux/macOS
  • macos - специфичные для macOS метрики (sysctl + system_profiler) - macOS
  • hba - информация о RAID/HBA контроллерах и массивах - Linux
  • sensors - данные датчиков температуры/напряжения (lm-sensors, IPMI) - Linux
  • docker - информация о Docker контейнерах, сетях, томах и версиях - Linux/macOS
  • gpu - информация о GPU устройствах (NVIDIA/AMD) с агрегированной статистикой - Linux
  • kubernetes - метрики Kubernetes кластера через kubectl - Linux/macOS
  • proxcluster - информация о Proxmox кластере (ноды, хранилища, кворум) - Linux
  • proxnode - информация о Proxmox ноде (ресурсы, сервисы, диски) - Linux
  • proxvms - информация о виртуальных машинах и контейнерах Proxmox - Linux
  • proxvmsystem - системные метрики с machine_uid для Proxmox VM/контейнеров - Linux
  • proxvmservices - обнаружение и мониторинг сервисов на VM (PostgreSQL, etcd, Redis, ClickHouse, RabbitMQ, Kafka, MongoDB, Kubernetes) - Linux

Документация коллекторов

  • proxcluster - сбор информации о Proxmox кластере
  • gpu - сбор информации о GPU устройствах с агрегированной статистикой
  • proxnode - сбор информации о Proxmox ноде
  • proxvms - сбор информации о виртуальных машинах и контейнерах Proxmox
  • proxvmsystem - системные метрики с machine_uid для Proxmox VM/контейнеров
  • proxvmservices - обнаружение и мониторинг сервисов на VM
  • system - сбор системных метрик
  • docker - сбор информации о Docker контейнерах
  • hba - сбор информации о RAID/HBA контроллерах
  • sensors - сбор данных датчиков
  • kubernetes - сбор метрик Kubernetes кластера
  • macos - сбор специфичных для macOS метрик
  • uptime - сбор времени работы системы