Dráhy událostí¶
TeskaLabs LogMan.io Depositor čte všechny event řady z knihovny a vytváří pipeline z Kafka do Elasticsearch na základě sekcí kafka a elasticsearch.
Poznámka
Všechny nasazené instance TeskaLabs LogMan.io Depositor sdílejí stejné ID skupiny v rámci Kafka. Všechny instance rozdělují konzumaci z Kafka partičí mezi sebe a tím poskytují škálovatelnost nativně.
Prohlášení¶
Toto je příklad sekcí událostního pásu relevantních pro LogMan.io Depositor:
---
define:
type: lmio/event-lane
kafka:
events:
topic: events.<tenant>.<stream> # Kafka topic for parsed events
others:
topic: others.<tenant>.<stream> # Kafka topic for unparsed events
elasticsearch:
events:
index: lmio-<tenant>-events-<stream> # Index alias for events
others:
index: lmio-<tenant>-others # Index alias for others
Když je spuštěn LogMan.io Depositor a je načtena událostní dráha, jsou vytvořeny dva pipeline. Pipeline událostí spotřebovává zprávy z Kafka tématu definovaného v možnosti kafka/events/topic a ukládá je do Elasticsearch indexu, přičemž používá alias indexu definovaný v možnosti elasticsearch/events/index.
Pipeline Others 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. alias indexu
V Elasticsearch je index sbírkou dokumentů, které sdílejí stejnou strukturu a jsou uloženy společně. Je to základní jednotka pro ukládání a vyhledávání dat.
Indexový alias je virtuální název, který může ukazovat na jeden nebo více indexů. Umožňuje zobrazovat a manipulovat s daty stejného logického toku.
V událostním kanálu je specifikován alias indexu. LogMan.io Depositor vytváří indexy na základě tohoto aliasu.
Například, když je alias indexu 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í událostní pruhy
LogMan.io Depositor nativně nečte z Kafka tématu events.<tenant>.complex a přeskočuje složité událostní linie.
Poznámka
Depozitář bere v úvahu VŠECHNY soubory jízdních pruhů událostí, bez ohledu na to, zda jsou pro daného nájemce v rozhraní UI zakázány nebo ne. Depozitář není služba specifická pro konkrétního nájemce.
Sdílení dat mezi nájemci¶
Vkladatel vytváří globální mapu Kafka tématu → Elasticsearch index z událostních linií všech nájemců. Při načítání nedochází k žádnému směrování podle nájemce: rozhoduje pouze samotné téma. Pokud dva nájemci deklarují různé indexy (nebo jiné cíle) pro stejné Kafka téma, poslední načtená deklarace tiše zvítězí.
Kdy to použít¶
Používejte sdílená témata a indexy, když několik nájemníků by mělo vidět stejný proud událostí v Elasticsearch (stejná data, stejná schémata).
Jak nakonfigurovat¶
- Zkopírujte stejnou událostní linku do složky knihovny každého nájemce, například:
/EventLanes/tenant-a/microsoft-windows.yaml/EventLanes/tenant-b/microsoft-windows.yaml- V každé kopii nastavte stejné:
kafka.events.topicelasticsearch.events.index- schéma (
define.schemanebo výchozí schéma nájemce, ale zachovejte jejich sladění) - Explicitně uveďte
othersv událostní lince (kafka.others.topicaelasticsearch.others.index) a nasměrujte je na sdílený topic a index pro ostatní.
---
define:
type: lmio/event-lane
schema: /Schemas/ECS.yaml
kafka:
events:
topic: events.shared.microsoft-windows
others:
topic: others.shared
elasticsearch:
events:
index: lmio-shared-events-microsoft-windows
others:
index: lmio-shared-others
Proč musí být others nastaveno v událostním kanálu¶
Pokud jsou kafka.others / elasticsearch.others vynechány, Depositor používá vyhrazenou lane událostí ostatních tohoto tenanta (type: …/others nebo define.others: true).
Přesměrování při chybě a selhání pipeline používá globální mapu events_topic → others_topic. Při sdíleném tématu událostí a různých drahách others pro jednotlivé nájemce vyhraje cíl others posledního nájemce. Umístění sdíleného others do dráhy událostí tomu zabrání.
Chování a upozornění¶
- Dokumenty od všech sdílených nájemců jsou ukládány ve stejných indexech Elasticsearch. Pokud potřebujete pohled na konkrétního nájemce v Kibana, filtrovat podle pole
tenantv události (pokud jej parsery nastaví). - Zachovejte stejné schéma, filtry a nastavení ILM napříč kopiemi, aby přestavby artefaktů neměnily konfliktní šablony.
- Producenti (Parsec a další) pro každého sdíleného nájemce musí publikovat na tyto sdílené Kafka topic.
- Depositor nedupikuje Kafka konzumenty pro stejné topic; jedno předplatné obslouží všechny sdílené nájemce.
Šablona indexu¶
LogMan.io Depositor vytváří a aktualizuje šablonu indexu pro každý proud událostí.
Mapování v šabloně indexu je založeno na schématu event lane. Výchozí schéma pro event lane je /Schemas/ECS.yaml. Lze jej změnit 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
refresh_interval: 30s
Výchozí hodnota number_of_shards je 6, number_of_replicas je 1 a refresh_interval je 30s.
Poznámka
Pečlivě zvažte změnu výchozího nastavení a schématu. Změna výchozích hodnot obvykle způsobuje problémy, například neshodující se detekční pravidla pro danou událostní cestu, která používá jiné schéma.
Varování
Změny šablony indexu se projeví až po dalším přechodu indexu, pokud v Elasticsearch již existuje nějaký index.
Filtrování¶
Chcete-li filtrovat konkrétní atributy z příchozích událostí, které nemají být ukládány do Elasticsearch, použijte možnost filter se seznamem atributů, které mají být odstraněny z příchozích zpracovaných událostí. Tato možnost se nachází v sekci elasticsearch pro index events.
elasticsearch:
events:
index: lmio-<tenant>-events-<stream> # Index alias for events
filter:
- event.original
Politika životního cyklu¶
LogMan.io Depositor konfiguruje Index Lifecycle Policy každého proudu událostí.
Výchozí¶
Výchozí politika životního cyklu obsahuje čtyři fáze: hot, warm, cold a delete.
-
Výchozí horká fáze pro daný index končí, když velikost primární části přesáhne 16 GB nebo je starší než 7 dní.
-
Výchozí teplá fáze pro daný index začíná buď po skončení horké fáze, nebo po 7 dnech, a zapíná smršťování.
-
Výchozí studená fáze pro daný index začíná po 14 dnech.
-
Fáze mazání odstraní index po 180 dnech.
Vlastní¶
Výchozí ILM lze změnit, i když to není doporučeno pro většinu případů. Můžete tak učinit zadáním sekce lifecycle v rámci sekce elasticsearch u dané event lane:
---
define:
type: lmio/event-lane
elasticsearch:
events:
lifecycle:
hot:
min_age: "0ms"
actions:
rollover:
max_primary_shard_size: "25gb" # We want bigger primary shards than default
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
!!! varování „Nastavte kompletní ILM politiku.“
I když se snažíte změnit jen jednu z fází, musíte specifikovat celou politiku životního cyklu. Vlastní ILM zcela přepisuje výchozí konfiguraci.
!!! tip „Fáze bez mazání“
Pokud nechcete nastavit fázi delete, prostě vynechte sekci delete v událostní lince. Použijte to pouze, pokud opravdu víte, co děláte!