Настройка через файл


Файл конфигурации агента зависит от варианта его запуска.

Варианты запуска агента

  • Запуск с параметром --upstreamAddr

  • Все бинарники загружаются с AM (Astra Monitoring)

  • При первичной регистрации получает дефолтный конфиг

  • При последующих запусках конфиг загружается из AM

Алгоритм запуска

  1. Запуск с параметрами командной строки

  2. Инициализация менеджеров с дефолтными настройками

  3. Проверка наличия файлов для всех менеджеров (без падения при отсутствии)

  4. Регистрация в Config API и получение дефолтного конфига

  5. Загрузка недостающих бинарников

  6. Запуск менеджеров, получение новых конфигов и отправка данных

  • Параметр general.load_binaries определяет возможность загрузки бинарников с AM

  • Запуск с настройками из YAML-файла

  • При первичной регистрации переданный конфиг сохраняется в AM

  • При последующих запусках конфиг загружается из AM

Алгоритм запуска

  1. Загрузка настроек из YAML-конфига

  2. Инициализация всех менеджеров

  3. Проверка наличия файлов:

    • Если файлов нет и скачивание включено - запоминаем и качаем после регистрации

    • Если файлов нет и скачивание отключено - завершение работы

  4. Регистрация в Config API

  5. Загрузка недостающих файлов (если включено)

  6. Запуск менеджеров, получение новых конфигов и отправка данных

Полный список параметров конфигурации

### Основые настройки запуска бинарника
general:
  # По умолчанию: обязательный параметр
  # Валидация: proto://ip:port
  # Описание: адрес, куда отправлять данные
  upstream_address: http://127.0.0.1:9700

  # По умолчанию: ":9702"
  # Валидация: ip:port 
  # Описание: адрес сервера для проксирования запросов от локальных vmagent и vector
    # У сервера доступны следующие эндпоинты:
    # - /api/v1/info - информация об агенте
    # - /api/v1/config - конфигурация агента в виде yaml
    # - /api/v1/health - проверка работоспособности агента
    # - /api/v1/write/logs - эндпоинт для vector для записи логов и отправки в апстрим
    # - /api/v1/write/metrics - эндпоинт для vmagent для записи метрик и отправки в апстрим
  local_server: ""

  # По умолчанию: берется из файла './data/ID_agent', который генерируется автоматически
  # Валидация: ^[0-9][0-9]x0[0-9a-f]{12}$ | (example: "51x0412a8f882c5f")
  # Описание: идентификатор бинарника, используется в ConfigAPI для конфигурации и определения привязанного объекта
  id: ""

  # По умолчанию: ""
  # Валидация: длина < 100
  # Описание: выставляется в UI как имя Агента
  name: ""

  # По умолчанию: "./data"
  # Валидация: корректное имя файла/директории в Linux или Windows
  # Описание: директория с данными бинарника, где хранятся экспортеры, другие бинарники, их логи и тд
  base_directory: ""

  # По умолчанию: ""
  # Валидация: "debug" | "info" | "warn" | "error"
  # Описание: глобальный уровень логирования для агента, экспортеров, vmagent, vector
  log_level: ""

  # По умолчанию: хостнейм текущей машины, полученный от ОС
  # Валидация: длина < 256
  # Описание: имя хоста бинарника
  hostname: ""

  # По умолчанию: ""
  # Валидация: ip адрес
  # Описание: ip адрес агента, который подставить в лейблы метрик и использовать как адрес доступа к апстриму
  ip: ""

  # По умолчанию: "v1"
  # Валидация: "v1"
  # Описание: API версия бэкенда, используемая в формировании пути запроса
  api_version: ""

  # По умолчанию: false
  # Описание: запустить бинарник в тестовом режиме, он не общается с внешними сервисами 
  test_mode: false

  # По умолчанию: true if start from command line, false in all other cases
  # Описание: указывает, нужно ли загружать бинарные файлы при старте бинарника из Config API
  load_binaries: false

  # По умолчанию: false
  # Описание: не проверять сертификат при HTTPS запросах
  insecure: false

  # По умолчанию: true
  # Описание: запускает автоустановку экспортеров и поиск custom_target
  enable_auto_config: true

  # По умолчанию: 10m
  # Описание: интервал проверки автоустановки экспортеров и поиска custom_target
  auto_config_interval: 10m

