Deklarace Enricherů
Enricher doplňují parsované události o dodatečná data.
Enricher může:
- Vytvořit nové pole v události.
- Transformovat hodnoty polí nějakým způsobem (změna velikosti písmen, provádění výpočtů, atd.).
Enrichery jsou nejčastěji používány k:
- Určení datasetu, kde budou logy uloženy v ElasticSearch (přidání pole
event.dataset
). - Získání facility a severity z pole syslog priority.
define:
type: parsec/enricher
enrich:
event.dataset: <dataset_name>
new.field: <expression>
...
- Enrichery zapisujte v YAML.
- Specifikujte
parsec/enricher
v polidefine
.
Example
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 tvaru:
<14>1 2023-05-03 15:06:12 server pid: Uživatelské jméno 'HarryPotter' přihlášeno.
{
"log.syslog.priority": 14,
"user.name": "HarryPotter"
}
Chcete získat závažnost (severity) a lokální zařízení (facility) z protokolu syslog, které jsou vypočítány standardním způsobem:
(facility * 8) + severity = priority
Také byste chtěli změnit jméno HarryPotter
na harrypotter
, aby bylo sjednoceno napříč různými logovacími zdroji.
Proto vytvoříte enricher:
enricher.yaml
define:
type: parsec/enricher
enrich:
event.dataset: 'dataset_name'
user.id: !LOWER { what: !GET {from: !ARG EVENT, what: user.name} }
# Facility a severity jsou vypočteny 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 ]