LogMan.io Collector
Vstupy
Dostupné vstupy a možnosti konfigurace
input:Kafka:
, input:ODBC:
, input:TCP:
, input:Stream:
, input:Datagram:
, input:SubProcess:
, input:SmartFile:
, input:FileBlock:
, input:File:
, input:XML:
, input:AzureEventHub:
, input:BitDefender
, input:Zabbix
Vstupy Microsoft Office 365 naleznete v kapitole Sběr z Microsoft Office 365. Pro vstupy ze systému Windows viz kapitolu Collecting from Windows.
input:Kafka
Tato volba je dostupná od verze v22.32
.
Vytvoří konzumenta Kafky pro konkrétní .topic(s).
Možnosti konfigurace související s navázáním spojení:
bootstrap_servers: # uzly Kafka, ze kterých se mají zprávy číst (například `kafka1:9092,kafka2:9092,kafka3:9092`)
Konfigurační možnosti související s nastavením Kafka Consumer:
topic: # Název témat, ze kterých se mají zprávy číst (například `lmio-events` nebo `^lmio.*`)
group_id: # Název skupiny spotřebitelů (například: `collector_kafka_consumer`)
refresh_topics: # (nepovinné) Pokud se očekává, že během konzumace bude vytvořeno více témat odpovídajících názvu tématu, tato volba určuje v sekundách, jak často se mají obnovovat odběry témat (například: `300`).
Volby bootstrap_servers
, topic
a group_id
jsou vždy povinné.
topic
může být jméno, seznam jmen oddělených mezerami nebo jednoduchý regex (pro porovnání všech dostupných témat použijte ^.*
)
Další možnosti konfigurace naleznete v https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md.
input:ODBC
Zajišťuje vstup prostřednictvím připojení ovladače ODBC k zadané databázi.
Možnosti konfigurace související s navázáním spojení:
host: # Název hostitele databázového serveru
port: # Port, na kterém běží databázový server
user: # Uživatelské jméno pro přihlášení k databázovému serveru (obvykle technický/přístupový účet)
heslo: # Heslo pro výše uvedeného uživatele
driver: # Předinstalovaný ovladač ODBC (viz seznam níže)
db: # Název databáze, ke které se má přistupovat
connect_timeout: # (nepovinné) Časový limit připojení v sekundách pro fond ODBC (výchozí: 1)
reconnect_delay: # (nepovinné) Zpoždění opětovného připojení v sekundách po vypršení časového limitu pro fond ODBC (výchozí: 5,0)
output_queue_max_size: # (nepovinné) Maximální velikost výstupní fronty, tj. úložiště v paměti (výchozí: 10)
max_bulk_size: # (nepovinné) Maximální velikost jedné hromadné fronty složené z příchozích záznamů (výchozí 2)
output: # Na který výstup se mají příchozí události posílat
Možnosti konfigurace týkající se dotazování do databáze:
query: # Dotaz pro pravidelné volání databáze
chilldown_period: # Určuje v sekundách, jak často bude výše uvedený dotaz volán (výchozí: 5)
last_value_enabled: # Zapnout kontrolu duplicity poslední hodnoty (true/false)
last_value_table: # Zadejte tabulku pro SELECT max({}) from {};
last_value_column: # Sloupec v dotazu, který se použije pro získání poslední hodnoty
last_value_storage: # Trvalé úložiště pro aktuální poslední hodnotu (výchozí: ./var/last_value_storage)
last_value_query: # (nepovinné) Pro úplné zadání dotazu na poslední hodnotu (v případě, že je tato možnost nastavena, nebude se brát v úvahu last_value_table)
last_value_start: # (nepovinné) První hodnota, od které se má začít (výchozí: 0)
Dostupné ovladače ODBC pro input:ODBC:
ODBC Driver 17 for SQL Server
, MySQL ODBC 8.0 Unicode Driver
, MySQL ODBC 8.0 ANSI Driver
, Oracle 19 ODBC driver
, MariaDB
Tyto ovladače jsou předinstalovány v kontejneru lmio-collector
Docker.
input:TCP
, input:Stream
, input:Datagram
.
Tyto vstupy naslouchají na dané adrese nebo v daném souboru pomocí TCP/UDP nebo unixového socketu. Ujistěte se, že porty nebo soubory jsou propagovány i mimo kontejner Docker, pokud používáte Docker.
Možnosti konfigurace pro naslouchání na dané cestě:
adresa: # 127.0.0.1:8888 nebo /data/mysocket).
výstup: # Na který výstup se mají posílat příchozí události
Následující konfigurační možnosti jsou k dispozici pouze pro input:Datagram
:
max_packet_size: # (nepovinné) Určuje maximální velikost paketů v bajtech (výchozí: 65536).
receiver_buffer_size: # (nepovinné) Omezuje velikost vyrovnávací paměti přijímače v bajtech (výchozí: 0)
input:TCPBSDSyslogRFC6587
, input:TCPBSDSyslogNoFraming
Speciální případy vstupu TCP pro parsování SysLog přes TCP. Další informace naleznete v https://datatracker.ietf.org/doc/html/rfc6587 a https://datatracker.ietf.org/doc/html/rfc3164#section-4.1.1
Možnosti konfigurace pro naslouchání na dané cestě:
address: # 127.0.0.1:8888 nebo /data/mysocket).
výstup: # Na který výstup se mají posílat příchozí události
Následující konfigurační možnosti jsou k dispozici pouze pro input:TCPBSDSyslogRFC6587
:
max_sane_msg_len: # (nepovinné) Maximální velikost zprávy SysLog, která má být přijata, v bajtech (výchozí: 10000)
Následující konfigurační volby jsou dostupné pouze pro input:TCPBSDSyslogNoFraming
:
buffer_size: # (nepovinné) Maximální velikost zprávy SysLog, která má být přijata, v bajtech (výchozí: 64 * 1024).
varianta: # (nepovinné) Varianta formátu příchozí zprávy SysLog, může být `auto`, `nopri` bez čísla PRI na začátku a `standard` s PRI (výchozí: auto)
input:SubProcess
Vstup SubProcess spustí příkaz jako podproces sběrače LogMan.io, zatímco příkaz
pravidelně kontroluje jeho výstup na stdout
(řádky) a stderr
.
Konfigurační možnosti zahrnují:
příkaz: # tail -f /data/tail.log).
output: # Na který výstup se mají odesílat příchozí události
line_len_limit: # (nepovinné) Limit délky jednoho načteného řádku (výchozí: 1048576)
ok_return_codes: # (nepovinné) Které návratové kódy označují stav běhu příkazu (výchozí: 0)
input:SmartFile
Simuluje chování tail -f
na více souborech, jejichž obsah může být dynamicky měněn.
nebo mohou být soubory zcela odstraněny jiným procesem.
Vstup Smart File vytvoří sledovaný objekt souboru pro každou cestu k souboru, která je zadána v poli
konfiguraci v možnostech cesta
.
Sledovaný soubor pravidelně kontroluje, zda se v něm nevyskytují nové řádky, a pokud se nějaký vyskytne,
je řádek načten v bajtech a předán dále do pipeline včetně metainformací
jako je název souboru a extrahované části cesty k souboru (viz konfigurace extract_
níže).
Aktuální pozice v souboru je uložena v paměti poslední pozice v proměnné position. Pokud je soubor s uložením poslední pozice smazán nebo není zadán, jsou všechny soubory načteny znovu. po restartu LogMan.io Correlator, tj. žádná perzistence znamená reset čtení při restartu.
Pozor: Pokud je velikost souboru menší než předchozí zapamatovaná velikost souboru, soubor se znovu přečte jako celek a odešle se do potrubí rozdělený na řádky.
Mezi dostupné možnosti konfigurace patří:
cesta: (výchozí: /data/smarttest/*).
last_position_storage: Trvalé úložiště pro aktuální pozice v načítaných souborech (výchozí: ./var/last_position_storage)
scan_period: (nepovinné) Perioda skenování souborů v sekundách (výchozí: 3)
read_size: (nepovinné) Jeden cyklus čtení v bajtech (výchozí: 4096)
recursive: (nepovinné) Rekurzivní skenování zadaných cest (výchozí: True)
newline: (nepovinné) Oddělovač řádků souboru, např. \n (výchozí je oddělovač řádků OS)
preserve_newline: (nepovinné) Zachování znaku nového řádku ve výstupu (výchozí: False)
Následující konfigurační volby umožňují kontrolovat, zda čas modifikace načítaných souborů není starší než zadaný limit.
Například limit ignore_older_than
pro načítané soubory lze nastavit na ignore_older_than: 20d
nebo ignore_older_than: 100s
.
ignore_older_than: (nepovinné) Limit ve dnech, hodinách, minutách nebo sekundách pro čtení pouze souborů změněných po tomto limitu (výchozí: "", např. "1d", "1h", "1m", "1s").
read_only_increments: (nepovinné) číst pouze řádky vytvořené po spuštění aplikace (výchozí: True)
K dispozici jsou také volby pro extrakci informací z názvu souboru nebo cesty k souboru pomocí regulárního výrazu.
Extrahované části jsou pak uloženy jako metadata (která implicitně obsahují jedinečné meta ID a název souboru).
Konfigurační volby začínají předponou extract_
a zahrnují následující:
extract_source: # (nepovinné) název_souboru nebo cesta_k_souboru (výchozí: cesta_k_souboru)
extract_regex: # (nepovinný) regex pro extrakci názvů polí ze zdroje extraktu (ve výchozím nastavení vypnuto)
extract_regex
musí obsahovat pojmenované skupiny. Názvy skupin se použijí jako klíče polí pro extrahované informace.
Nepojmenované skupiny nevytvářejí žádná data.
Uvažujte například následující konfiguraci:
extract_regex: ^/data/(?P<dvchost>\w+)/(?P<tenant>\w+)\.log$
Extrahovaná metadata pro soubor /data/myserver.xyz/tenant-1.log
budou následující
{
"meta": {
"dvchost": "myserver.xyz",
"tenant": "tenant-1"
}
}
Následující příklad konfigurace vstupu SmartFile
s extrakcí
atributů z názvu souboru pomocí regexu a související výstup File
:
input:SmartFile:SmartFileInput:
cesta: ./etc/tail.log
extract_source: název_souboru
extract_regex: ^(?P<dvchost>\w+).log$
output: FileOutput
output:File:FileOutput:
cesta: /data/my_path.txt
prepend_meta: true
debug: true
prepend_meta: true
předvyplní metainformace, jako jsou extrahované názvy polí, do řádku/události protokolu jako dvojice klíč-hodnota oddělené mezerami
input:File
, input:FileBlock
, input:XML
Tyto vstupy načítají zadané soubory po řádcích (input:File
) nebo jako celý blok (input:FileBlock
, input:XML
).
a předávají jejich obsah dále do koncovky.
V závislosti na režimu pak mohou být soubory přejmenovány na <FILE_NAME>-processed
.
a je-li jich pomocí zástupného znaku zadáno více, bude otevřen další soubor,
načten a zpracován stejným způsobem.
Dostupné konfigurační možnosti pro otevírání, čtení a zpracování souborů zahrnují:
cesta: # Zadejte cestu k souboru (souborům), lze použít i zástupné znaky (např. /data/lines/*).
chilldown_period: # Pokud je v cestě použito více souborů nebo zástupný znak, zadejte, jak často v sekundách se mají kontrolovat nové soubory (výchozí: 5)
output: # Na který výstup se mají posílat příchozí události
mode: # (nepovinné) Režim, ve kterém se bude soubor číst (výchozí: 'rb')
newline: # (nepovinné) Oddělovač řádků souboru (výchozí je hodnota os.linesep)
post: # (nepovinné) Určuje, co se má se souborem stát po přečtení - delete (smazání souboru), noop (žádné přejmenování), move (přejmenování na `<FILE_NAME>-processed`, výchozí)
exclude (vyloučit): # (nepovinné) Cesta k názvům souborů, které mají být vyloučeny (má přednost před 'include')
include: # (nepovinné) Cesta k názvům souborů, které mají být zahrnuty
encoding: # (nepovinné) Kódování hlsetů obsahu souboru
move_destination: # (nepovinné) Cílová složka pro příspěvek 'move', ujistěte se, že je mimo cestu uvedenou výše
lines_per_event: # (nepovinné) Počet řádků, po kterých metoda čtení přejde do klidového stavu, aby umožnila ostatním operacím provést jejich úkoly (výchozí: 10000)
event_idle_time: # (nepovinné) Doba v sekundách, po kterou metoda čtení přejde do klidového stavu, viz výše (výchozí: 0,01)