Přeskočit obsah

LogMan.io Parsec Konfigurace

Závislosti LogMan.io Parsec:

  • Apache Kafka: Zdroj neparsovaných událostí a cíl parsovaných událostí.
  • Apache Zookeeper: Obsah knihovny, hlavně parsovací pravidla, ale také další sdílené informace o clusteru.

Minimální konfigurace s event lane

LogMan.io Parsec může být nakonfigurován s nebo bez event lane. Doporučujeme použít první možnost.

Když je použit event lane, LogMan.io Parsec čte Kafka témata, cestu pro parsovací pravidla a volitelně charset, schéma a časové pásmo.

Toto je minimální konfigurace pro LogMan.io Parsec s event lane:

[tenant]
name=<tenant>  # (1)

[eventlane]
name=/EventLanes/<tenant>/<eventlane>.yaml  #(2)

[library]
providers=
    zk:///library
    ...

[kafka]
bootstrap_servers=kafka-1:9092,kafka-2:9092,kafka-3:9092  # (3)

[zookeeper]
servers=zookeeper-1:2181,zookeeper-2:2181,zookeeper-3:2181  # (4)
  1. Název tenantu, pod kterým služba běží.
  2. Název event lane použitý pro Kafka témata, cestu pro parsovací pravidla a volitelně charset, schéma a časové pásmo.
  3. Adresy Kafka serverů v clusteru.
  4. Adresy Zookeeper serverů v clusteru.

Apache Zookeeper

Každá LogMan.io mikroslužba by měla inzerovat sama sebe do Zookeeper.

[zookeeper]
servers=zookeeper-1:2181,zookeeper-2:2181,zookeeper-3:2181

Knihovna

Konfigurace knihovny specifikuje odkud jsou načítány deklarace (definice) Parsec.

Knihovna může sestávat z jednoho nebo více poskytovatelů, typicky Zookeeper nebo git repozitáře.

[library]
providers=
    zk:///library
    # další vrstvy knihovny mohou být zahrnuty

Pozor

Pořadí vrstev je důležité. Vyšší vrstvy přepíší vrstvy pod nimi. Pokud je jeden soubor přítomen ve více vrstvách, pouze ten zahrnutý v nejvyšší vrstvě je načten.

Apache Kafka

Připojení k Apache Kafka musí být nakonfigurováno tak, aby bylo možné přijímat a odesílat události:

[kafka]
bootstrap_servers=kafka-1:9092,kafka-2:9092,kafka-3:9092

Bez této konfigurace nelze správně navázat spojení k Apache Kafka.

Minimální konfigurace bez event lane

Pokud není použit event lane, musí být parsovací pravidla, časové pásmo a schéma zahrnuty v konfiguraci.

Toto je konfigurace požadovaná pro LogMan.io Parsec když není použit event lane:

[pipeline:ParsecPipeline:KafkaSource]
topic=received.<tenant>.<stream>  # (1)

[pipeline:ParsecPipeline:KafkaSink]
topic=events.<tenant>.<stream>  # (2)

[pipeline:ErrorPipeline:KafkaSink]
topic=others.<tenant>  # (3)

[tenant]
name=<tenant>  # (5)
schema=/Schemas/ECS.yaml  # (6)

[parser]
name=/Parsers/<parsing rule>  # (4)

[library]
providers=
    zk:///library
    ...

[kafka]
bootstrap_servers=kafka-1:9092,kafka-2:9092,kafka-3:9092  # (7)

[zookeeper]
servers=zookeeper-1:2181,zookeeper-2:2181,zookeeper-3:2181  # (8)
  1. Název received tématu, ze kterého jsou události načítány.
  2. Název events tématu, do kterého jsou úspěšně parsované události odesílány.
  3. Název others tématu, do kterého jsou neúspěšně parsované události odesílány.
  4. Specifikujte která parsovací pravidla aplikovat.
  5. Název tenanta, pod kterým tato instance Parsecu běží.
  6. Schéma by mělo být uloženo ve složce /Schemas/ v knihovně.
  7. Adresy Kafka serverů v clusteru.
  8. Adresy Zookeeper serverů v clusteru.

Parsovací pravidlo

Každý parsek musí vědět, jaká parsovací pravidla aplikovat.

[parser]
name=/Parsers/<parsing rule>

Název parseru specifikuje cestu, odkud jsou načítány deklarace parsovacích pravidel. MUSÍ BÝT uloženy ve složce /Parsers/. Parsovací pravidla jsou YAML soubory.

Standardní formát cesty je <vendor>/<type>, například Microsoft/IIS nebo Oracle/Listener, ale v případě, že je použita pouze jedna technologie, může být použito pouze jméno poskytovatele, například Zabbix nebo Devolutions.

Konfigurace event lane

Tato sekce volitelně specifikuje významné atributy parsovaných událostí.

[eventlane]
timezone=Europe/Prague
charset=iso8859_2

timezone: Pokud zdroj logů produkuje logy v konkrétním časovém pásmu, odlišném od tenanta výchozího časového pásma, musí to být zde specifikováno. Název časového pásma musí být v souladu s IANA Time Zone Database. Interně jsou všechny časové značky převáděny na UTC.

charset: Pokud zdroj logů produkuje logy v kódování/charsetu odlišném od UTF-8, musí být charset zde specifikován. Seznam podporovaných charsetů je zde. Interně je každý text kódován v UTF-8.

Kafka témata

Specifikace těchto témat ze kterých přichází původní logy a témat, kde jsou úspěšně parsované a neúspěšně parsované logy odesílány.

Doporučený způsob volby témat je vytvořit jedno 'received' a jedno 'events' téma pro každý event lane, jedno 'others' téma pro každý tenant.

[pipeline:ParsecPipeline:KafkaSource]
topic=received.<tenant>.<stream>

[pipeline:ParsecPipeline:KafkaSink]
topic=events.<tenant>.<stream>

[pipeline:ErrorPipeline:KafkaSink]
topic=events.<tenant>

Varování

Název pipeline ParsecPipeline byl představen v Parsec verzi v23.37. Název KafkaParserPipeline, používaný v předchozích verzích, je zastaralý. Konec životnosti je 30. ledna 2024.

Kafka Consumer Group

LogMan.io Parsec často běží ve více instancích v clusteru. Sada instancí, které konzumují ze stejného received tématu, se nazývá Consumer group. Tato skupina je identifikována jedinečným group.id. Každá událost je konzumována jedním a pouze jedním členem skupiny.

LogMan.io Parsec vytváří group.id automaticky následovně:

  1. Když je použit event lane, group.id má formát lmio-parsec-<tenant>-<eventlane>.
  2. Když není použit event lane, group.id má formát lmio-parsec-<tenant>-<parser name>.
  3. group.id může být přepsán v konfiguraci ParsecPipeline následovně:
[pipeline:ParsecPipeline:KafkaSource]
group_id=lmio-parsec-<stream>

Varování

Změnou group.id se vytvoří nová consumer group a začne číst události od začátku. (To závisí na parametr auto.offset.reset Kafka clusteru, který je ve výchozím nastavení earliest.)

Metriky

Parsec produkuje vlastní telemetrii pro monitoring a také předává telemetrii od kolektorů do konfigurovaného úložiště telemetrických dat, jako je InfluxDB. Čtěte více o metrikách.

Zahrnout v konfiguraci:

[asab:metrics]
...