Konfigurace nového LogMan.io Parser instance
Pro vytvoření nové parser instance pro nový zdroj dat (soubory, lookups, SysLog atd.) je potřeba provést následující tři kroky:
- Vytvoření nového Kafka topicu pro nahrání sesbíraných dat
- Konfigurace příslušných LogMan.io Parser instancí v site-repository
- Nasazení
Vytvoření nového Kafka topicu pro nahrání sesbíraných dat
Nejprve je potřeba vytvořit nový topic pro sesbírané události.
Topic sesbíraných událostí jsou specifické pro každý typ zdroje dat a tenant (zákazníka). Standard pro pojmenování takovýchto Kafka topic je následující:
collected-<tenant>-<type>
kde tenant je název tenant v malých písmenách a type je typ zdroje dat. Příklady zahrnují:
collected-railway-syslog
collected-ministry-files
collected-johnandson-databases
collected-marksandmax-lookups
Topic pro sesbíraná data pro všechny tenanty může mít následující formát:
collected-default-lookups
Pro vytvoření nového Kafka topic:
1.) Vstupte do libovolného Kafka kontejneru přes docker exec -it o2czsec-central_kafka_1 bash
2.) Použijte následující příkaz pro vytvoření topicu pomocí /usr/bin/kafka-topics
:
/usr/bin/kafka-topics --zookeeper lm1:12181,lm2:22181,lm3:32181 --create --topic collected-company-type -partitions 6 --replication-factor 1
Počet partition závisí na očekávaném množství dat a počtu instancí LogMan.io Parser. Vzhledem k tomu, že ve většině nasazení jsou tři běžící servery v clusteru, doporučuje se použít alespoň tři partition.
Konfigurace příslušných LogMan.io Parser instancí v site-repository
Vstupte do site repository s konfiguracemi pro LogMan.io cluster. Pro více informací o site repository se podívejte na sekci Naming Standards v části Reference.
Poté v každé složce serveru (jako je lm1, lm2, lm3) vytvořte následující záznam v souboru docker-compose.yml
:
<tenant>-<type>-lmio-parser:
restart: on-failure:3
image: docker.teskalabs.com/lmio/lmio-parser
network_mode: host
depends_on:
- kafka
- elasticsearch-master
volumes:
- ./<tenant>-<type>/lmio-parser:/data
- ../lookups:/lookups
- /data/hdd/log/<tenant>-<type>/lmio-parser:/log
- /var/run/docker.sock:/var/run/docker.sock
nahraďte <tenant>
názvem tenantu/zákazníka (například railway) a <type>
typem dat (například lookups), příklady zahrnují:
railway-lookups-lmio-parser
default-lookups-lmio-parser
hbbank-syslog-lmio-parser
Když je záznam pro Docker Compose zahrnut v souboru docker-compose.yml
, postupujte podle těchto kroků:
1.) V každé složce serveru (lm1, lm2, lm3) vytvořte složku <tenant>-<type>
2.) Ve složkách <tenant>-<type>
vytvořte složku lmio-parser
3.) V vytvořených složkách lmio-parser
vytvořte soubor lmio-parser.conf
4.) Upravte lmio-parser.conf
a zadejte následující konfiguraci:
[asab:docker]
name_prefix=<server_name>-
socket=/var/run/docker.sock
# Deklarace
[declarations]
library=zk://lm1:12181,lm2:22181,lm3:32181/lmio/library.lib ./data/declarations
groups=<group>
raw_event=raw_event
count=count
tenant=tenant
timestamp=@timestamp
# API
[asab:web]
listen=0.0.0.0 0
[lmioparser:web]
listen=0.0.0.0 0
# Logování
[logging:file]
path=/log/log.log
backup_count=3
rotate_every=1d
# Připojení k Kafka
[connection:KafkaConnection]
bootstrap_servers=lm1:19092,lm2:29092,lm3:39092
[pipeline:ParsersPipeline:KafkaSource]
topic=collected-<tenant>-<type>
group_id=lmio_parser_<tenant>_<type>
# Kafka sinks
[pipeline:EnrichersPipeline:KafkaSink]
topic=lmio-events
[pipeline:ParsersPipeline:KafkaSink]
topic=lmio-others
[pipeline:ErrorPipeline:KafkaSink]
topic=lmio-others
[asab:zookeeper]
servers=lm1:12181,lm2:22181,lm3:32181
path=/lmio/library.lib
[zookeeper]
urls=lm1:12181,lm2:22181,lm3:32181
servers=lm1:12181,lm2:22181,lm3:32181
path=/lmio/library.lib
# Perzistentní úložiště lookups
[asab:storage] # tato sekce je používána lookups
type=elasticsearch
[elasticsearch]
url=http://<server_name>:9200/
username=<secret_username>
password=<secret_password>
# Aktualizace lookups pipelines
[pipeline:LookupChangeStreamPipeline:KafkaSource]
topic=lmio-lookups
group_id=lmio_parser_<tenant>_<type>_<server_name>
[pipeline:LookupModificationPipeline:KafkaSink]
topic=lmio-lookups
# Metriky
[asab:metrics]
target=influxdb
[asab:metrics:influxdb]
url=http://lm4:8086/
db=db0
username=<secret_username>
password=<secret_password>
kde nahraďte každé z použití:
<group>
skupinou deklarací parseru načtenou v ZooKeeper; pro více informací se podívejte na sekci Library v části Reference této dokumentace
<server_name>
s názvem kořenové složky serveru, jako je lm1, lm2, lm3
<tenant>
s názvem vašeho tenantu, jako je hbbank, default, railway atd.
<type>
s typem vašeho zdroje dat, jako je lookups, syslog, soubory, databáze atd.
<secret_username>
a <secret_password>
s technickými údaji účtu ElasticSearch a InfluxDB,
které lze vidět v jiných konfiguracích ve site repository
Pro více informací o tom, co každá sekce konfigurace znamená, prosím podívejte se na sekci Configuration v postranním menu.
Nasazení
Pro nasazení nového parseru, prosím:
1.) Jděte na každý z LogMan.io serverů (lm1, lm2, lm3)
2.) Proveďte git pull
ve složce site repository, která by měla být umístěna ve /opt
adresáři
3.) Spusťte příkaz docker-compose up -d <tenant>-<type>-lmio-parser
pro spuštění instance LogMan.io Parser
4.) Nasadit a nakonfigurovat SyslogNG, LogMan.io Ingestor atd. pro odeslání sesbíraných dat do Kafka topicu collected-<tenant>-<type>
4.) Zkontrolujte logy ve složce /data/hdd/log/<tenant>-<type>/lmio-parser
pro jakékoliv chyby k opravě
(nahraďte <tenant>
a <type>
odpovídajícím způsobem)
Poznámky
Pro vytvoření datového streamu pro lookups, prosím použijte lookups
jako typ a podívejte se na sekci Lookups v postranním menu
pro správné vytvoření skupiny deklarací pro parsing.