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)
- Název tenantu, pod kterým služba běží.
- Název event lane použitý pro Kafka témata, cestu pro parsovací pravidla a volitelně charset, schéma a časové pásmo.
- Adresy Kafka serverů v clusteru.
- 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)
- Název received tématu, ze kterého jsou události načítány.
- Název events tématu, do kterého jsou úspěšně parsované události odesílány.
- Název others tématu, do kterého jsou neúspěšně parsované události odesílány.
- Specifikujte která parsovací pravidla aplikovat.
- Název tenanta, pod kterým tato instance Parsecu běží.
- Schéma by mělo být uloženo ve složce
/Schemas/
v knihovně. - Adresy Kafka serverů v clusteru.
- 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ě:
- Když je použit event lane,
group.id
má formátlmio-parsec-<tenant>-<eventlane>
. - Když není použit event lane,
group.id
má formátlmio-parsec-<tenant>-<parser name>
. group.id
může být přepsán v konfiguraciParsecPipeline
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]
...