### Настройки отправки данных
upstream:
  # По умолчанию: general.upstream_address
  # Описание: основной адрес апстримa
  # Валидация: proto://ip:port
  # ! Дублирует general.upstream_address, но имеет больший приоритет
  address: ""

  # По умолчанию: ""
  # Валидация: длина < 256
  # Описание: токен для аутентификации на апстриме
  auth_token: ""

  # По умолчанию: дублирует general.insecure
  # Описание: не проверять сертификат при HTTPS запросах
  insecure: false

  # По умолчанию: дублирует general.load_binaries
  # Описание: загружать бинарные файлы из апстрима
  load_binaries: false

  # По умолчанию: []
  # Описание: список дополнительных апстримов, в которые будут проксироваться запросы помимо основного из general.upstream_address
  upstreams:
    - # По умолчанию: обязательный параметр
      # Описание: имя апстрима
      name: ""

      # По умолчанию: обязательный параметр
      # Валидация: proto://ip:port
      # Описание: адрес апстрима
      address: ""

      # По умолчанию: ""
      # Валидация: длина < 256
      # Описание: токен для аутентификации на апстриме
      auth_token: ""


### Настройки проксирования запросов
proxy:
  # По умолчанию: general.local_server
  # Валидация: ip:port
  # Описание: адрес сервера для проксирования запросов от локальных vmagent и vector
  # ! Дублирует general.local_server, но имеет больший приоритет
    # У сервера доступны следующие эндпоинты:
    # - /api/v1/info - информация об агенте
    # - /api/v1/config - конфигурация агента в виде yaml
    # - /api/v1/health - проверка работоспособности агента
    # - /api/v1/write/logs - эндпоинт для vector для записи логов и отправки в апстрим
    # - /api/v1/write/metrics - эндпоинт для vmagent для записи метрик и отправки в апстрим
  local_server: ""
  
  # По умолчанию: "" (сервер отключен)
  # Валидация: ip:port
  # Описание: адрес HTTP прокси в формате ip:port
  http: ""

  # По умолчанию: "" (сервер отключен)
  # Валидация: ip:port
  # Описание: адрес HTTPS прокси в формате ip:port
  https: ""

  # По умолчанию: ""
  # Валидация:length < 256
  # Описание: токен для аутентификации на прокси
  auth_token: ""

  # По умолчанию: false
  # Описание: зарегистрироваться в Config API как прокси
  register: false

  # По умолчанию: "", используется захардкоженный сертификат
  # Валидация: корректное имя файла/директории в Linux или Windows
  # Описание: путь до файла с TLS сертификатом для HTTPS proxy server
  tls_cert_file: test/tls/cert.pem

  # По умолчанию: "", используется захардкоженный ключ
  # Валидация: корректное имя файла/директории в Linux или Windows
  # Описание: путь до файла с TLS ключом для HTTPS proxy server
  tls_key_file: test/tls/key.pem

  # По умолчанию: ""
  # Валидация: корректное имя файла/директории в Linux или Windows
  # Описание: путь до файла с логами запросов, проходящих через local sever и proxy server
  # ! Если указать log_requests_file: "", то логирования запросов не будет
  log_requests_file: ""

  # По умолчанию: false
  # Описание: кэшировать бинарные файлы, которые качает проксируемый агент
  cache_binaries: true


### Взаимодействие с Config API
watcher:
  # По умолчанию: ${GOOS}
  # Валидация: "darwin", "linux", "windows"
  # Описание: ОС для скачивания бинарников с Config API 
  os: ""

  # По умолчанию: ${GOARCH}
  # Валидация: "386", "amd64", "arm", "armv7", "arm64"
  # Описание: архитектура для скачивания бинарников с Config API
  arch: ""

  # По умолчанию: 4
  # Валидация: load_concurrency >= 1
  # Описание: сколько воркеров конкурентно скачивают бинарники
  load_concurrency: 4

  # По умолчанию: infinite
  # Описание: сколько делать попыток попытаться зарегистрироваться в Config API перед падением
  register_retry: 0

  # По умолчанию: 10s
  # Валидация: register_interval >= 1s
  # Описание: интервал между повторными регистрациями в Config API
  register_interval: ""

  # По умолчанию: 30s
  # Валидация: config_update_interval >= 1s
  # Описание: интервал между двумя проверками наличия новой конфигурации в Config API
  config_update_interval: ""

  # По умолчанию: 30s
  # Валидация: instance_send_interval >= 1s
  # Описание: интервал отправки текущей информации об инстансе в Config API
  instance_send_interval: ""

  # По умолчанию: 90s
  # Валидация: request_timeout >= 1s
  # Описание: таймаут HTTP запроса в Config API
  request_timeout: ""

  # По умолчанию: false
  # Описание: перетереть конфигурацию в Config API локальной конфигурацией из этого файла
  force_local: false

  # По умолчанию: false
  # Описание: сделать force_local: false в этом файле после запуска агента
  disable_force_local: false

  # По умолчанию: false
  # Описание: не использовать конфигурацию из Config API
  no_configuration: false


