ecs
Процессор ECS
Процессор ecs разбирает JSON-документы, уже отформатированные в соответствии со схемой Elastic Common Schema, и автоматически маппит их поля во внутреннюю структуру события KOMRAD.
Типичное применение — обработка событий от Elastic Beats, Elastic Agent и других инструментов, которые изначально отправляют данные в формате ECS.
Конфигурация
processors:
- module: ecs
from: Raw
verbose: false
unquote: false
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
from | string | Raw | Поле события, содержащее ECS JSON |
verbose | bool | false | Логировать причину отказа в разборе (полезно для отладки) |
unquote | bool | false | Снять экранирование строки перед разбором JSON |
Требования к входным данным
Для того чтобы процессор распознал JSON как ECS-событие, необходимы следующие условия:
- Документ должен быть валидным JSON-объектом
- Минимальная длина — 100 символов
- Обязательно наличие поля
@timestamp
Если условия не выполнены, процессор пропускает событие без модификации. При включённом verbose в лог записывается причина.
Маппинг полей
Процессор выполняет рекурсивный обход JSON-структуры и маппит известные ECS-поля во внутренние поля события KOMRAD с префиксом ECS.:
| ECS (плоский ключ) | Внутреннее поле KOMRAD |
|---|---|
@timestamp | CTime |
source.ip | ECS.Source.IP |
destination.port | ECS.Destination.Port |
event.category | ECS.Event.Category |
process.pid | ECS.Process.PID |
| ... | ECS.<PascalCase-путь> |
Поля, не входящие в известную схему ECS, сохраняются как пользовательские поля с оригинальным именем.
Пример
processors:
- module: ecs
from: Raw
verbose: true
Исходное событие (поле Raw):
{"@timestamp":"2024-01-15T10:30:45.000Z","event":{"category":["network"],"kind":"event"},"source":{"ip":"192.168.1.10","port":54321},"destination":{"ip":"10.0.0.1","port":443},"process":{"name":"curl","pid":12345}}
Результат — автоматически созданные поля:
| Поле | Значение |
|---|---|
CTime | 2024-01-15T10:30:45.000Z |
ECS.Event.Category | network |
ECS.Event.Kind | event |
ECS.Source.IP | 192.168.1.10 |
ECS.Source.Port | 54321 |
ECS.Destination.IP | 10.0.0.1 |
ECS.Destination.Port | 443 |
ECS.Process.Name | curl |
ECS.Process.PID | 12345 |