Předzpracovávání lookups
Když je lookup přijat z LogMan.io Collector přes LogMan.io Ingestor, může se jednat buď o celé obsah lookupu (full frame), nebo jen jeden záznam (delta frame).
Předzpracování
Na základě formátu vstupního lookup souboru by měl být použit předzpracovatel, aby se zjednodušily následující deklarace a optimalizovala rychlost načítání lookupu. Obvykle bude použit buď JSON, XML nebo CSV předzpracovatel:
---
define:
name: Předzpracovatel pro CSV
type: parser/preprocessor
function: lmiopar.preprocessor.CSV
Tímto způsobem je obsah analyzovaného souboru uložen v CONTEXT
, odkud k němu lze přistupovat.
Full frame
Aby bylo možné uložit celý lookup do ElasticSearch prostřednictvím LogMan.io Watcher
a informovat jiné instance LogMan.io Parser a LogMan.io Correlator o změně
v celém lookup, měla by být použita deklarace Cascade Parser s konfigurací target: lookup
.
Takový lookup nevstoupí 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 hodnota action
rovna full
znamená, že existující obsah lookupu by měl být
nahrazen položkami v data
.
K vytvoření této struktury použijte následující deklarativní příklad Cascade Parseru.
Ukázková deklarace
---
define:
name: Ukázka parseru načítání lookupu
type: 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 lookup vstoupí do LogMan.io Parser, parsované lookup je posíláno do LogMan.io Watcher, aby bylo uloženo v ElasticSearch.
Delta frame
Aby bylo možné aktualizovat JEDNU položku v existujícím lookupu v ElasticSearch prostřednictvím LogMan.io Watcher
a informovat jiné instance LogMan.io Parser a LogMan.io Correlator o změně
v lookup, měla by být použita deklarace Cascade Parser s konfigurací target: lookup
.
Taková položka lookupu nevstoupí do tématu input
,
ale do tématu lookups
, odkud bude zpracována
LogMan.io Watcher, aby aktualizovala 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 hodnota action
rovna update_item
znamená, že obsah existující položky lookupu by měl být
nahrazen položkami v data
, nebo by měla být vytvořena nová položka lookupu.
K vytvoření této struktury použijte následující deklarativní příklad Cascade Parseru.
Ukázková deklarace
---
define:
name: Ukázka parseru načítání položek lookupu
type: parser/cascade
target: lookup
parse:
!DICT
set:
action: update_item
lookup_id: myLookup
data:
!DICT
set:
_id: !ITEM CONTEXT CSV.0.myID
...
Když obsah lookup vstoupí do LogMan.io Parser, parsované lookup je posíláno do LogMan.io Watcher, aby bylo uloženo v ElasticSearch.