Přeskočit obsah

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:

/EventLanes/tenant/eventlane.yaml
---
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:

/EventLanes/tenant/eventlane.yaml
---
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:

/EventLanes/tenant/eventlane.yaml
---
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:

/EventLanes/tenant/eventlane.yaml
---
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!