Přeskočit obsah

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 (jako enricher/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.