Logstash in Docker

Logstash In Docker



Logstash ist eine Open-Source-Datenverarbeitungspipeline, mit der Sie Protokolldaten aus verschiedenen Quellen sammeln, verarbeiten und weiterleiten können.

In diesem Tutorial führen wir Sie durch den Prozess der Ausführung von Logstash in einem Docker-Container mit Grundkonfiguration.

Anforderungen:

Bevor wir mit dem Tutorial beginnen, stellen Sie sicher, dass Sie über Folgendes verfügen:







  1. Docker auf Ihrem Host-Computer installiert (Version 23 und höher wird empfohlen)
  2. Docker Compose auf Ihrem Computer installiert

Wenn die gegebenen Voraussetzungen erfüllt sind, können wir mit dem Tutorial fortfahren.



Richten Sie die Logstash-Konfigurationsdatei ein

Logstash verwendet die Konfigurationsdateien, um zu definieren, wie die Daten aufgenommen, gefiltert und an die Ausgabe gesendet werden. Es gibt eine Vielzahl von Optionen, die Sie konfigurieren können, wie Sie in der offiziellen Dokumentation nachlesen können.



In unserem Beispiel konzentrieren wir uns auf die Grundkonfiguration, die die Daten aus einer Protokolldatei aufnimmt, sie nach den passenden Datensätzen filtert und die Daten in eine Datei ausgibt.





Erstellen Sie eine Datei mit dem Namen „logstash.conf“ und fügen Sie die Konfiguration wie folgt hinzu:

Eingabe {
Datei {
Pfad => „/var/log/apache/access.log“

start_position => 'Anfang'

seitdb_path => „/dev/null“

ignore_older => 0
}
}

filtern {
wenn [Nachricht] =~ 'FEHLER' {
grok {
Übereinstimmung => { 'Nachricht' => „%{COMBINEDAPACHELOG}“ }
}
}
}

Ausgabe {
Datei {
Pfad => „/var/log/apache/error_logs.log“
}
}

Die vorherige Datei definiert die Konfiguration wie folgt:

  1. Eingabeabschnitt – Der Eingabeabschnitt verwendet das Dateieingabe-Plugin, um die Apache-Protokolldatei zu lesen, die sich in /var/log/apache/access.log befindet.
    • Anschließend legen wir die Startposition am Anfang fest, sodass Logstash die gesamte Datei von Anfang an lesen kann.
    • Sincedb_path – Mit diesem Parameter können wir Logstashs Sincedb-Tracking deaktivieren, indem wir den Wert auf /dev/null setzen. Dadurch wird sichergestellt, dass Logstash immer vom Anfang der Datei liest.
    • Ignore_older – Wenn Sie den Wert dieses Parameters auf 0 setzen, kann Logstash alle Einträge der Protokolldatei verarbeiten.
  2. Filterabschnitt – Im Filterabschnitt definieren wir das Filtermuster, um zu prüfen, ob die Protokollnachricht das Wort ERROR enthält. Sie können die Bedingungen für die Filterblöcke anpassen, um nach genaueren Übereinstimmungen in der Datei zu filtern.
    • Wenn die Bedingung erfüllt ist, verwenden wir den Grok-Filter, um die Apache-Protokollzeile mithilfe des COMBINEDAPACHELOG-Musters zu analysieren, einem in Logstash integrierten Muster zum Parsen der Apache-Protokolle.
  3. Ausgabeabschnitt – In diesem Abschnitt können wir das Ausgabeformat für die übereinstimmenden Einträge definieren.
    • In unserem Fall schreiben wir sie mithilfe des Pfadparameters in die Datei /var/log/Apache/error_logs.log.

Dies sollte uns eine grundlegende Logstash-Konfiguration zur Verfügung stellen, die es uns ermöglicht, einige grundlegende Logstash-Funktionen zu demonstrieren.

Weitere Informationen zum Erstellen und Konfigurieren der Logstash-Pipelines finden Sie in der folgenden bereitgestellten Dokumentationsressource:

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

Erstellen Sie die Docker-Datei

Sobald wir die Logstash-Konfigurationen definiert haben, können wir fortfahren und lernen, wie der Container ausgeführt wird. Erstellen Sie im selben Verzeichnis wie die Datei „logstash.conf“ eine neue Datei mit dem Namen „Dockerfile“.

Bearbeiten Sie diese Datei und fügen Sie die Einträge wie folgt hinzu:

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

KOPIEREN Sie logstash.conf /usr/share/logstash/pipeline/logstash.conf

Im gegebenen Beispiel definieren wir das Basis-Image als offizielles Logstash-Image mit der Version 8.9.2.

Anschließend kopieren wir die von uns erstellte Datei „logstash.conf“ in die Datei /usr/share/logstash/pipeline/logstash.conf im Image.

Erstellen Sie das Docker-Image

Navigieren Sie als Nächstes zu dem Verzeichnis, das die Dockerfile- und Logstash-Konfigurationsdatei enthält. Führen Sie den folgenden Befehl aus, um das Image zu erstellen:

$ Docker-Build -T benutzerdefiniertes-logstash-image .

Führen Sie den Logstash-Container aus

Nachdem wir nun das Docker-Image erstellt haben, können wir einen Logstash-Container mit dem Docker-Befehl „run“ wie folgt ausführen:

$ Docker-Lauf -D --Name Benutzerdefiniertes Logstash-Image des Logstash-Servers

Dadurch sollte der Logstash-Container mit dem Image ausgeführt werden, das wir im vorherigen Schritt erstellt haben.

Überprüfen Sie die Logstash-Containerprotokolle

Um zu überprüfen, ob Logstash ordnungsgemäß ausgeführt wird, können Sie die Containerprotokolle mit dem folgenden Befehl überprüfen:

$ Docker-Protokolle < Containername >

Ausgabe:

Abschluss

In diesem Tutorial haben Sie erfahren, wie Sie mithilfe einer benutzerdefinierten Konfigurationsdatei schnell einen Logstash-Server einrichten können, der als Docker ausgeführt wird. Wir empfehlen, die Dokumentation zu den Bildparametern und Konfigurationsoptionen zu prüfen.