Přeskočit obsah

Vyhledávání událostí

Když dojde ke změně v některém z vyhledávačů nebo jeho položek, obvykle v důsledku vyvolané události vyhledávání nebo změny prostřednictvím uživatelského rozhraní, jsou všechny instance LogMan.io Correlator informovány pomocí příchozí události.

Změnou vyhledávání může být buď vytvoření, nebo odstranění vyhledávání, popř. vytvoření, aktualizace, vymazání i vymazání způsobené vypršením platnosti. jednotlivých položek vyhledávání.

Události vyhledávání jsou odesílány každou komponentou, která vytváří události vyhledávání, do témat lmio-lookups. Pokud byla aktualizace ElasticSearch úspěšná, LogMan.io Watcher odešle událost také do tématu lmio-stores Kafka, aby informoval o aktualizaci stavu vyhledávání.

Struktura události Lookup

Událost Lookup je struktura JSON se třemi povinnými atributy: action, lookup_id a data. Atributy @timestamp a tenant. jsou přidány automaticky, stejně jako další nakonfigurované atributy. metaatributy.

action

Určuje akci, kterou událost vyhledávání způsobila. Akce se provede na celém vyhledávání nebo jen na jedné z jeho položek. Všechny dostupné akce a s nimi spojené události najdete v seznamu níže.

lookup_id

ID/název vyhledávání. ID vyhledávání v událostech vyhledávání obsahuje také název nájemce za znakem tečky ., aby každá komponenta věděla, pro kterého nájemce je vyhledávání určeno.

data

Specifikace od lookup data (tj. položka lookup), která mají být vytvořena/aktualizována, a také metainformace (pro případ smazání položky).

Položky vyhledávání obsahují své ID v atributu _id struktury data. Parametr _id je řetězec založený na:

Jednoduchý klíč

Pokud má vyhledávání pouze jeden klíč (např. userName), _id je v případě řetězce samotná hodnota.

'data': {
    '_id': 'JohnDoe'
}
...

Pokud je hodnota bajtová, _id je řetězcová reprezentace hodnoty dekódovaná v UTF-8. Pokud hodnota není ani řetězec, ani bajty, pracuje se s ní stejně jako s ID při použití složených klíčů.

Složený klíč

Pokud se vyhledávání skládá z více klíčů (např. [userName, location]), je _id hash reprezentací hodnoty.

Původní hodnoty jsou pak uloženy v atributu _klíče uvnitř struktury data:

'data': {
    '_id': '<INTERNAL_HASH>',
    '_keys': ["JohnDoe", "Company 1"]
}
...

Vytvořit vyhledávání

Při vytváření vyhledávání se vytvoří následující akce:

{
    '@timestamp': <UNIX_TIMESTAMP>,
    'tenant': <TENANT>,
    "action": "create_lookup",
    "data": {},
    "metadata": {
        "_keys": ["key1name", "key2name" ...]
        ...
    },
    "lookup_id": "myLookup.tenant
}

Metaúdaje obsahují informace o vytvoření vyhledávání, například názvy jednotlivých klíčů (např. [userName, location]) v případě složených klíčů.

Odstranit vyhledávání

Při mazání vyhledávání se provede následující akce:

{
    '@timestamp': <UNIX_TIMESTAMP>,
    'tenant': <TENANT>,
    "action": "delete_lookup",
    "data": {},
    "lookup_id": "myLookup.tenant
}

Vytvořit položku

Při vytvoření položky se vytvoří následující akce:

{
    '@timestamp': <UNIX_TIMESTAMP>,
    'tenant': <TENANT>,
    "action": "create_item",
    "data": {
        "_id": "newItemId",
        "_keys": [],
        ...
    },
    "lookup_id": "myLookup.tenant
}

Aktualizovat položku

Při aktualizaci položky se provede následující akce:

{
    '@timestamp': <UNIX_TIMESTAMP>,
    'tenant': <TENANT>,
    "action": "update_item",
    "data": {
        "_id": "existingOrNewItemId",
        "_keys": [],
        ...
    },
    "lookup_id": "myLookup.tenant
}

Odstranit položku

Při smazání položky se provede následující akce.

Vypršení platnosti

V případě vymazání z důvodu vypršení platnosti:

{
    '@timestamp': <UNIX_TIMESTAMP>,
    'tenant': <TENANT>,
    "action": "delete_item",
    "data": {
        "_id": "existingItemId",
        "reason": "expiration
    },
    "lookup_id": "myLookup.tenant
}

Upozornění: Pokud není zakázána možnost use_default_expiration_when_update (nastavena na false). v metainformacích vyhledávání, bude platnost obnovena při každé aktualizaci položky vyhledávání. (aktuální čas + výchozí expirace). K vymazání v důsledku vypršení platnosti tedy dojde pouze tehdy, pokud mezitím nedošlo k žádné aktualizaci položky po dobu trvání expirace.

Smazat

Z jiných důvodů:

{
    '@timestamp': <UNIX_TIMESTAMP>,
    'tenant': <TENANT>,
    "action": "delete_item",
    "data": {
        "_id": "existingItemId",
        "reason": "delete
    },
    "lookup_id": "myLookup.tenant
}