### Менеджер метрик, запускает vmagent для сбора метрик с HTTP серверов, предосавляющих метрики в prometheus формате
metrics:
  # По умолчанию: false
  # Описание: запустить ли vmagent
  enabled: false

  # По умолчанию: general.base_directory + "/vmagent/vmagent"
  # Валидация: корректное имя файла/директории в Linux или Windows
  # Описание: путь до vmagent
  path: ""

  # По умолчанию: "0.0.0.0:9703"
  # Валидация: ip:port
  # Описание: адрес vmagent для получения метрик в push режиме и информации о работе
  server_address: ""

  # По умолчанию: false
  # Описание: не проверять перед запуском, доступен ли адрес из поля server_address для прослушивания
  ignore_server_check: false

  # По умолчанию: general.base_directory + "/vmagent/configs/vmagent.yaml"
  # Валидация: корректное имя файла/директории в Linux или Windows
  # Описание: путь к файлу, в который записывается конфиг vmagent перед запуском
  save_config_path: ""

  # По умолчанию: false
  # Описание: использовать локальный конфиг, сохраненный в save_config_path, не создавая новый
  use_local_config: false

  # По умолчанию: general.base_directory + "/vmagent/logs/vmagent.log"
  # Валидация: корректное имя файла/директории в Linux или Windows
  # Описание: путь к файлу, в который записывается лог vmagent
  # ! Если указать log_file: "", то логирования не будет, так его можно отключить
  log_file: ./data/vmagent/logs/vmagent.log

  # По умолчанию: ""
  # Валидация: "debug" | "info" | "warn" | "error"
  # Описание: уровень логирования для vmagent
  log_level: ""

  # По умолчанию: general.base_directory + "/vmagent/data/"
  # Валидация: корректное имя файла/директории в Linux или Windows
  # Описание: папка, в которой сохраняются данные vmagent при недоступности remote write
  # ! Если указать cache_directory: "", то кэширования не будет, так его можно отключить
  cache_directory: ./data/vmagent/data/

  # По умолчанию: "/health"
  # Валидация: путь со слэшом вначале
  # Описание: путь, по которому обращаться в metrics.server_address для получения информации о работе vmagent
  # ! Если указать health_path: "", то проверок не будет, так их можно отключить
  health_path: /health

  # По умолчанию: 20s
  # Валидация: health_interval >= 100ms
  # Описание: интервал healthcheck проверок vmagent (не рекомендуется ставить меньше 1 секунды)
  health_interval: ""

  # По умолчанию: 10s
  # Валидация: update_info_interval >= 100ms
  # Описание: интервал обновления информации о vmagent
  update_info_interval: ""

  # По умолчанию: latest
  # Описание: версия для скачивания с Config API при включенном load_binaries
  version: ""

  # По умолчанию: 30s
  # Валидация: scrape_timeout >= 1s
  # Описание: таймаут запроса vmagent для получения метрик с экспортера
  scrape_timeout: ""

  # По умолчанию: []
  # Описание: описания целей наблюдения для vmagent кроме экспортеров из вкладки конфига exporters
  custom_targets:
    - # По умолчанию: обязательный параметр
      # Описание: уникальное имя цели наблюдения
      name: ""

      # По умолчанию: обязательный параметр
      # Валидация: ip:port
      # Описание: адрес цели наблюдения в формате ip:port
      target: ""

      # По умолчанию: "/metrics"
      # Валидация: путь со слэшом вначале
      # Описание: путь для получения метрик с цели наблюдения
      metrics_path: "/metrics"

      # По умолчанию: 30s
      # Валидация: scrape_interval >= 1s
      # Описание: интервал сбора метрик с цели наблюдения
      scrape_interval: 30s

      # По умолчанию: {}
      # Описание: дополнительные метки, которые будут добавлены к метрикам с этой цели наблюдения
      labels:
        a: b

      # По умолчанию: false
      # Описание: отключить сбор метрик с этой цели наблюдения
      disabled: true
    

