Přeskočit obsah

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.