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
}