### Менеджер логов, запускает vector для сбора логов с внутренних компонент агента/коллектора и с других источников
logs:
  # По умолчанию: false
  # Описание: запустить ли vector
  enabled: false

  # По умолчанию: general.base_directory + "/vector/vector"
  # Валидация: корректное имя файла/директории в Linux или Windows
  # Описание: путь до vector
  path: ""

  # По умолчанию: "0.0.0.0:9704"
  # Валидация: ip:port
  # Описание: адрес vector для получения логов в push режиме и информации о работе
  server_address: ""

  # По умолчанию: false
  # Описание: не проверять перед запуском, доступен ли адрес из поля server_address для прослушивания
  ignore_server_check: false

  # По умолчанию: general.base_directory + "/vector/configs/vector.yaml"
  # Валидация: корректное имя файла/директории в Linux или Windows
  # Описание: путь к файлу, в который записывается конфиг vector перед запуском
  # Также в эту папку нужно складывать кастомные конфиги для вектора
  save_config_path: ""

  # По умолчанию: general.base_directory + "/vector/logs/vector.log"
  # Валидация: корректное имя файла/директории в Linux или Windows
  # Описание: путь к файлу, в который записывается лог vector
  # ! Если указать log_file: "", то логирования не будет, так его можно отключить
  log_file: ./data/vector/logs/vector.log

  # По умолчанию: general.base_directory + "/vector/data/"
  # Валидация: корректное имя файла/директории в Linux или Windows
  # Описание: папка, в которой сохраняются данные vector при недоступности remote write
  # ! Если указать cache_directory: "", то кэширования не будет, так его можно отключить
  cache_directory: ./data/vector/data/

  # По умолчанию: "/health"
  # Валидация: путь со слэшом вначале
  # Описание: путь, по которому обращаться в logs.server_address для получения информации о работе vector
  # ! Если указать health_path: "", то проверок не будет, так их можно отключить
  health_path: /health

  # По умолчанию: 20s
  # Валидация: health_interval >= 100ms
  # Описание: интервал healthcheck проверок vector (не рекомендуется ставить меньше 1 секунды)
  health_interval: ""

  # По умолчанию: 10s
  # Валидация: update_info_interval >= 100ms
  # Описание: интервал обновления информации о векторе
  update_info_interval: ""

  # По умолчанию: latest
  # Описание: версия для скачивания с Config API при включенном load_binaries
  version: ""

  # По умолчанию: "", не используется
  # Валидация: корректное имя файла/директории в Linux или Windows
  # Описание: файл, куда записывать все логи, собираемые vector
  all_logs_file: ""

  # По умолчанию: false
  # Описание: выключить требование подтверждения remote write о получении пакета логов
  disable_acknowledgements: true
  
  # По умолчанию: []
  # Валидация: agent, exporters, vmagent, vmauth, custom, self, demo
  # Описание: список источников, откуда брать логи
  # ! Если указать sources: [], то логирования не будет, так его можно отключать без отключения vector
  sources: ["exporters", "custom"]

  # По умолчанию: false
  # Описание: добавить все возможные sources ("agent", "exporters", "vmagent", "custom")
  all_sources: false

  # По умолчанию: []
  # Валидация: корректный ID
  # Описание: список ID конфигураций вектора, которые нужно скачать при регистрации в Config API
  vector_config_ids: []

  # По умолчанию: []
  # Валидация: корректное имя файла/директории в Linux или Windows
  # Описание: список имен конфигураций вектора, которые нужно скачать при регистрации в Config API
  vector_config_names: []

  # По умолчанию: default buffer
  # Описание: настройки буферизации логов в векторе при отправке в апстрим
  upstream_buffer:
    # По умолчанию: disk
    # Описание: тип буферизации логов в векторе при отправке в апстрим
    # Валидация: disk | memory
    type: disk

    # По умолчанию: 0, отключено
    # Описание: максимальное количество событий в буфере
    max_events: 0

    # По умолчанию: 1073741824, 1024 MB
    # Описание: максимальный размер буфера в байтах
    max_size: 1073741824

    # По умолчанию: block
    # Описание: что делать, если буфер заполнен
    # Валидация: block | drop_newest
    when_full: block

  # По умолчанию: default batch
  # Описание: настройки пакетирования логов в векторе при отправке в апстрим
  upstream_batch:
    # По умолчанию: 500000, 50Kb
    # Описание: максимальный размер пакета в байтах
    max_bytes: 500000

    # По умолчанию: 0, отключено
    # Описание: максимальное количество событий в пакете
    max_events: 0

    # По умолчанию: 1
    # Описание: максимальное время ожидания событий в пакете в секундах перед отправкой
    timeout_secs: 1


