Logstash v Dockeri

Logstash V Dockeri



Logstash je kanál na spracovanie údajov s otvoreným zdrojom, ktorý vám umožňuje zhromažďovať, spracovávať a posielať údaje denníkov z rôznych zdrojov.

V tomto návode vás prevedieme procesom spustenia Logstash v kontajneri Docker so základnou konfiguráciou.

Požiadavky:

Skôr ako začneme s tutoriálom, uistite sa, že máte nasledujúce:







  1. Na vašom hostiteľskom počítači nainštalovaný Docker (odporúča sa verzia 23 a vyššia)
  2. Na vašom počítači je nainštalovaná aplikácia Docker Compose

Po splnení daných požiadaviek môžeme pokračovať v návode.



Nastavte konfiguračný súbor Logstash

Logstash používa konfiguračné súbory na definovanie spôsobu prijímania, filtrovania a odosielania údajov na výstup. Existuje celý rad možností, ktoré môžete nakonfigurovať, ako môžete uviesť v oficiálnej dokumentácii.



V našom príklade sa zameriame na základnú konfiguráciu, ktorá prijíma údaje zo súboru denníka, filtruje ho na zodpovedajúce záznamy a odosiela údaje do súboru.





Vytvorte súbor s názvom „logstash.conf“ a pridajte konfiguráciu takto:

vstup {
súbor {
cesta => '/var/log/apache/access.log'

počiatočná_pozícia => 'začiatok'

sincedb_path => '/dev/null'

ignore_older => 0
}
}

filter {
if [správa] =~ 'CHYBA' {
grok {
zápas => { 'správa' => '%{COMBINEDAPACHELOG}' }
}
}
}

výkon {
súbor {
cesta => '/var/log/apache/error_logs.log'
}
}

Predchádzajúci súbor definuje konfiguráciu, ako je uvedené nižšie:

  1. Vstupná sekcia – Vstupná sekcia používa zásuvný modul na čítanie súboru denníka Apache, ktorý sa nachádza v /var/log/apache/access.log.
    • Potom nastavíme počiatočnú pozíciu na začiatok, čo umožňuje Logstashe čítať celý súbor od začiatku.
    • Sincedb_path – Tento parameter nám umožňuje zakázať sledovanie sincedb Logstash nastavením hodnoty na /dev/null. To zaisťuje, že Logstash vždy číta od začiatku súboru.
    • Ignore_older – Nastavenie hodnoty tohto parametra na 0 umožní Logstash spracovať všetky záznamy v protokolovom súbore.
  2. Sekcia Filter – V sekcii filter definujeme vzor filtra na kontrolu, či správa protokolu obsahuje slovo ERROR. Môžete upraviť podmienky pre filtrovacie bloky, aby sa filtrovali pre presnejšie zhody v súbore.
    • Ak je podmienka splnená, použijeme filter grok na analýzu riadku protokolu Apache pomocou vzoru COMBINEDAPACHELOG, ktorý je vstavaným vzorom v Logstash na analýzu protokolov Apache.
  3. Výstupná sekcia – Táto sekcia nám umožňuje definovať výstupný formát pre zodpovedajúce položky.
    • V našom prípade ich zapisujeme do súboru /var/log/apache/error_logs.log pomocou parametra path.

To by nám malo poskytnúť základnú konfiguráciu Logstash, ktorá nám umožní demonštrovať niektoré základné funkcie Logstash.

Viac informácií o vytváraní a konfigurácii kanálov Logstash nájdete v nasledujúcom poskytnutom zdroji dokumentácie:

https://www.elastic.co/guide/en/logstash/current/configuration.html

Vytvorte súbor Dockerfile

Keď definujeme konfigurácie Logstash, môžeme pokračovať a naučiť sa spúšťať kontajner. V tom istom adresári ako súbor „logstash.conf“ vytvorte nový súbor s názvom „Dockerfile“.

Upravte tento súbor a pridajte položky takto:

Z docker.elastic.co/logstash/logstash:8.9.2

KOPÍROVAŤ logstash.conf /usr/share/logstash/pipeline/logstash.conf

V uvedenom príklade definujeme základný obrázok ako oficiálny obrázok Logstash s použitím verzie 8.9.2.

Potom skopírujeme súbor „logstash.conf“, ktorý sme vytvorili, do /usr/share/logstash/pipeline/logstash.conf na obrázku.

Vytvorte obrázok Docker

Ďalej prejdite do adresára, ktorý obsahuje konfiguračný súbor Dockerfile a Logstash. Spustite nasledujúci príkaz na vytvorenie obrázka:

$ zostava dockera -t custom-logstash-image .

Spustite kontajner Logstash

Teraz, keď sme vytvorili obrázok Docker, môžeme spustiť kontajner Logstash pomocou príkazu „spustiť“ Docker takto:

$ docker spustiť -d --názov logstash-server custom-logstash-image

Toto by malo spustiť kontajner Logstash pomocou obrázka, ktorý sme vytvorili v predchádzajúcom kroku.

Overte denníky kontajnera Logstash

Ak chcete overiť, či Logstash funguje správne, môžete skontrolovať protokoly kontajnera pomocou nasledujúceho príkazu:

$ protokoly dockerov < názov_kontajnera >

Výkon:

Záver

V tomto návode ste sa naučili, ako môžete rýchlo nastaviť server Logstash, ktorý beží ako Docker pomocou vlastného konfiguračného súboru. Odporúčame pozrieť si dokumentáciu o parametroch obrazu a možnostiach konfigurácie.