Входы
Вход задается в секции routes
:input
. Общий формат описания входа:
- input:
plugin: ... # имя плагина
id: ... # (рекомендуемый) идентификатор входа, используется в метриках и логах
flow_control: # настройка инфраструктуры работы с сессиями
...
См. также настройка инфраструктуры работы с сессиями.
Вход agent_metrics
Вход собирает метрики работоспособности Yandex Unified Agent.
Описание параметров:
- input:
plugin: agent_metrics
config:
# Периодичность опроса источника данных.
poll_period: 15s # необязательный, по умолчанию 15 секунд
# Неймсмпейс, в который нужно поместить метрики.
# Если указан, будет добавлен префиксом к имени всех метрик.
namespace: null # необязательный, по умолчанию не задан
Вход metrics_pull
Вход опрашивает указанный URL с заданной периодичностью для сбора метрик в формате Prometheus.
Описание параметров:
- input:
plugin: metrics_pull
config:
# URL для сбора метрик.
url: http://localhost:12345 # обязательный
# Формат получаемых сообщений. В настоящий момент поддерживается только значение prometheus.
format: # обязательный
# Входящие сообщения имеют формат prometheus (https://github.com/prometheus/docs/blob/master/content/docs/instrumenting/exposition_formats.md).
prometheus: {}
# Периодичность опроса источника данных.
# Моменты запуска выровнены по сетке размера poll_period, начиная с Unix epoch.
poll_period: 15s # необязательный, по умолчанию 15 секунд
# Неймсмпейс, в который нужно поместить метрики.
# Если указан, будет добавлен префиксом с точкой к имени всех метрик.
namespace: null # необязательный, по умолчанию не задан
# Число повторных попыток, если запрос завершился с ошибкой.
retry_count: 0 # необязательный, по умолчанию 0
# Задержка между повторными попытками.
retry_delay: 1s # необязательный, по умолчанию 1 секунда
# Таймаут запроса, включая все повторные попытки.
timeout: 5s # необязательный, по умолчанию 5 секунд
# Заголовки, которые нужно добавить к запросу.
headers: # необязательный, по умолчанию не задан
h1: v1
h2: v2
# Имена заголовков HTTP-ответа, которые нужно сохранить в метаданных сообщения.
capture_response_headers: [] # необязательный, по умолчанию не задан
# HTTP-метод, который нужно использовать в запросе.
# Возможные значения: GET, POST.
http_method: GET # необязательный, по умолчанию GET
Вход linux_metrics
Вход для сбора статистики использования системных ресурсов (процессор, память, сеть, диск) для Linux-совместимых операционных систем. Вход собирает значения метрик из procfs
Unified Agent собирает метрики только тех устройств хранения, которые смонтированы как /dev/..
. В частности, не поддерживаются файловые хранилища Compute Cloud.
Важно
Если агент запущен в Docker-контейнере, для мониторинга системных метрик хоста и дополнительных дисков, подключенных к хосту, передайте в контейнер пути до procfs, sysfs и точек монтирования дисков. Для этого воспользуйтесь командой docker run
с параметром -v
. Например, если дополнительный диск смонтирован в каталоге /data
:
docker run \
-p 16241:16241 -it --detach --uts=host \
--name=ua \
-v /proc:/ua_proc \
-v /data:/data \
-e PROC_DIRECTORY=/ua_proc \
-e FOLDER_ID=a1bs81qpemb4******** \
cr.yandex/yc/unified-agent
Описание параметров:
- input:
plugin: linux_metrics
config:
# Периодичность сбора статистики.
poll_period: 15s # необязательный, по умолчанию 15 секунд
# Директория со смонтированным procfs, из которой будут браться счетчики.
# Если агент запущен в Docker-контейнере, для мониторинга хоста передайте /proc хоста внутрь контейнера с помощью параметра -v.
proc_directory: "/proc" # необязательный, по умолчанию "/proc"
# Директория со смонтированным sysfs, из которой будут браться счетчики.
# Если агент запущен в Docker-контейнере, для мониторинга хоста передайте /sys хоста внутрь контейнера с помощью параметра -v.
sys_directory: "/sys" # необязательный, по умолчанию "/sys"
# Список ресурсов, с которых нужно собирать статистику.
# Ключ — одно из значений cpu, memory, network, storage, io, kernel.
# Значение — степень детализации, одно из значений basic, advanced.
resources: # необязательный
cpu: advanced # необязательный, по умолчанию — basic
memory: advanced # необязательный, по умолчанию — basic
network: advanced # необязательный, по умолчанию — basic
storage: advanced # необязательный, по умолчанию — basic
io: advanced # необязательный, по умолчанию — basic
kernel: advanced # необязательный, по умолчанию — basic
Вход file_input
Вход, читающий данные из текстовых файлов и архивов .zst
. В ОС нужна поддержка подсистемы inotify
в ядре и файловой системе.
Правила работы с файлами:
-
Поддерживается внешняя ротация файла по схеме «перемещение (переименование) — создание нового файла». В режиме
multiline
строки сmultiline_start_prefix
будут считаться началом мультистроки. К мультистроке присоединяются все последующие строки, которые не содержат данный префикс. -
В качестве источника данных можно указать конкретный файл или маску с параметром
multi_file
.В метаданные сессии добавляется ключ
filename
— имя файла без пути. Чтобы записывать в метаданные полный путь к файлу, используется параметрmulti_add_full_path_to_meta
. -
С файлом для записи данных разрешены операции создания файла, записи в конец файла новых данных и ротация.
-
Ротация подразумевает перемещение файла, расположение файла в структуре (inode) не меняется.
-
Файл после ротации должен оставаться неизменным в течение некоторого времени.
Особенности работы с архивом:
- Формат архива автоматически определяется по расширению
.zst
или может быть явно указан через параметрfile_format
. - Рекомендуется разбивать архив на фреймы.
- Параметр
read_only_newlines
игнорируется, поскольку не поддерживается при работе с архивом. - Чтобы избежать чрезмерного потребления CPU и замедления работы, рекомендуется включить параметр
keep_open_file
. Либо установить параметруmax_lines_in_record
значение, соизмеримое с размером каждого фрейма.
При работе с файлами в лог будет записываться информация:
- Если при чтении событий обнаружится событие
IN_Q_OVERFLOW
. - Остановка Unified Agent при удалении, перемещении или размонтировании каталогов, содержащих файл для чтения и файлы после ротации.
Описание параметров:
plugin: file_input
config:
# Путь к файлу для чтения
path: /path_to_file # обязательный
# Путь к каталогу, в который перемещаются файлы при ротации
out_directory: "" # необязательный, по умолчанию — каталог файла для чтения (пустая строка)
# Путь к каталогу, в котором будет создан служебный файл текущего состояния — позиция чтения, имя файла, inode и другие параметры.
state_directory: /path_to_state # обязательный
# Пропустить уже существующие строки при первом запуске
read_only_new_lines: false # необязательный, по умолчанию false
# Максимальное количество строк, которое будет одновременно прочитано
max_lines_in_record: 100 # необязательный, по умолчанию 100
# Максимальный размер строки.
# При чтении все последующие символы будут проигнорированы до символа перевода строки
max_bytes_in_line: 1kb # необязательный, по умолчанию 1kb
# Минимальный размер блока данных для считывания из файла.
# Если в течение 100 мс из-за этого ограничения данные не считывались, чтение будет выполнено.
# Параметр не применяется для считывания файла после ротации.
min_bytes_read: 1Mb # необязательный, по умолчанию 1kb
# Символ перевода строки
line_delimiter: "\n" # необязательный, по умолчанию "\n"
# Держать постоянно открытым файл для чтения. Иначе, файл открывается только на момент чтения и выполняется установка необходимой позиции чтения
keep_open_file: false # необязательный, по умолчанию false
# Формат файла для чтения. Может принимать значения text, zstd и auto.
# Если установлен в auto — формат файла будет определен по расширению
file_format: auto # необязательный, по умолчанию auto
# Максимальная частота сброса внутреннего буфера разархивированных данных в миллисекундах.
# Малые значения ведут к экономии потребляемой памяти, но увеличивают нагрузку на процессор
archive_shrink_period_ms: 1000 # необязательный, по умолчанию 1000 (1 секунда)
# Трактовать параметр path как маску поиска файлов для обработки
multi_file: false # необязательный, по умолчанию false
# Как часто искать новые файлы по маске в режиме multi_file
discovery_period_ms: 1000 # необязательный, по умолчанию 1000 (1 секунда)
# Добавлять полный путь к файлу в метаданные сессии. Если false — добавляется только имя файла
multi_add_full_path_to_meta: false # необязательный, по умолчанию false
# Считать ли в дополнение к агрегированным метрикам метрики для каждого входного файла
per_file_metrics: false # необязательный, по умолчанию false
# Обработка многострочных сообщений
multiline:
# Включение режима обработки многострочных сообщений.
read_multiline: false # необязательный, по умолчанию false
# Максимальное количество строк в многострочных сообщениях.
max_lines_in_multiline: # необязательный, по умолчанию 100
# Регулярное выражение для определения начала многострочного сообщения.
# Все последующие строки, которые не соответствуют регулярному выражению, будут присоединены к текущему сообщению.
# Значение по умолчанию соответствует началу строки вида "2022-07-01 16:50:16,037 WARN".
multiline_start_prefix: "^(\\d\\d\\d\\d-\\d\\d-\\d\\d)\\s*(\\d\\d:\\d\\d:\\d\\d,\\d\\d\\d)\\s*(\\w*)" # необязательный
# Для чтения лог-файлов можно указать номер группы, соответствующий уровню важности.
# Не используется, когда значение больше, чем число групп в регулярном выражение.
# В метаданные сообщения добавляется уровень логирования.
# В дальнейшем может быть учтено при последующей обработке и доставки сообщения на выход агента, например выходом yc_logs.
log_priority_group: 3 # необязательный, по умолчанию 3
# Сопоставление уровней логирования значениям из группы регулярного выражения
priority_resources: "RESOURCES" # необязательный, по умолчанию "RESOURCES"
priority_debug: "DEBUG" # необязательный, по умолчанию "DEBUG"
priority_info: "INFO" # необязательный, по умолчанию "INFO"
priority_notice: "NOTICE" # необязательный, по умолчанию "NOTICE"
priority_warning: "WARN" # необязательный, по умолчанию "WARN"
priority_error: "ERROR" # необязательный, по умолчанию "ERROR"
priority_critical_info: "CRITICAL_INFO" # необязательный, по умолчанию "CRITICAL_INFO"
priority_alert: "ALERT" # необязательный, по умолчанию "ALERT"
priority_emerg: "EMERG" # необязательный, по умолчанию "EMERG"
Вход http
HTTP-вход для передачи логов в Unified Agent. Логи отправляются в теле HTTP-запроса на указанный адрес. Вход поддерживает настройку хоста и порта сервера, пути для обработчика, а также возможность захвата заголовков запроса и добавления метаданных сессии.
Описание параметров:
- input:
plugin: http
config:
# Хост, на котором будет запущен HTTP-сервер.
# По умолчанию HTTP-сервер запускается на всех сетевых интерфейсах.
host: null # необязательный, по умолчанию null
# Порт, на котором будет запущен HTTP-сервер.
port: 22132 # обязательный
# Путь, на котором будет зарегистрирован обработчик.
path: '/write' # необязательный, по умолчанию '/write'
# Имена заголовков HTTP-запроса, которые нужно сохранить в метаданных сообщения.
capture_request_headers: [] # необязательный, по умолчанию не задан
# Набор метаданных сессии Unified Agent в формате "ключ: значение".
# Для каждого эндпойнта (из параметра endpoints ниже) создается отдельная сессия.
session_meta: # необязательный, по умолчанию не задан
k: v
# Позволяет определить несколько точек подключения с различными параметрами на одном HTTP-порту.
# Можно указать любые элементы конфигурации, кроме host, port и endpoints.
# Если указан endpoints, то точка подключения по умолчанию (/write) не используется.
# В этом режиме в конфигурации могут быть указаны только элементы host, port и endpoints.
endpoints: # необязательный, по умолчанию []
- path: '/my_path' # обязательный
# Имена заголовков HTTP-запроса, которые нужно сохранить в метаданных сообщения.
capture_request_headers: [ ] # необязательный, по умолчанию не задан