### Менеджер SNMP, запускает snmp exporter для сбора метрик с SNMP устройств
snmp:
  # По умолчанию: false
  # Описание: запустить ли менеджер SNMP
  enabled: false
  
  # По умолчанию: general.base_directory + "/snmp/snmp_exporter"
  # Валидация: корректное имя файла/директории в Linux или Windows
  # Описание: путь до vector
  path: ""

  # По умолчанию: "0.0.0.0:9705"
  # Валидация: ip:port
  # Описание: адрес vector для получения логов в push режиме и информации о работе
  server_address: ""

  # По умолчанию: false
  # Описание: не проверять перед запуском, доступен ли адрес из поля server_address для прослушивания
  ignore_server_check: false

  # По умолчанию: general.base_directory + "/snmp/logs/snmp_exporter.yaml"
  # Валидация: корректное имя файла/директории в Linux или Windows
  # Описание: путь к файлу, в который записывается конфиг vector перед запуском
  # Также в эту папку нужно складывать кастомные конфиги для вектора
  save_config_path: ""

  # По умолчанию: general.base_directory + "/snmp/logs/snmp_exporter.log"
  # Валидация: корректное имя файла/директории в Linux или Windows
  # Описание: путь к файлу, в который записывается лог vector
  # ! Если указать log_file: "", то логирования не будет, так его можно отключить
  log_file: ./data/snmp/logs/snmp_exporter.log

  # По умолчанию: "/-/healthy"
  # Валидация: путь со слэшом вначале
  # Описание: путь, по которому обращаться в logs.server_address для получения информации о работе vector
  # ! Если указать health_path: "", то проверок не будет, так их можно отключить
  health_path: /-/healthy

  # По умолчанию: 20s
  # Валидация:health_interval >= 100ms
  # Описание: интервал healthcheck проверок vector (не рекомендуется ставить меньше 1 секунды)
  health_interval: ""

  # По умолчанию: 10s
  # Валидация: update_info_interval >= 100ms
  # Описание: интервал обновления информации о SNMP устройстве
  update_info_interval: ""

  # По умолчанию: latest
  # Описание: версия для скачивания с Config API при включенном load_binaries
  version: ""

  # По умолчанию: пусто
  # Валидация: корректное имя файла/директории в Linux или Windows
  # Описание: путь к файлу, в котором лежит конфиг для snmp_exporter для локального запуска
  exporter_config_path: ""

  # По умолчанию: false
  # Описание: включить ли отладку пакетов SNMP в логе snmp_exporter
  debug_packets: false

  # По умолчанию: []
  # Описание: список SNMP устройств для сбора метрик
  poll_targets: 
    - # По умолчанию: обязательный параметр
      # Описание: уникальное имя SNMP устройства
      name: ""

      # По умолчанию: обязательный параметр
      # Валидация: ip:port
      # Описание: адрес SNMP устройства
      target: ""

      # По умолчанию: 30s
      # Валидация: scrape_interval >= 1s
      # Описание: интервал сбора метрик с SNMP устройства
      scrape_interval: 30s

      # По умолчанию: {}
      # Описание: дополнительные метки, которые будут добавлены к метрикам с этого SNMP устройства
      labels:
        device_type: switch

      # По умолчанию: false
      # Описание: отключить сбор метрик с этого SNMP устройства
      disabled: false

      # По умолчанию: обязательный параметр
      # Валидация: длина < 256
      # Описание: имя технического аккаунта для аутентификации SNMP
      tech_account_name: ""

      # По умолчанию: обязательный параметр
      # Валидация: список строк
      # Описание: список модулей SNMP для использования при сборе метрик
      modules: []

      # По умолчанию: обязательный параметр
      # Валидация: "snmpv1" | "snmpv2c" | "snmpv3"
      # Описание: версия протокола SNMP
      version: ""

      # По умолчанию: обязательный параметр
      # Валидация: список строк
      # Описание: список имен MIB файлов из БД АМ для использования с этим устройством 
      mib_files_names: []

  # По умолчанию: адаптер запущен с настройками по умолчанию
  # Описание: конфигурация адаптера для приема SNMP trap сообщений
  trap_adapter:
      # По умолчанию: false
      # Описание: включить/выключить SNMP trap listener
      # Когда false, адаптер не будет запущен и не будет принимать trap сообщения
      enabled: false
      
      # По умолчанию: "0.0.0.0:9706"
      # Валидация: ip:port
      # Описание: адрес host:port, где SNMP trap listener будет принимать входящие trap сообщения
      # Примеры: "192.168.1.100:162", "0.0.0.0:9706"
      # Стандартный порт для SNMP trap - 162
      address: ""

      # По умолчанию: 1s
      # Валидация: send_interval >= 100ms
      # Описание: частота отправки обработанных trap сообщений в систему мониторинга
      # Минимальное значение: 100ms
      # Рекомендуемое значение: 1s для большинства случаев
      send_interval: 1s
      
      # По умолчанию: false
      # Описание: включить детальное логирование SNMP операций и обработки trap сообщений
      # При включении будет логироваться подробная информация о принятых trap и этапах их обработки
      debug: false

      # По умолчанию: {}
      # Описание: конфигурация SNMPv1/v2c trap listener
      snmpv1v2c:
        # По умолчанию: false
        # Описание: включить/выключить SNMPv1/v2c trap listener
        # Когда false, адаптер не будет принимать trap сообщения SNMPv1/v2c
        enabled: false

        # По умолчанию: []
        # Описание: список community строк для SNMPv1/v2c
        communities: []

        # По умолчанию: []
        # Описание: список имен аккаунтов, которые загружаются из Config API при запуске агента
        tech_account_names: []

      # По умолчанию: {}
      # Описание: конфигурация SNMPv3 trap listener
      snmpv3:
        # По умолчанию: false
        # Описание: включить/выклю  чить SNMPv3 trap listener
        # Когда false, адаптер не будет принимать trap сообщения SNMPv3
        enabled: false

        # По умолчанию: []
        # Описание: список имен аккаунтов, которые загружаются из Config API при запуске агента
        tech_account_names: []

        # По умолчанию: []
        # Описание: список пользователей SNMPv3 с настройками аутентификации и шифрования
        # Поддерживается несколько пользователей с разными уровнями безопасности
        # SNMPv3 обеспечивает улучшенную безопасность через пользовательскую аутентификацию и шифрование
        users:
          - # Обязательный параметр
            # Описание: уникальный идентификатор пользователя SNMPv3
            # Требуется для всех уровней безопасности
            username: ""
            
            # Обязательный параметр
            # Валидация: "noAuthNoPriv" | "authNoPriv" | "authPriv"
            # Описание: уровень безопасности для данного пользователя
            # - "noAuthNoPriv": без аутентификации и без шифрования (наименее безопасный, только для доверенных сетей)
            # - "authNoPriv": с аутентификацией, без шифрования (сообщения аутентифицируются, но передаются открытым текстом)
            # - "authPriv": с аутентификацией и шифрованием (наиболее безопасный, рекомендуется для production)
            security_level: ""
            
            # Условно обязательный параметр (требуется для "authNoPriv" и "authPriv")
            # Валидация: "MD5" | "SHA" | "SHA224" | "SHA256" | "SHA384" | "SHA512"
            # Описание: протокол аутентификации, обеспечивающий целостность сообщений
            # - "MD5": устаревший алгоритм, использовать только для совместимости со старыми системами
            # - "SHA": SHA-1, более старый но широко поддерживаемый
            # - "SHA256": рекомендуется для большинства случаев (256-битное SHA-2 хеширование)
            # - "SHA384": для высоконадежных сред (384-битное SHA-2 хеширование)
            # - "SHA512": максимальная безопасность (512-битное SHA-2 хеширование)
            auth_protocol: ""
            
            # Условно обязательный параметр (требуется для "authNoPriv" и "authPriv")
            # Описание: пароль для аутентификации пользователя
            # Должен быть достаточно сложным для обеспечения безопасности
            auth_password: ""
            
            # Условно обязательный параметр (требуется для "authPriv")
            # Валидация: "DES" | "AES" | "AES192" | "AES192C" | "AES256" | "AES256C"
            # Описание: протокол шифрования для обеспечения конфиденциальности сообщений
            # - "DES": старый стандарт шифрования с 56-битными ключами, рассмотрите использование AES для лучшей безопасности
            # - "AES": рекомендуемый стандарт шифрования с 128-битными ключами для большинства случаев
            # - "AES192": AES с 192-битными ключами для повышенной безопасности
            # - "AES256": AES с 256-битными ключами для максимальной безопасности
            # - "AES192C": AES с 192-битными ключами (Cisco-специфичная реализация)
            # - "AES256C": AES с 256-битными ключами (Cisco-специфичная реализация)
            priv_protocol: ""
            
            # Условно обязательный параметр (требуется для "authPriv")
            # Описание: пароль для шифрования сообщений
            # Должен отличаться от auth_password и быть достаточно сложным
            priv_password: ""
            
            # По умолчанию: ""
            # Описание: SNMP контекст для данного пользователя
            # Опциональное поле, предоставляющее дополнительное разграничение сообщений
            context_name: ""
      

