Přeskočit obsah

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.