Logstash în Docker

Logstash In Docker



Logstash este o conductă de procesare a datelor open-source care vă permite să colectați, să procesați și să transmiteți datele de jurnal din diverse surse.

În acest tutorial, vă vom ghida prin procesul de rulare a Logstash într-un container Docker cu configurație de bază.

Cerințe:

Înainte de a începe cu tutorialul, asigurați-vă că aveți următoarele:







  1. Docker instalat pe mașina dvs. gazdă (se recomandă versiunea 23 și mai sus)
  2. Docker Compose a fost instalat pe computer

Cu cerințele date îndeplinite, putem continua cu tutorialul.



Configurați fișierul de configurare Logstash

Logstash folosește fișierele de configurare pentru a defini modul în care datele sunt ingerate, filtrate și trimise la ieșire. Există o varietate de opțiuni pe care le puteți configura, așa cum le puteți referi în documentația oficială.



Pentru exemplul nostru, ne concentrăm pe configurația de bază care ingerează datele dintr-un fișier jurnal, le filtrează pentru înregistrările care se potrivesc și scoate datele într-un fișier.





Creați un fișier numit „logstash.conf” și adăugați configurația după cum urmează:

intrare {
fisier {
cale => „/var/log/apache/access.log”

start_position => 'început'

sincedb_path => „/dev/null”

ignore_older => 0
}
}

filtru {
dacă [mesaj] =~ 'EROARE' {
grok {
potrivi => { 'mesaj' => „%{COMBINEDAPACHELOG}” }
}
}
}

ieșire {
fisier {
cale => „/var/log/apache/error_logs.log”
}
}

Fișierul anterior definește configurația așa cum se arată în continuare:

  1. Secțiunea de intrare – Secțiunea de intrare utilizează pluginul de introducere a fișierului pentru a citi fișierul jurnal Apache aflat în /var/log/apache/access.log.
    • Apoi setăm poziția de pornire la început, ceea ce permite Logstash să citească întregul fișier de la început.
    • Sincedb_path – Acest parametru ne permite să dezactivăm urmărirea sincedb a Logstash, setând valoarea la /dev/null. Acest lucru asigură că Logstash citește întotdeauna de la începutul fișierului.
    • Ignore_older – Setarea valorii acestui parametru la 0 permite Logstash să proceseze toate intrările din fișierul jurnal.
  2. Secțiunea de filtrare – În secțiunea de filtrare, definim modelul de filtru pentru a verifica dacă mesajul de jurnal conține cuvântul EROARE. Puteți ajusta condițiile pentru ca blocurile de filtrare să filtreze pentru potriviri mai precise în fișier.
    • Dacă condiția este îndeplinită, folosim filtrul grok pentru a analiza linia de jurnal Apache folosind modelul COMBINEDAPACHELOG care este un model încorporat în Logstash pentru a analiza jurnalele Apache.
  3. Secțiunea de ieșire – Această secțiune ne permite să definim formatul de ieșire pentru intrările care se potrivesc.
    • În cazul nostru, le scriem în fișierul /var/log/apache/error_logs.log folosind parametrul cale.

Acest lucru ar trebui să ne ofere o configurație de bază a Logstash, care ne permite să demonstrăm câteva funcții de bază ale Logstash.

Vă rugăm să consultați mai multe despre crearea și configurarea conductelor Logstash în următoarea resursă de documentație furnizată:

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

Creați fișierul Docker

Odată ce definim configurațiile Logstash, putem continua și învățam cum să rulăm containerul. În același director ca fișierul „logstash.conf”, creați un fișier nou numit „Dockerfile”.

Editați acest fișier și adăugați intrările după cum urmează:

DE LA docker.elastic.co/logstash/logstash:8.9.2

COPIEAZĂ logstash.conf /usr/share/logstash/pipeline/logstash.conf

În exemplul dat, definim imaginea de bază ca imaginea oficială Logstash folosind versiunea 8.9.2.

Copiem apoi fișierul „logstash.conf” pe care l-am creat în /usr/share/logstash/pipeline/logstash.conf din imagine.

Creați imaginea Docker

Apoi, navigați la directorul care conține fișierul de configurare Dockerfile și Logstash. Rulați următoarea comandă pentru a construi imaginea:

$ docker build -t custom-logstash-image .

Rulați Containerul Logstash

Acum că am construit imaginea Docker, putem rula un container Logstash utilizând comanda Docker „run” după cum urmează:

$ docker run -d --Nume logstash-server personalizat-logstash-imagine

Aceasta ar trebui să ruleze containerul Logstash folosind imaginea pe care am construit-o în pasul anterior.

Verificați jurnalele de containere Logstash

Pentru a verifica dacă Logstash rulează corect, puteți verifica jurnalele containerului folosind următoarea comandă:

$ jurnalele docker < container_name >

Ieșire:

Concluzie

În acest tutorial, ați învățat cum puteți configura rapid un server Logstash care rulează ca Docker folosind un fișier de configurare personalizat. Vă recomandăm să verificați documentația privind parametrii imaginii și opțiunile de configurare.