IP Enricher
IP Enricher rozšiřuje události o geografické a další údaje související s danou IPv6 nebo IPv4 adresou. Tento modul nahrazuje IP2Location Enricher a GeoIP Enricher, které jsou nyní zastaralé.
Deklarace
Sekce define
Tato sekce definuje název a typ obohacovače.
Položka name
Krátký lidsky čitelný název této deklarace.
Položka type
K dispozici jsou čtyři typy obohacovačů IP, které se liší verzí IP (IPv4 nebo IPv6) a adresou IP. (celé číslo nebo řetězec). Použití celočíselného vstupu je rychlejší a preferovanou možností.
enricher/ipv6
zpracovává IPv6 adresy ve formátu 128bitového desítkového čísla (například 281473902969579).enricher/ipv4
zpracovává IPv4 adresy v 32bitovém desítkovém celočíselném formátu (například 3221226219).enricher/ipv6str
zpracovává adresy IPv6 ve formátu šestnáctkových řetězců oddělených dvojtečkami. (například 2001:db8:0:0:1:0:0:1), jak je definováno v RFC 5952. Umí také převádět a zpracovávat řetězcové adresy IPv4 (jakoenricher/ipv4str
).enricher/ipv4str
zpracovává adresy IPv4 ve formátu tečkovaného desítkového řetězce (například 192.168.16.0). jak je definováno v RFC 4001.
Položka base_path
Určuje základní cestu URL, která obsahuje soubory vyhledávací zóny.
Může ukazovat na:
* adresář místního souborového systému, např. /path/to/files/
* umístění v nástroji zookeeper, např. zk://zookeeper-server:2181/path/to/files/
* umístění HTTP, např. http://localhost:3000/path/to/files/
Sekce tenants
Nástroj IP Enricher lze nakonfigurovat pro nastavení více uživatelů. Tato sekce obsahuje seznam nájemců, které by měl obohacovač zohlednit při vytváření vyhledávání specifických pro nájemce. Události anotované s nájemcem, který není uveden v této sekci, získají pouze globální obohacení (viz níže).
Sekce zones
Určuje seznam vyhledávacích zón, které má obohacovač použít, a informaci, zda jsou globální. nebo specifické pro nájemce.
Globální vyhledávače mohou obohatit jakoukoli událost bez ohledu na jejího nájemce. Vyhledávání specifická pro nájemce mohou obohatit pouze události s odpovídajícím kontextem nájemce.
Zóny vyhledávání by měly být seřazeny podle své priority, od nejvyšší po nejnižší, protože vyhledávání iteruje přes zóny postupně. a zastaví se, jakmile je nalezena první shoda.
zones:
- nájemce: lookup-zone-1.pkl.gz
- nájemce: lookup-zone-2.pkl.gz
- global: lookup-zone-glob.pkl.gz
Názvy zón se musí shodovat s odpovídajícími názvy souborů včetně přípony.
Vyhledávací soubory global
musí existovat přímo v adresáři base_path
.
Vyhledávací soubory tenant
musí být uspořádány v adresáři base_path
do složek
podle příslušných nájemců. Například za předpokladu, že jsme deklarovali
první_tenant
a druhý_tenant
, výše uvedená deklarace zón očekává.
následující strukturu souborů:
/base_path/
- first_tenant/
- lookup-zone-1.pkl.gz
- lookup-zone-2.pkl.gz
- second_tenant/
- lookup-zone-1.pkl.gz
- lookup-zone-2.pkl.gz
- lookup-zone-glob.pkl.gz
Příchozí událost, jejíž contxt je second_tenant
, se nejprve pokusí najít shodu s
v lookupu second_tenant/lookup-zone-1.pkl.gz
, poté v lookupu second_tenant/lookup-zone-1.pkl.gz
.
second_tenant/lookup-zone-2.pkl.gz
a nakonec v lookup-zone-glob.pkl.gz
.
Sekce atributy
Tento oddíl určuje, které atributy události obsahují adresu IP a jaké atributy budou přidány k události, pokud bude nalezena shoda. Má následující slovníkovou strukturu:
ip_adresa:
název_atributu_vyhledávání: název_atributu_události
IP adresa se získá z atributu události ip_address
.
Pokud odpovídá nějaké vyhledávací zóně, uloží se hodnota lookup_attribute_name
.
do event_attribute_name
. Například:
source_ip:
kód_země: source_country
To se pokusí přiřadit událost na základě atributu source_ip
a
uložit odpovídající hodnotu country_code
do pole události source_country
.
Obohacení názvu zóny
Může být užitečné zaznamenat název vyhledávací zóny, ve které došlo ke shodě.
Chcete-li do události přidat název zóny, použijte jako název atributu vyhledávání zone
, např:
source_ip:
zóna: název_zdroje_zóny
Tím se do pole události jméno_zdroje_zóny
přidá název odpovídajícího vyhledávání.
Všimněte si, že pokud je ve vyhledávání pole s názvem "zone", použije se jeho hodnota místo názvu vyhledávání.
Název vyhledávání se nastavuje při vytváření souboru vyhledávání.
Ve výchozím nastavení je to název zdrojového souboru, ale lze jej nastavit na jinou hodnotu.
Podrobnosti viz příkaz lmiocmd ipzone from-csv
v LogMan.io Commander.
Příklad použití
Deklarační soubor
---
define:
name: IPEnricher
typ: enricher/ipv6
nájemci:
- some-tenant
- another-tenant
zóny:
- tenant: lookup-zone-1.pkl
- globální: ip2location.pkl.gz
atributy:
ip_addr1:
country_code: sourceCountry
city_name: sourceCity
L: sourceLocation
ip_addr2:
country_code: destinationCountry
název_města: destinationCity
L: destinationL
...
Zde obohacovač načte IP adresu z atributu události ip_addr1
.
Poté se pokusí najít adresu ve svých vyhledávacích ojektech: nejprve v ojektech
lookup-zone-1.pkl
, poté v ip2location.pkl.gz
.
Pokud najde shodu, načte hodnoty vyhledávání country_code
,
city_name
a L
a uloží je do příslušných polí událostí
sourceCountry
, sourceCity
a sourceLocation
.
Pro druhou adresu ip_addr2
se postupuje obdobně.
Výsledek je vidět níže.
Vstupní údaje
Feb 5 10:50:01 0:0:0:0:0:ffff:1f1f:e001 %ASA-1-105043 test
Výše uvedený řádek lze analyzovat do následujícího slovníku.
{
'rt': 1580899801.0,
"msg": "test",
'ip_addr1': '0:0:0:0:0:ffff:1f1f:e001'
}
Toto je předáno IP Enricheru, který jsme deklarovali výše.
Výstup
{
'rt': 1580899801.0,
"msg": "test",
'ip_addr1': '0:0:0:0:0:ffff:1f1f:e001',
"sourceCountry": "CZ",
"sourceCity": "Brno",
"sourceLocation": (49.195220947265625, 16.607959747314453)
}
Soubor pro vyhledávání zóny IP
Soubor IP lookup je slovník Pythonu.
Lze jej jednoduše vytvořit ze souboru CSV pomocí příkazu lmiocmd ipzone from-csv
který najdete v LogMan.io Commander.
CSV musí obsahovat řádek záhlaví s názvy sloupců.
Musí obsahovat sloupec ip_from
a ip_to
a alespoň jeden další sloupec.
sloupec s požadovanými hodnotami vyhledávání.
Například:```csv
ip_from,ip_to,zone_info,latitude,longitude 127.61.100.0,127.61.111.255,my secret base,48.224673,-75.711505 127.61.112.0,127.61.112.255,my submarine,22.917923,267.490378 ```
POZNÁMKA
Zóny definované v jednom vyhledávacím souboru se nesmí překrývat.
POZNÁMKA
IP zóny v souboru CSV jsou považovány za uzavřené intervaly, tj. pole ip_from
i ip_to
jsou
zahrnuta do zóny, kterou ohraničují.
IP2Location
Tento příkaz je také schopen vytvořit vyhledávací soubor z IP2Location™ CSV databází. Všimněte si, že tyto soubory neobsahují názvy sloupců, takže řádek záhlaví je třeba do souboru CSV přidat ručně. před vytvořením vyhledávacího souboru.