Parsování vyhledávání
Když je vyhledávání přijato z LogMan.io Collector prostřednictvím LogMan.io Ingestor, může to být buď celý obsah lookupu (full frame), nebo jen jeden záznam (delta frame).
Předzpracování
Na základě formátu vstupního souboru vyhledávání by měl být použit preprocesor aby se zjednodušily následující deklarace a optimalizovala rychlost načítání vyhledávání. Obvykle se použije preprocesor JSON, XML nebo CSV:
---
define:
název: Preprocesor pro CSV
typ: parser/preprocessor
funkce: lmiopar.preprocessor.CSV
Takto zpracovaný obsah souboru je uložen v CONTEXT
, odkud k němu lze přistupovat.
Full frame
Pro uložení celého vyhledávání v ElasticSearch prostřednictvím LogMan.io Watcher,
a informovat o změně další instance LogMan.io Parser a LogMan.io Correlator.
v celém vyhledávání, je třeba použít deklaraci Cascade Parser s konfigurací target: lookup
.
Tímto způsobem nebude lookup vstupovat do tématu input
,
ale do tématu lookups
, odkud bude zpracován.
LogMan.io Watcher, aby aktualizoval data v ElasticSearch.
LogMan.io Watcher očekává následující formát události:
{
'action': 'full',
'data': {
"items": [{
"_id": "myId",
...
}
]
},
'lookup_id': 'myLookup'
}
kde action
se rovná full
znamená, že stávající obsah vyhledávání by měl být
nahrazen položkami items
v data
.
Pro vytvoření této struktury použijte následující deklarativní příklad Kaskádový parser.
Ukázka deklarace
---
define:
název: Demo of lookup loading parser
typ: parser/cascade
target: lookup
parse:
!DICT
set:
action: full
lookup_id: myLookup
data:
!DICT
set:
items:
!FOR
each: !ITEM CONTEXT CSV
do:
!DICT
set:
_id: !ITEM ARG myId
...
Když obsah vyhledávání vstoupí do parseru LogMan.io, parsovaný vyhledávač se odešle do LogMan.io Watcher, aby jej uložil do ElasticSearch.
Delta frame
Aby bylo možné aktualizovat JEDNU položku v existujícím vyhledávání v ElasticSearch prostřednictvím LogMan.io Watcher,
a informovat o změně ostatní instance LogMan.io Parser a LogMan.io Correlator.
v lookupu, je třeba použít deklaraci Cascade Parser s konfigurací target: lookup
.
Položka lookup tak nebude vstupovat do tématu input
,
ale do tématu lookups
, odkud bude zpracována.
LogMan.io Watcher, aby aktualizoval data v ElasticSearch.
LogMan.io Watcher očekává následující formát události:
{
'action': 'update_item',
'data': {
"_id": "existingOrNewItemId",
...
},
"lookup_id": "myLookup
}
kde action
se rovná update_item
znamená, že stávající obsah položky vyhledávání by měl být
nahradit položky v data
, nebo by měla být vytvořena nová položka vyhledávání.
Pro vytvoření této struktury použijte následující deklarativní příklad Cascade Parser.
Ukázka deklarace
---
define:
název: Demo of lookup item loading parser
typ: parser/cascade
cíl: lookup
parse:
!DICT
set:
action: update_item
lookup_id: myLookup
data:
!DICT
set:
_id: !ITEM CONTEXT CSV.0.myID
...
Když obsah vyhledávání vstoupí do parseru LogMan.io, parsovaný vyhledávač se odešle do LogMan.io Watcher, aby jej uložil do ElasticSearch.