Logstash v Dockeru

Logstash V Dockeru



Logstash je kanál pro zpracování dat s otevřeným zdrojovým kódem, který vám umožňuje shromažďovat, zpracovávat a předávat data protokolu z různých zdrojů.

V tomto tutoriálu vás provedeme procesem spuštění Logstashe v kontejneru Docker se základní konfigurací.

Požadavky:

Než začneme s výukovým programem, ujistěte se, že máte následující:







  1. Nainstalovaný Docker na vašem hostitelském počítači (doporučuje se verze 23 a vyšší)
  2. Na vašem počítači je nainstalována aplikace Docker Compose

Po splnění daných požadavků můžeme pokračovat v tutoriálu.



Nastavte konfigurační soubor Logstash

Logstash používá konfigurační soubory k definování toho, jak jsou data přijímána, filtrována a odesílána na výstup. Existuje celá řada možností, které můžete nakonfigurovat, jak můžete odkazovat na oficiální dokumentaci.



V našem příkladu se soustředíme na základní konfiguraci, která ingestuje data ze souboru protokolu, filtruje je pro odpovídající záznamy a odesílá data do souboru.





Vytvořte soubor s názvem „logstash.conf“ a přidejte konfiguraci následovně:

vstup {
soubor {
cesta => '/var/log/apache/access.log'

počáteční_pozice => 'začátek'

sincedb_path => '/dev/null'

ignore_older => 0
}
}

filtr {
if [zpráva] =~ 'CHYBA' {
Grok {
zápas => { 'zpráva' => '%{COMBINEDAPACHELOG}' }
}
}
}

výstup {
soubor {
cesta => '/var/log/apache/error_logs.log'
}
}

Předchozí soubor definuje konfiguraci, jak je znázorněno v následujícím:

  1. Vstupní sekce – Vstupní sekce používá zásuvný modul pro zadávání souborů ke čtení souboru protokolu Apache umístěného v /var/log/apache/access.log.
    • Poté nastavíme počáteční pozici na začátku, což umožňuje Logstashi číst celý soubor od začátku.
    • Sincedb_path – Tento parametr nám umožňuje zakázat sledování sincedb Logstash nastavením hodnoty na /dev/null. To zajišťuje, že Logstash vždy čte od začátku souboru.
    • Ignore_older – Nastavením hodnoty tohoto parametru na 0 umožní Logstash zpracovat všechny záznamy souboru protokolu.
  2. Sekce filtr – V sekci filtr definujeme vzor filtru pro kontrolu, zda zpráva protokolu obsahuje slovo ERROR. Můžete upravit podmínky pro filtrační bloky a filtrovat pro přesnější shody v souboru.
    • Pokud je podmínka splněna, použijeme filtr grok k analýze řádku protokolu Apache pomocí vzoru COMBINEDAPACHELOG, který je vestavěným vzorem v Logstash pro analýzu protokolů Apache.
  3. Výstupní sekce – Tato sekce nám umožňuje definovat výstupní formát pro odpovídající položky.
    • V našem případě je zapisujeme do souboru /var/log/apache/error_logs.log pomocí parametru path.

To by nám mělo poskytnout základní konfiguraci Logstashe, která nám umožní předvést některé základní funkce Logstashe.

Další informace o vytváření a konfiguraci kanálů Logstash naleznete v následujícím poskytnutém zdroji dokumentace:

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

Vytvořte soubor Dockerfile

Jakmile definujeme konfigurace Logstash, můžeme pokračovat a naučit se spouštět kontejner. Ve stejném adresáři jako soubor „logstash.conf“ vytvořte nový soubor s názvem „Dockerfile“.

Upravte tento soubor a přidejte položky následovně:

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

ZKOPÍROVAT logstash.conf /usr/share/logstash/pipeline/logstash.conf

V uvedeném příkladu definujeme základní obrázek jako oficiální obrázek Logstash pomocí verze 8.9.2.

Poté zkopírujeme soubor „logstash.conf“, který jsme vytvořili, do /usr/share/logstash/pipeline/logstash.conf v obrázku.

Vytvořte Docker Image

Dále přejděte do adresáře, který obsahuje konfigurační soubor Dockerfile a Logstash. Spusťte následující příkaz pro vytvoření obrázku:

$ sestavení dockeru -t custom-logstash-image .

Spusťte Logstash Container

Nyní, když jsme vytvořili obraz Dockeru, můžeme spustit kontejner Logstash pomocí příkazu Docker „run“ následovně:

$ docker spustit -d --název logstash-server custom-logstash-image

To by mělo spustit kontejner Logstash pomocí obrazu, který jsme vytvořili v předchozím kroku.

Ověřte protokoly kontejneru Logstash

Chcete-li ověřit, zda Logstash běží správně, můžete zkontrolovat protokoly kontejneru pomocí následujícího příkazu:

$ protokoly dockeru < název_kontejneru >

Výstup:

Závěr

V tomto kurzu jste se naučili, jak můžete rychle nastavit server Logstash, který běží jako Docker, pomocí vlastního konfiguračního souboru. Doporučujeme zkontrolovat dokumentaci o parametrech obrazu a možnostech konfigurace.