Event Lanes¶
TeskaLabs LogMan.io Depositor čte všechny event lanes z knihovny a vytváří Kafka-to-Elasticsearch pipelines na základě sekcí kafka
a elasticsearch
.
Note
Všechny nasazené instance TeskaLabs LogMan.io Depositor sdílejí stejné Group ID v rámci Kafka. Všechny instance si rozdělují spotřebu z Kafka partitions mezi sebou a tím poskytují nativní škálovatelnost.
Deklarace¶
Toto je příklad sekcí event lane relevantních pro LogMan.io Depositor:
---
define:
type: lmio/event-lane
kafka:
events:
topic: events.<tenant>.<stream> # Kafka téma pro zpracované události
others:
topic: others.<tenant>.<stream> # Kafka téma pro nezpracované události
elasticsearch:
events:
index: lmio-<tenant>-events-<stream> # Index alias pro události
others:
index: lmio-<tenant>-others # Index alias pro ostatní
Když je LogMan.io Depositor spuštěn a event lane je načten, jsou vytvořeny dvě pipelines. Events pipeline spotřebovává zprávy z Kafka tématu definovaného v kafka/events/topic
a ukládá je do Elasticsearch indexu, pomocí index aliasu definovaného v elasticsearch/events/index
.
Others pipeline podobně spotřebovává zprávy z tématu definovaného v kafka/others/topic
a ukládá je do indexu pomocí aliasu definovaného v elasticsearch/others/index
.
Index vs. index alias
V Elasticsearch je index kolekcí dokumentů, které sdílejí stejnou strukturu a jsou uloženy společně. Je to primární jednotka pro ukládání a vyhledávání dat.
Index alias je virtuální název, který může odkazovat na jeden nebo více indexů. Umožňuje zobrazit a manipulovat s daty stejného logického streamu.
V event lane je specifikován index alias. LogMan.io Depositor vytváří indexy na základě tohoto aliasu.
Například, když je index alias definován jako lmio-tenant-events-stream
, _LogMan.io Depositor
vytváří indexy
lmio-tenant-events-stream-000001
lmio-tenant-events-stream-000002
lmio-tenant-events-stream-000003
...
Komplexní event lanes
LogMan.io Depositor nativně nečte z Kafka tématu events.<tenant>.complex
a přeskočí komplexní event lanes.
Note
Depositor zvažuje VŠECHNY soubory event lane bez ohledu na to, zda jsou pro daného tenanta v UI zakázány nebo ne. Depositor není tenant-specifická služba.
Šablona indexu¶
LogMan.io Depositor vytváří a aktualizuje šablonu indexu pro každou event lane.
Mapování ve šabloně indexu je založeno na schématu event lane. Výchozí schéma pro event lane je /Schemas/ECS.yaml
. Může být změněno v deklaraci event lane:
---
define:
type: lmio/event-lane
schema: /Schemas/CEF.yaml
Je také možné specifikovat number_of_shards
a number_of_replicas
v sekci nastavení v elasticsearch
:
---
define:
type: lmio/event-lane
elasticsearch:
events:
settings:
number_of_shards: 6
number_of_replicas: 1
Výchozí hodnota number_of_shards
je 6 a number_of_replicas
je 1.
Note
Prosím zvažte pečlivě před změnou výchozích nastavení a schématu. Změna výchozích hodnot obvykle způsobuje problémy, jako jsou neporovnané detekční pravidla pro danou event lane, která používá jiné schéma.
Warning
Změny v šabloně indexu se projeví pouze po dalším rolloveru indexu, pokud již index v Elasticsearch existuje.
Politika životního cyklu¶
LogMan.io Depositor konfiguruje Index Lifecycle Policy pro každou event lane.
Výchozí¶
Výchozí politika životního cyklu obsahuje čtyři fáze: hot
, warm
, cold
a delete
.
-
Výchozí hot fáze pro daný index končí, když velikost primárního shardu přesáhne 16 GB nebo je starší než 7 dní.
-
Výchozí warm fáze pro daný index začíná buď když hot fáze skončí, nebo po 7 dnech, a zapne shrinking.
-
Výchozí cold fáze pro daný index začíná po 14 dnech.
-
Fáze delete smaže index po 180 dnech.
Vlastní¶
Výchozí ILM může být změněn, i když to není doporučeno pro většinu případů. Můžete to udělat specifikováním sekce lifecycle
v rámci sekce elasticsearch
event lane:
---
define:
type: lmio/event-lane
elasticsearch:
events:
lifecycle:
hot:
min_age: "0ms"
actions:
rollover:
max_primary_shard_size: "25gb" # Chceme větší primární shardy než je výchozí hodnota
max_age: "30d"
set_priority:
priority: 100
warm:
min_age: "7d"
actions:
shrink:
number_of_shards: 1
set_priority:
priority: 50
cold:
min_age: "14d"
actions:
set_priority:
priority: 0
delete:
min_age: 180d
actions:
delete:
delete_searchable_snapshot: true
Nastavte kompletní ILM politiku.
I když se snažíte změnit pouze jednu z fází, musíte specifikovat celou politiku životního cyklu. Vlastní ILM zcela přepisuje výchozí konfiguraci.
Žádná fáze delete
Pokud nechcete nastavit fázi delete
, jednoduše vynechte sekci delete
v event lane. Používejte to pouze pokud opravdu víte, co děláte!