LogMan.io Parsec Konfigurace¶
Závislosti¶
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.
Model¶
Pro spuštění aplikace ji zahrňte do modelu a klikněte na tlačítko Použít.
define:
type: rc/model
services:
lmio-parsec:
instances:
<instance-id>: # Nahraďte jedinečnou identifikací instance
node: <node> # Nahraďte názvem uzlu
asab:
config:
eventlane:
name: /EventLanes/<tenant>/<event-lane>.yaml # Nahraďte cestou k event lane
tenant:
name: <tenant> # Nahraďte názvem vašeho tenanta
Tip
Instance LMIO Parsec jsou automaticky vytvářeny a spravovány LMIO Elmanem. V typické situaci není potřeba nastavovat vlastní konfiguraci.
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 z něj.
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
Poznámka
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ý parsec 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.idmá formátlmio-parsec-<tenant>-<eventlane>. - Když není použit event lane,
group.idmá formátlmio-parsec-<tenant>-<parser name>. group.idmůže být přepsán v konfiguraciParsecPipelinená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 parametru 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]
...