Logstash - Einführung

Logstash ist ein Tool, das auf den Filter- / Rohrleitungsmustern zum Sammeln, Verarbeiten und Generieren der Protokolle oder Ereignisse basiert. Es hilft bei der Zentralisierung und Echtzeitanalyse von Protokollen und Ereignissen aus verschiedenen Quellen.

Logstash ist in der Programmiersprache JRuby geschrieben, die auf der JVM ausgeführt wird. Daher können Sie Logstash auf verschiedenen Plattformen ausführen. Es sammelt verschiedene Arten von Daten wie Protokolle, Pakete, Ereignisse, Transaktionen, Zeitstempeldaten usw. aus nahezu jeder Art von Quelle. Die Datenquelle können soziale Daten, E-Commerce, Nachrichtenartikel, CRM, Spieldaten, Webtrends, Finanzdaten, Internet der Dinge, mobile Geräte usw. sein.

Allgemeine Funktionen von Logstash

Die allgemeinen Funktionen von Logstash sind wie folgt:

  • Logstash kann Daten aus verschiedenen Quellen sammeln und an mehrere Ziele senden.

  • Logstash kann alle Arten von Protokolldaten verarbeiten, z. B. Apache-Protokolle, Windows-Ereignisprotokolle, Daten über Netzwerkprotokolle, Daten aus Standardeingaben und vieles mehr.

  • Logstash kann auch http-Anforderungen und Antwortdaten verarbeiten.

  • Logstash bietet eine Vielzahl von Filtern, mit denen der Benutzer mehr Bedeutung in den Daten finden kann, indem er sie analysiert und transformiert.

  • Logstash kann auch zum Umgang mit Sensordaten im Internet der Dinge verwendet werden.

  • Logstash ist Open Source und unter der Apache-Lizenz Version 2.0 verfügbar.

Logstash-Schlüsselkonzepte

Die Schlüsselkonzepte von Logstash sind wie folgt:

Ereignisobjekt

Es ist das Hauptobjekt in Logstash, das den Datenfluss in der Logstash-Pipeline kapselt. Logstash verwendet dieses Objekt, um die Eingabedaten zu speichern und zusätzliche Felder hinzuzufügen, die während der Filterphase erstellt wurden.

Logstash bietet Entwicklern eine Ereignis-API zum Bearbeiten von Ereignissen. In diesem Lernprogramm wird dieses Ereignis mit verschiedenen Namen bezeichnet, z. B. Protokolldatenereignis, Protokollereignis, Protokolldaten, Eingabeprotokolldaten, Ausgabeprotokolldaten usw.

Pipeline

Es besteht aus Datenflussstufen in Logstash von der Eingabe bis zur Ausgabe. Die Eingabedaten werden in die Pipeline eingegeben und in Form eines Ereignisses verarbeitet. Sendet dann an ein Ausgabeziel im gewünschten Format des Benutzers oder Endsystems.

Eingang

Dies ist die erste Stufe in der Logstash-Pipeline, mit der die Daten in Logstash zur weiteren Verarbeitung abgerufen werden. Logstash bietet verschiedene Plugins, um Daten von verschiedenen Plattformen abzurufen. Einige der am häufigsten verwendeten Plugins sind - File, Syslog, Redis und Beats.

Filter

Dies ist die mittlere Phase von Logstash, in der die eigentliche Verarbeitung von Ereignissen stattfindet. Ein Entwickler kann vordefinierte Regex-Muster von Logstash verwenden, um Sequenzen zur Unterscheidung zwischen den Feldern in den Ereignissen und Kriterien für akzeptierte Eingabeereignisse zu erstellen.

Logstash bietet verschiedene Plugins, mit denen der Entwickler die Ereignisse analysieren und in eine gewünschte Struktur umwandeln kann. Einige der am häufigsten verwendeten Filter-Plugins sind - Grok, Mutate, Drop, Clone und Geoip.

Ausgabe

Dies ist die letzte Phase in der Logstash-Pipeline, in der die Ausgabeereignisse in die von den Zielsystemen benötigte Struktur formatiert werden können. Zuletzt sendet es das Ausgabeereignis nach Abschluss der Verarbeitung mithilfe von Plugins an das Ziel. Einige der am häufigsten verwendeten Plugins sind - Elasticsearch, File, Graphite, Statsd usw.

Logstash Vorteile

Die folgenden Punkte erläutern die verschiedenen Vorteile von Logstash.

  • Logstash bietet Regex-Mustersequenzen, um die verschiedenen Felder in jedem Eingabeereignis zu identifizieren und zu analysieren.

  • Logstash unterstützt eine Vielzahl von Webservern und Datenquellen zum Extrahieren von Protokolldaten.

  • Logstash bietet mehrere Plugins zum Parsen und Transformieren der Protokolldaten in ein beliebiges vom Benutzer gewünschtes Format.

  • Logstash ist zentralisiert, wodurch die Verarbeitung und Erfassung von Daten von verschiedenen Servern vereinfacht wird.

  • Logstash unterstützt viele Datenbanken, Netzwerkprotokolle und andere Dienste als Zielquelle für die Protokollierungsereignisse.

  • Logstash verwendet das HTTP-Protokoll, mit dem der Benutzer Elasticsearch-Versionen aktualisieren kann, ohne Logstash in einem Sperrschritt aktualisieren zu müssen.

Logstash Nachteile

Die folgenden Punkte erläutern die verschiedenen Nachteile von Logstash.

  • Logstash verwendet http, was sich negativ auf die Verarbeitung der Protokolldaten auswirkt.

  • Die Arbeit mit Logstash kann manchmal etwas komplex sein, da ein gutes Verständnis und eine gute Analyse der Eingabeprotokollierungsdaten erforderlich sind.

  • Filter-Plugins sind nicht generisch, daher muss der Benutzer möglicherweise die richtige Musterfolge finden, um Fehler beim Parsen zu vermeiden.

Im nächsten Kapitel werden wir verstehen, was der ELK-Stapel ist und wie er Logstash hilft.