Deklarace mapování
Poté, co všechny deklarované pole jsou získány z parserů, pole obvykle musí být přejmenována podle určitého schématu (ECS, CEF) v procesu nazývaném mapování.
Proč je mapování nezbytné?
Pro uložení dat o událostech v Elasticsearch je nezbytné, aby názvy polí v logách odpovídaly Elastic Common Schema (ECS), standardizované, open-source kolekci názvů polí, která jsou kompatibilní s Elasticsearch. Proces mapování přejmenuje pole v parsovaných logách podle tohoto schématu. Mapování zajišťuje, že logy z různých zdrojů mají jednotné, konzistentní názvy polí, což umožňuje Elasticsearch je správně interpretovat.
Důležité
Po defaultu funguje mapování jako filtr. Ujistěte se, že v deklaraci mapování zahrnete všechna pole, která chcete mít v parsovaném výstupu. Jakékoliv pole neuvedené v mapování bude z události odstraněno.
Psaní deklarace mapování
Deklarace mapování pište v YAML. (Deklarace mapování nepoužívají výrazy SP-Lang.)
define:
type: parser/mapping
schema: /Schemas/ECS.yaml
mapping:
<original_key>: <new_key>
<original_key>: <new_key>
...
Ve sekci define
specifikujte parser/mapping
jako type
. V poli schema
specifikujte cestu k souboru schématu, které používáte. Pokud používáte Elasticsearch, použijte Elastic Common Schema (ECS).
Pro přejmenování klíče a změnu datového typu hodnoty:
mapping:
<original_key>:
field: <new_key>
type: <new_type>
Dostupné datové typy najdete zde.
Pro přejmenování klíče bez změny datového typu hodnoty:
mapping:
<original_key>: <new_key>
Příklad
Example
Pro účely příkladu, řekněme, že chceme parsovat jednoduchou událost ve formátu JSON:
{
"act": "user login",
"ip": "178.2.1.20",
"usr": "harry_potter",
"id": "6514-abb6-a5f2"
}
a chtěli bychom, aby konečný výstup vypadal takto:
{
"event.action": "user login",
"source.ip": "178.2.1.20",
"user.name": "harry_potter"
}
Všimněte si, že názvy klíčů v původní události se liší od názvů klíčů v požadovaném výstupu.
Pro počáteční deklaraci parseru v tomto případě můžeme použít jednoduchý JSON parser:
define:
type: parser/json
Tento parser vytvoří seznam klíč-hodnota párů, které jsou přesně stejné jako původní.
Pro změnu názvů jednotlivých polí vytvoříme tento soubor deklarace mapování, 20_mapping_ECS.yaml
, ve kterém popisujeme, jaká pole mapovat a jak:
---
define:
type: parser/mapping # určuje typ deklarace
schema: /Schemas/ECS.yaml # které schéma je aplikováno
mapping:
act: 'event.action'
ip: 'source.ip'
usr: 'user.name'
Tato deklarace vytvoří požadovaný výstup. (Datové typy nebyly změněny.)