### Менеджер IPMI, запускает ipmi_exporter для сбора метрик с BMC-контроллеров
ipmi:
  # По умолчанию: ""
  # Валидация: корректное имя файла/директории в Linux или Windows
  # Описание: путь к файлу конфигурации ipmi_exporter. Если не указан, генерируется автоматически.
  exporter_config_path: ""

  # По умолчанию: []
  # Описание: список целей для сбора метрик IPMI.
  targets:
    - # По умолчанию: обязательный параметр
      # Описание: уникальное имя цели.
      name: ""

      # По умолчанию: обязательный параметр
      # Валидация: ip:port или hostname
      # Описание: адрес цели (BMC-контроллера).
      target: ""

      # По умолчанию: 30s
      # Валидация: scrape_interval >= 1s
      # Описание: интервал сбора метрик с цели.
      scrape_interval: 30s

      # По умолчанию: обязательный параметр
      # Описание: имя технической учетной записи для доступа к цели.
      tech_account_name: ""

      # По умолчанию: ""
      # Описание: имя пользователя для подключения к BMC.
      username: ""

      # По умолчанию: ""
      # Описание: пароль для подключения к BMC.
      password: ""

      # По умолчанию: "user"
      # Валидация: "user" | "operator" | "admin"
      # Описание: уровень привилегий пользователя.
      privilege: "user"

      # По умолчанию: ["bmc", "sensor"]
      # Описание: список коллекторов для сбора данных (например, bmc, sensor, chassis, sel).
      collectors: []

      # По умолчанию: "lanplus"
      # Валидация: "lan" | "lanplus"
      # Описание: драйвер для подключения к BMC.
      driver: "lanplus"

      # По умолчанию: {}
      # Описание: дополнительные метки, которые будут добавлены к метрикам с этой цели.
      labels:
        key: value

      # По умолчанию: ""
      # Описание: список дополнительных аргументов для запуска ipmi_exporter.
      custom_args: ""

      # По умолчанию: []
      # Описание: список ID сенсоров, которые нужно исключить из сбора.
      exclude_sensor_ids: []

      # По умолчанию: []
      # Описание: флаги для обхода известных проблем в прошивках BMC.
      workaround_flags: []

      # По умолчанию: false
      # Описание: отключить сбор метрик с этой цели.
      disabled: false


