Event Lanes
Vztah k LogMan.io Depositor
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. To znamená, že všichni depozitoři čtoucí všechny event lanes si budou rozdělovat Kafka partitions mezi sebou a tím poskytovat nativní škálovatelnost.
Deklarace
Tento příklad je nejzákladnější definice event lane, která se nachází ve složce /EventLanes
v knihovně:
---
define:
type: lmio/event-lane
kafka:
events:
topic: events-default
others:
topic: others-default
elasticsearch:
events:
index: lmio-default-events
others:
index: lmio-default-others
Když je spuštěn Depositor a event lane je načten, Depositor vytvoří dvě pipelines, jednu pro events
a druhou pro others
. Vstup je specifikován v sekci kafka
, zatímco výstupní index alias je specifikován v sekci elasticsearch
. Elasticsearch pak automaticky mapuje název aliasu na správný název indexu končící číslem -0000
.
Warning
Komplexní event lanes potřebují vlastní deklarace. Na rozdíl od předchozí verze Dispatcher, Depositor nativně nečte z Kafka topic events-complex
.
Note
Depositor zvažuje VŠECHNY soubory event lane bez ohledu na to, zda jsou pro daný tenant v UI zakázány nebo ne. Depositor není tenant-specifická služba.
Šablona indexu
Když je Depositor spuštěn a poté periodicky každých deset minut, vytvoří šablonu indexu v Elasticsearch pro danou event lane. Mapování v šabloně indexu je založeno na výchozím schématu, které je /Schemas/ECS.yaml
nebo jiné schéma specifikované v konfiguraci Depositoru.
Výchozí cestu ke schématu lze přepsat v event lane specifikováním atributu schema
v sekci define:
---
define:
type: lmio/event-lane
schema: /Schemas/CEF.yaml
kafka:
...
elasticsearch:
...
Je také možné specifikovat number_of_shards
a number_of_replicas
v sekci settings v elasticsearch
:
---
define:
type: lmio/event-lane
schema: /Schemas/CEF.yaml
kafka:
...
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 konkrétní 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.
Životní cyklus politika
Když je Depositor spuštěn a poté periodicky každých deset minut, obnovuje Index Lifecycle Policy v Elasticsearch pro danou event lane.
Výchozí
Výchozí politiky ž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ž skončí hot fáze, nebo po 7 dnech, a zapne se shrinking.
Výchozí cold fáze pro daný index začíná po 14 dnech.
Fáze delete smaže index po 180 dnech.
---
define:
type: lmio/event-lane
schema: /Schemas/CEF.yaml
kafka:
...
elasticsearch:
...
events:
...
lifecycle:
hot:
min_age: "0ms"
actions:
rollover:
max_primary_shard_size: "16gb"
max_age: "7d"
set_priority:
priority: 100
warm:
min_age: "3d"
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
Vlastní
Výchozí ILM lze změnit, 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
schema: /Schemas/CEF.yaml
kafka:
...
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: "7d"
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
# Není zde žádná fáze delete
Index
Když je Depositor spuštěn a periodicky každých deset minut, Depositor kontroluje, zda pro dané aliasy z sekcí events
a others
v elasticsearch
existují indexy.
Pokud tyto indexy chybí, Depositor vytvoří nový index končící -000001
, což mu umožní psát a přiřadit alias.
Pokud indexy již existují, Depositor nepodniká žádné kroky.