Настройка через файл
Файл конфигурации агента зависит от варианта его запуска.
Варианты запуска агента
Запуск с параметром
--upstreamAddr
Все бинарники загружаются с AM (Astra Monitoring)
При первичной регистрации получает дефолтный конфиг
При последующих запусках конфиг загружается из AM
Алгоритм запуска
Запуск с параметрами командной строки
Инициализация менеджеров с дефолтными настройками
Проверка наличия файлов для всех менеджеров (без падения при отсутствии)
Регистрация в Config API и получение дефолтного конфига
Загрузка недостающих бинарников
Запуск менеджеров, получение новых конфигов и отправка данных
Параметр
general.load_binaries
определяет возможность загрузки бинарников с AMЗапуск с настройками из YAML-файла
При первичной регистрации переданный конфиг сохраняется в AM
При последующих запусках конфиг загружается из AM
Алгоритм запуска
Загрузка настроек из YAML-конфига
Инициализация всех менеджеров
Проверка наличия файлов:
Если файлов нет и скачивание включено - запоминаем и качаем после регистрации
Если файлов нет и скачивание отключено - завершение работы
Регистрация в Config API
Загрузка недостающих файлов (если включено)
Запуск менеджеров, получение новых конфигов и отправка данных
Полный список параметров конфигурации
### Основные настройки запуска бинарника
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: ""
# По умолчанию: "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
### Настройки отправки данных
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 + "/metrics/vmagent"
# Валидация: корректное имя файла/директории в Linux или Windows
# Описание: путь до vmagent
path: ""
# По умолчанию: ":9703"
# Валидация: ip:port
# Описание: адрес vmagent для получения метрик в push режиме и информации о работе
server_address: ""
# По умолчанию: general.base_directory + "/metrics/vmagent.yaml"
# Валидация: корректное имя файла/директории в Linux или Windows
# Описание: путь к файлу, в который записывается конфиг vmagent перед запуском
save_config_path: ""
# По умолчанию: false
# Описание: использовать локальный конфиг, сохраненный в save_config_path, не создавая новый
use_local_config: false
# По умолчанию: general.base_directory + "/metrics/vmagent.log"
# Валидация: корректное имя файла/директории в Linux или Windows
# Описание: путь к файлу, в который записывается лог vmagent
# ! Если указать log_file: "", то логирования не будет, так его можно отключить
log_file: ./data/metrics/vmagent.log
# По умолчанию: ""
# Валидация: "debug" | "info" | "warn" | "error"
# Описание: уровень логирования для vmagent
log_level: ""
# По умолчанию: general.base_directory + "/metrics/data/"
# Валидация: корректное имя файла/директории в Linux или Windows
# Описание: папка, в которой сохраняются данные vmagent при недоступности remote write
# ! Если указать cache_directory: "", то кэширования не будет, так его можно отключить
cache_directory: ./data/metrics/data/
# По умолчанию: "/health"
# Валидация: путь со слэшом вначале
# Описание: путь, по которому обращаться в metrics.server_address для получения информации о работе vmagent
# ! Если указать health_path: "", то проверок не будет, так их можно отключить
health_path: /health
# По умолчанию: 20s
# Валидация: health_interval >= 100ms
# Описание: интервал healthcheck проверок vmagent (не рекомендуется ставить меньше 1 секунды)
health_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 + "/logs/vector"
# Валидация: корректное имя файла/директории в Linux или Windows
# Описание: путь до vector
path: ""
# По умолчанию: ":9704"
# Валидация: ip:port
# Описание: адрес vector для получения логов в push режиме и информации о работе
server_address: ""
# По умолчанию: general.base_directory + "/logs/vector.yaml"
# Валидация: корректное имя файла/директории в Linux или Windows
# Описание: путь к файлу, в который записывается конфиг vector перед запуском
# Также в эту папку нужно складывать кастомные конфиги для вектора
save_config_path: ""
# По умолчанию: general.base_directory + "/logs/vector.log"
# Валидация: корректное имя файла/директории в Linux или Windows
# Описание: путь к файлу, в который записывается лог vector
# ! Если указать log_file: "", то логирования не будет, так его можно отключить
log_file: ./data/logs/vector.log
# По умолчанию: general.base_directory + "/logs/data/"
# Валидация: корректное имя файла/директории в Linux или Windows
# Описание: папка, в которой сохраняются данные vector при недоступности remote write
# ! Если указать cache_directory: "", то кэширования не будет, так его можно отключить
cache_directory: ./data/logs/data/
# По умолчанию: "/health"
# Валидация: путь со слэшом вначале
# Описание: путь, по которому обращаться в logs.server_address для получения информации о работе vector
# ! Если указать health_path: "", то проверок не будет, так их можно отключить
health_path: /health
# По умолчанию: 20s
# Валидация:health_interval >= 100ms
# Описание: интервал healthcheck проверок vector (не рекомендуется ставить меньше 1 секунды)
health_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 конфигураций вектора, которые нужно использовать для сбора логов
vector_config_ids: []
### Менеджер экспортеров, запускает экспортеры для предоставления метрик в 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
### Настройки логов бинарника
logger:
# По умолчанию: info
# Валидация: trace, debug, info, warn, error, disabled
# Описание: уровень логирования
level: ""
# По умолчанию: "", нет логирования в файл
# Валидация: корректное имя файла/директории в Linux или Windows
# Описание: путь к файлу, в который будут записаны логи бинарника
file: ""
# По умолчанию: "", обычное логирования zerolog console format с цветами
# Валидация: "", json, nocolor, disabled
# Описание: формат логирования в stderr
stderr: ""