### Менеджер экспортеров, запускает экспортеры для предоставления метрик в prometheus формате
exporters:
  # По умолчанию: false
  # Описание: запустить ли менеджер экспортеров
  enabled: false

  # По умолчанию: general.base_directory + "/exporters"
  # Валидация: корректное имя файла/директории в Linux или Windows
  # Описание: путь до папки с экспортерами
  directory: ""
  
  # По умолчанию: 20s
  # Валидация: health_interval >= 100ms
  # Описание: интервал healthcheck проверок экспореров (не рекомендуется ставить меньше 1 секунды)
  health_interval: ""

  # По умолчанию: false
  # Описание: отключить healthcheck проверки экспореров
  disable_health: true

  # По умолчанию: []
  # Описание: описание экспортеров, которые нужно запустить
  exporters: 
    - # По умолчанию: обязательный параметр
      # Валидация: корректное имя файла/директории в Linux или Windows
      # Описание: имя экспортера, используется для идентификации в логах и метриках
      name: ""

      # По умолчанию: обязательный параметр
      # Валидация: ip:port
      # Описание: адрес, на котором будет слушать сервер экспортера в формате ip:port
      address: ""

      # По умолчанию: "am"
      # Валидация: am | args | cfg | cfg_args | nothing
      # Описание: тип запуска экспортера
      start_type: am

      # По умолчанию: {general.base_directory}/exporters/{name}
      # Валидация: корректное имя файла/директории в Linux или Windows
      # Описание: путь до бинарника экспортера
      path: ""

      # По умолчанию: {}
      # Описание: дополнительные лейблы для метрик экспортера
      labels:
        a: a

      # По умолчанию: обязательный параметр для start_type: args | cfg_args
      # Описание: аргументы командной строки для запуска экспортера
      args: "-c config"

      # По умолчанию: false
      # Описание: отключить экспортер
      disabled: true

      # По умолчанию: {}
      # Описание: базовая конфигурация экспортера (используется для start_type: am)
      base:
        # По умолчанию: "/metrics"
        # Валидация: путь со слэшом вначале 
        # Описание: путь до метрик экспортера
        metrics_path: /metrics

        # По умолчанию: "30s"
        # Валидация: интервал >= 1s
        # Описание: интервал сбора метрик
        interval: 30s

        # По умолчанию: "/health"
        # Валидация: путь со слэшом вначале
        # Описание: путь до health check экспортера
        health_path: /health

        # Описание: настройки логирования экспортера
        logger:
          # По умолчанию: "info"
          # Валидация: trace, debug, info, warn, error, disabled
          # Описание: уровень логирования
          level: info

          # По умолчанию: general.base_directory + "/exporters/logs/{name}.log"
          # Валидация: корректное имя файла/директории в Linux или Windows
          # Описание: файл для записи логов
          file: test-1.log

          # По умолчанию: "json"
          # Валидация: "", json, nocolor, disabled
          # Описание: формат вывода в stderr (json или text)
          stderr: json

        # По умолчанию: false
        # Описание: собирать метрики go runtime
        go_metrics: true

        # По умолчанию: false
        # Описание: собирать метрики процесса
        proc_metrics: true

      # Описание: ПРИМЕР специфичной конфигурации экспортера, сохраняется as it is в yaml конфиг экспортера
      # ! Используется для start_type: am | cfg | cfg_args
      config:
        dns:
            srv: 127.0.0.1
            host: abc


