dissect
Процессор dissect
Процессор dissect разбирает текстовые поля событий по шаблону-токенизатору. В отличие от регулярных выражений, dissect использует позиционный подход с разделителями, что делает его быстрым и простым для структурированных строк с фиксированным форматом.
Синтаксис токенизатора совместим с Elasticsearch dissect.
Конфигурация
processors:
- module: dissect
tokenizer: "<шаблон>"
field: "<поле-источник>"
target_prefix: "<префикс>"
trim_chars: "<символы>"
trim_values: "<режим>"
ignore_failure: true|false
overwrite_keys: true|false
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
tokenizer | string | — | Шаблон разбора с токенами %{имя_поля} |
field | string | Raw | Поле события для разбора |
target_prefix | string | "" | Префикс, добавляемый к именам извлечённых полей |
trim_chars | string | " " (пробел) | Символы, которые нужно удалить при обрезке значений |
trim_values | string | none | Режим обрезки значений: none, left, right, all |
ignore_failure | bool | false | Игнорировать ошибки разбора (событие продолжит обработку без извлечённых полей) |
overwrite_keys | bool | false | Перезаписывать существующие поля события |
Синтаксис токенизатора
Шаблон состоит из литеральных строк-разделителей и токенов %{имя_поля}:
%{field1} %{field2} - %{field3}
Для строки "hello world - test" будет извлечено:
| Поле | Значение |
|---|---|
field1 | hello |
field2 | world |
field3 | test |
Пример
Разбор структурированной записи лога:
processors:
- module: dissect
tokenizer: "%{timestamp} %{level} [%{module}] %{message}"
field: Raw
target_prefix: "Log"
trim_values: all
Исходное событие:
2024-01-15T10:30:45Z INFO [auth] User login successful
Результат:
| Поле | Значение |
|---|---|
Log.timestamp | 2024-01-15T10:30:45Z |
Log.level | INFO |
Log.module | auth |
Log.message | User login successful |