Suchen

Definition Was ist Logstash?

| Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

Logstash ist eine Open-Source-basierte Software zur Erfassung, Verarbeitung, Transformation und Weiterleitung von Daten. Sie stellt Datenverarbeitungspipelines zur Verfügung und arbeitet mit Plug-ins und Filtern. Zusammen mit Elasticsearch und Kibana bildet Logstash den sogenannten Elastic Stack. Er lässt sich zur Analyse und Visualisierung großer Datenmengen verwenden.

Firmen zum Thema

(Bild: © aga7ta - stock.adobe.com)

Logstash ist der Name einer Open-Source-basierten Software zur Erfassung, Verarbeitung, Transformation, Einspeisung und Weiterleitung von Daten. Die Software arbeitet mit vielen verschiedenen Datenquellen und Datenzielen zusammen. Sie nutzt Input- und Output-Plug-ins. Zur Verarbeitung und Transformation der eingelesenen Daten kommen Filter zum Einsatz. Zusammen mit Elasticsearch und Kibana bildet Logstash den sogenannten Elastic Stack, auch als ELK-Stack bezeichnet. Der ELK-Stack stellt freie Software-Tools zur Verfügung, mit denen sich große Datenmengen einlesen, verarbeiten, durchsuchen, analysieren und visualisieren lassen. Typische Anwendungen sind Auswertungen von Log-Daten und Analysen im Big-Data- oder Business-Intelligence-Umfeld.

Logstash muss nicht zusammen mit Kibana und Elasticsearch eingesetzt werden, sondern arbeitet mit vielen anderen Tools und Frameworks zusammen. Für Logstash existiert eine große Anzahl fertiger, direkt einsetzbarer Plug-ins. Darüber hinaus lassen sich Plug-ins für individuelle Zwecke selbst erstellen. Entwickelt wurde Logstash vom Unternehmen Elastic (ehemals Elasticsearch N.V). Die Kern-Software und Kernfunktionen von Logstash unterliegen der Apache License 2.0. Darüber hinaus bietet das Unternehmen Elastic kommerzielle Erweiterungen und kostenpflichtige Services rund um Logstash und den ELK-Stack an. Die aktuelle Version von Logstash ist die Version 7.7.1 (Stand Mitte 2020).

Die Funktionsweise von Logstash

Die Verarbeitung der Daten in Logstash basiert auf sogenannten Datenpipelines. Jede Pipeline besitzt ein oder mehrere Plug-ins zur Erfassung der Daten aus den Datenquellen. Die eingelesenen Daten werden anschließend über interne Warteschlangen und die konfigurierten Filter mithilfe von Mikro-Batches verarbeitet. Je nach Konfiguration der Pipeline werden die Daten der Warteschlange im Arbeitsspeicher gehalten oder auf Festplatten zwischengespeichert. Nach der Verarbeitung der Daten erfolgt die Ausgabe an das Datenziel, beispielsweise Elasticsearch, mithilfe von Output-Plug-ins. Im Folgenden eine detaillierte Beschreibung der drei Grundelemente einer Datenpipeline Input-Plug-in, Output-Plug-in und Filter.

Input-Plug-ins sind für das Einlesen der Daten aus den verschiedenen Datenquellen zuständig. Logstash unterstützt über die Input-Plug-ins eine Vielzahl verschiedener Datenquellen. Die einzulesenden Daten können in unterschiedlichen Formaten vorliegen und werden in einem kontinuierlichen Stream an die Filter geliefert. Mögliche Datenquellen sind Log-Dateien, Webanwendungen, Cloud-Services, Datenspeicher und Datenbanken. Die Filter dienen zur Umwandlung der Daten in die gewünschte Form oder Struktur und bei Bedarf auch zum Ausfiltern ungewollter Daten. Es lassen sich beispielsweise mithilfe der Filter aus ungeordneten Daten Strukturen ableiten, Daten in geografische Informationen umwandeln, Events aufbereiten, Zeitstempel in ein einheitliches Format bringen, IP-Adressen in Hostnamen auflösen, personenbezogene Daten anonymisieren, Nachrichten in einzelne Felder zerlegen und Vieles mehr. Die umgewandelten Daten wandern anschließend in der Datenpipeline zum Output-Plug-in. Das Output-Plug-in erlaubt die Übergabe an ein beliebiges Datenziel. Neben Elasticsearch ist die Ausgabe in viele weitere Datenziele und Tools möglich.

Skalierbarkeit und Persistenz von Logstash

Logstash lässt sich so implementieren, dass sich die Leistung der Pipelines gut skalieren lässt. Zudem ist es möglich, persistente Warteschlangen einzurichten. Sollte ein Server oder ein Knoten ausfallen, stellen persistente Warteschlangen sicher, dass die eingelesenen Daten oder Ereignisse zuverlässig mindestens einmal zugestellt werden. Dadurch ist die verlässliche Belieferung des Datenziels durch die Pipeline realisierbar. Mithilfe von Monitoring-Tools lassen sich die Pipelines und ihre Performance überwachen und analysieren.

Logstash als Bestandteil des Elastic Stacks

Zusammen mit Kibana und Elasticsearch bildet Logstash den Elastic Stack (ELK-Stack). Es handelt sich um eine Sammlung von Open Source Tools, die für das Einlesen, Durchsuchen, Anreichern, Analysieren und Visualisieren von großen Datenmengen einsetzbar ist. Innerhalb des ELK-Stacks übernimmt Elasticsearch die Aufgabe, Daten zu indexieren und sie durchsuchbar zu machen. Elasticsearch ist beliebig skalierbar, bietet eine hohe Suchperformance und arbeitet mit JSON-Dokumenten und REST-APIs. Kibana ist für die Auswertung und Visualisierung der Suchergebnisse von Elasticsearch zuständig. Die Analyseergebnisse lassen sich in Diagrammen, Landkarten und grafischen Dashboards leicht verständlich darstellen. Kibana bietet dem Anwender eine browserbasierte Oberfläche.

Typische Anwendungen für Logstash

Logstash kommt zusammen mit den weiteren Komponenten des ELK-Stacks oder in anderen Umgebungen für folgende typische Anwendungen zum Einsatz:

  • zentralisiertes Logging und Logging-Analyse
  • Sammlung und Analyse von Webdaten
  • Sammlung und Analyse von Geschäftsdaten und Anwendungsdaten
  • Sammlung und Analyse von Geodaten
  • Sammlung und Analyse von Sicherheits- und Monitoringdaten

Vorteile von Logstash

Logstash ist dank des Plug-in-Konzepts mit vielen Datenquellen und Datenzielen kompatibel. Es bietet persistente Datenpipelines, die die weiteren Anwendungen und Tools kontinuierlich mit einem Datenstrom versorgen. Es lassen sich Analysen in nahezu Echtzeit realisieren. Logstash ist leicht skalierbar und kann mit großen Datenmengen umgehen. Zusammen mit Elasticsearch und Kibana bildet Logstash eine komplette Software-Sammlung für die Analyse und Visualisierung von großen Datenbeständen. Die Software ist frei verfügbar und steht unter Open-Source-Lizenz. Bei Bedarf sind professioneller Support und kommerzielle Erweiterungen verfügbar. Weitere Vorteile von Logstash sind:

  • einfach zu implementieren
  • arbeitet plattformunabhängig
  • umfangreiche Dokumentation und große Support-Community verfügbar

(ID:46648285)

Über den Autor