Přeskočit obsah

Deklarace

Deklarace popisují, jak by měl být event parsován. Jsou uloženy jako soubory YAML v knihovně. LogMan.io Parsec interpretuje tyto deklarace a vytváří z nich parsovací procesory.

Existují tři typy deklarací:

  1. Deklarace parseru: Parser bere jako vstup původní event nebo konkrétní pole částečně parsovaného eventu, analyzuje jeho jednotlivé části a ukládá je jako páry klíč-hodnota do eventu.
  2. Deklarace mapování: Mapování bere jako vstup částečně parsovaný event, přejmenuje názvy polí a eventuálně převádí datové typy. Funguje spolu se schématem (ECS, CEF).
  3. Deklarace doplňovače: Doplňovač doplňuje částečně parsovaný event o další data.

Tok dat

Typická, doporučená sekvence parsování je řetězec deklarací:

  1. První hlavní deklarace parseru zahajuje řetězec a další parsery (nazývané sub-parsery) extrahují podrobnější data z polí vytvořených předchozím parserem.
  2. Poté (jediná) deklarace mapování přejmenuje klíče parsovaných polí podle schématu a filtruje pole, která nejsou potřeba.
  3. Nakonec deklarace doplňovače doplňuje event o další data. Ačkoli je možné použít více souborů doplňovače, doporučuje se použít pouze jeden.

Parsec pipeline flowchart

Důležité: Názvoslovné konvence

LogMan.io Parsec načítá deklarace v abecedním pořadí a vytváří odpovídající procesory ve stejném pořadí. Proto vytvářejte seznam souborů deklarací podle těchto pravidel:

  • Začněte všechny názvy souborů deklarací očíslovanou předponou:

    10_parser.yaml, 20_parser_message.yaml, ..., 90_enricher.yaml.

    Doporučuje se "nechat si místo" v číslování pro budoucí deklarace pro případ, že budete chtít přidat novou deklaraci mezi dvě stávající (např. 25_new_parser.yaml).

  • Do názvů souborů zahrňte typ deklarace: 20_parser_message.yaml spíše než 10_message.yaml.

  • Do názvů souborů mapování zahrňte typ použitého schématu: 40_mapping_ECS.yaml spíše než 40_mapping.yaml.

Příklad:

/Parsers/MůjParser/:
    - 10_parser.yaml
    - 20_parser_username.yaml
    - 30_parser_message.yaml
    - 40_mapping_ECS.yaml
    - 50_enricher_lookup.yaml
    - 60_enricher.yaml