IP Resolve Enricher & Expression
IP Resolve obohacuje událost o kanonický název hostitele a/nebo IP na základě buď IP adresy A síťového prostoru, nebo jakéhokoli názvu hostitele A sítě připojené k IP adrese v lookupu.
Lookup ID pro IP Resolve musí obsahovat následující podřetězec: ip_resolve
Záznam lookupu má následující strukturu:
key: [IP, network]
value: {
"hostnames": [
canonical_hostname,
hostname2,
hostname3
...
]
}
Příklad
Deklarace #1 - Enricher
---
define:
name: IPResolve
type: enricher/ipresolve
lookup: lmio_ip_resolve # nepovinné
source:
- ip_addr_and_network_try1
- ip_addr_and_network_try2
- hostname_and_network_try3
- [!IP.PARSE ip4, !ITEM EVENT network4]
...
ip: ip_addr_try1
hostname: host_name
Deklarace #2 - Expression
!IP.RESOLVE
source:
- ip_addr_and_network_try1
- ip_addr_and_network_try2
- hostname_and_network_try3
- [!IP.PARSE ip4, !ITEM EVENT network4]
...
ip: ip_addr_try1
hostname: host_name
with: !EVENT
lookup: lmio_ip_resolve # nepovinné
Vstup
Feb 5 10:50:01 0:0:0:0:0:ffff:1f1f:e001 %ASA-1-105043 test
Výstup
{
'rt': 1580899801.0,
'msg': 'test',
'ip_addr_try1': 281471203926017,
'host_name': 'my_hostname'
}
Sekce define
Tato sekce definuje název a typ enrichta, což je v případě IP Resolve vždy enricher/ipresolve
.
Prvek name
Kratší název této deklarace, který je snadno čitelný pro lidi.
Prvek type
Typ této deklarace, musí být enricher/ipresolve
.
Sekce source
Specifikuje seznam atributů pro lookup. Každý atribut by měl být ve formátu:
[IP, network]
[hostname, network]
Pokud není síť specifikována, bude použita global
.
První úspěšný lookup vrátí výstupní hodnoty (ip
, hostname
).
Sekce ip
Specifikuje atribut, kam se uloží lookuped IP adresa.
Sekce hostname
Specifikuje atribut, kam se uloží lookuped kanonický název hostitele.
Kanonický název hostitele je první v hostnames
hodnoty lookupu.
Načítání lookupu ze souboru
Data lookupu pro IP Resolve mohou být načtena ze souboru pomocí LogMan.io Collector
input:FileBlock
.
Data budou dostupná v LogMan.io Parseru, kde by měla být
poslána na cíl lookup
. Lookup se tedy nedostane do tématu input
,
ale do tématu lookups
, odkud bude zpracován
LogMan.io Watcherem pro aktualizaci dat v ElasticSearch.
LogMan.io Watcher očekává následující formát události:
{
'action': 'full',
'data': {
'items': [{
'_id': [!IP.PARSE 'MyIP', 'MyNetwork'],
'hostnames': ['canonical_hostname', 'short_hostname', 'another_short_hostname']
}
]
},
'lookup_id': 'customer_ip_resolve'
}
kde action
rovno full
značí, že existující obsah lookupu by měl být
nahrazen items
v data
.
Pro vytvoření této struktury použijte následující deklarativní příklad Cascade Parseru:
---
define:
name: Demo of IPResolve parser
type: parser/cascade
target: lookup
parse:
!DICT
set:
action: full
lookup_id:
!JOIN
items:
- !ITEM CONTEXT filename
- ip_resolve
delimiter: '_'
data:
!DICT
set:
items:
!FOR
each:
!REGEX.SPLIT
what: !EVENT
regex: '\n'
do:
!FIRST
- !CONTEXT.SET
set:
_temp:
!REGEX.SPLIT
what: !ARG
regex: ';'
- !DICT
set:
_id:
- !IP.PARSE
value: !ITEM CONTEXT _temp.0
- MyNetworkOrSpace
hostnames:
!LIST
append:
- !ITEM CONTEXT _temp.1
- !ITEM CONTEXT _temp.2