Přeskočit obsah

Deklarace enrichers

Enrichers doplňují zpracovanou událost o další data.

Enricher může:

  1. Vytvořit nové pole v události.
  2. Transformovat hodnoty pole určitým způsobem (změna velikosti písmen, provádění výpočtu atd.).

Enrichers se nejčastěji používají k:

  1. Určení datasetu, kde budou logy uloženy v ElasticSearch (přidání pole event.dataset).
  2. Získání zařízení a závažnosti z pole priority syslogu.

Deklarace

define:
    type: parsec/enricher
    schema: /Schemas/ECS.yaml

enrich:
    event.dataset: <dataset_name>
    new.field: <expression>
    ...
Příklad

Následující příklad je enricher používaný pro události ve formátu syslog. Předpokládejme, že máte parser pro události ve formátu:

<14>1 2023-05-03 15:06:12 server pid: Username 'HarryPotter' logged in.
Událost je ve formátu:

{
    "log.syslog.priority": 14,
    "user.name": "HarryPotter"
}

Chcete získat závažnost a zařízení syslogu, které se počítají standardním způsobem:

(facility * 8) + severity = priority

Také byste chtěli převést jméno HarryPotter na harrypotter, abyste sjednotili uživatele napříč různými zdroji logů.

Z tohoto důvodu vytvoříte enricher:

enricher.yaml
define:
    type: parsec/enricher
    schema: /Schemas/ECS.yaml

enrich:
    event.dataset: 'dataset_name'
    user.id: !LOWER { what: !GET {from: !ARG EVENT, what: user.name} }

    # zařízení a závažnost jsou počítány z 'syslog.pri' standardním způsobem
    log.syslog.facility.code: !SHR
            what: !GET { from: !ARG EVENT, what: log.syslog.priority }
            by: 3
    log.syslog.severity.code: !AND [ !GET {from: !ARG EVENT, what: log.syslog.priority}, 7 ]