SensusAgent/docs/config.md

4.3 KiB
Raw Blame History

Конфигурация

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

Основной файл конфигурации: bin/agent/config.yaml. Путь можно переопределить переменной окружения CONFIG_PATH.

Ключевые секции:

  • mode: режим вывода (stdout | kafka | auto)
  • log_level: уровень логирования (error | info | debug)
  • kafka: параметры продюсера (если используется mode: kafka)
  • collectors: список коллекторов и их расписание

Пример полного файла config.yaml:

mode: auto          # stdout | kafka | auto
log_level: info

kafka:
  enabled: false
  brokers: ["kafka:9092"]
  topic: "sensus.metrics"
  client_id: "sensusagent"
  enable_tls: false
  timeout: "5s"

collectors:
  system:
    enabled: true
    type: exec
    key: system
    interval: "30s"
    timeout: "8s"
    exec: "./collectors/system"
    platforms: [linux]
  uptime:
    enabled: false
    type: exec
    key: uptime
    interval: "10s"
    timeout: "5s"
    exec: "./collectors/uptime"
    platforms: [darwin, linux, windows]
  macos:
    enabled: false
    type: exec
    key: macos
    interval: "30s"
    timeout: "10s"
    exec: "./collectors/macos"
    platforms: [darwin]
  sample:
    enabled: false
    type: exec
    key: sample
    interval: "30s"
    timeout: "5s"
    exec: "./collectors/sample.sh"
    platforms: [darwin, linux]
  hba:
    enabled: true
    type: exec
    key: hba
    interval: "60s"
    timeout: "10s"
    exec: "./collectors/hba"
    platforms: [linux]

Пояснения по полям коллектора:

  • enabled: включить/выключить коллектор
  • type: тип коллектора, exec — внешний бинарь/скрипт
  • key: ключ верхнего уровня в итоговом JSON
  • interval: минимальный интервал между запусками (Go duration)
  • timeout: максимальное время выполнения (Go duration)
  • exec: относительный путь к исполняемому файлу в каталоге bin/agent/collectors
  • platforms: список платформ, на которых допустим запуск (linux, darwin, windows)

Переменные окружения:

  • CONFIG_PATH — путь к config.yaml
  • LOG_LEVEL — уровень логирования (error, info, debug)

Kafka (подробности):

  • kafka.enabled: включает отправку в Kafka
  • kafka.brokers: список брокеров вида host:port
  • kafka.topic: топик для публикации
  • kafka.client_id: идентификатор клиента
  • kafka.sasl_user / kafka.sasl_pass: параметры SASL/PLAIN (опционально)
  • kafka.enable_tls: включение TLS (опционально)
  • kafka.timeout: таймаут отправки

Пример конфигурации с Kafka и SASL/PLAIN:

mode: kafka
log_level: info
kafka:
  enabled: true
  brokers: ["kafka-1:9093", "kafka-2:9093"]
  topic: "sensus.metrics"
  client_id: "sensusagent"
  sasl_user: "metrics_user"
  sasl_pass: "${KAFKA_SASL_PASS}"   # рекомендуется через переменные окружения
  enable_tls: true
  timeout: "5s"
collectors:
  system:
    enabled: true
    type: exec
    key: system
    interval: "30s"
    timeout: "8s"
    exec: "./collectors/system"
    platforms: [linux]

Замечания по безопасности:

  • Никогда не храните пароли в открытом виде в репозитории
  • Используйте переменные окружения и секреты CI/CD
  • Минимизируйте разрешения пользователя Kafka и используйте отдельный topic

Советы по конфигурации:

  • Для тяжелых коллекторов увеличивайте interval и timeout
  • При использовании Kafka установите kafka.enabled: true и корректные brokers/topic
  • Следите, чтобы ключи key у разных коллекторов не пересекались