### Настройки SNMP adapter для получения SNMP traps
snmp:
  # По умолчанию: false
  # Описание: запустить ли SNMP adapter
  enabled: false

  # По умолчанию: ./data/mibs
  # Валидация: корректное имя файла/директории в Linux или Windows
  # Описание: папка, в которой лежат MIB файлы
  mib_dir: ./data/mibs

  # По умолчанию: []
  # Валидация: корректное имя файла/директории в Linux или Windows
  # Описание: список MIB файлов
  mibs:
    - ./data/mibs/if-mib.txt

  # По умолчанию: 162
  # Описание: порт, на котором будет слушать SNMP adapter (UDP)
  port: 162

  # По умолчанию: 2c
  # Валидация: 1, 2c, 3
  # Описание: версия SNMP
  version: 2c


### Настройки логов бинарника
logger:
  # По умолчанию: info
  # Валидация: trace, debug, info, warn, error, disabled
  # Описание: уровень логирования
  level: ""

  # По умолчанию: "", нет логирования в файл
  # Валидация: корректное имя файла/директории в Linux или Windows
  # Описание: путь к файлу, в который будут записаны логи бинарника
  file: ""

  # По умолчанию: "", обычное логирования zerolog console format с цветами
  # Валидация: "", json, nocolor, disabled
  # Описание: формат логирования в stderr
  stderr: ""