Přeskočit obsah

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.