Logstash 101: Verwendung von Logstash in einer Datenverarbeitungspipeline

Logstash 101: Using Logstash in a Data Processing Pipeline

  • Orchestrierung
6 Minuten Lesezeit Aktualisiert Mar 25, 2026

Auf einen Blick: Logstash ist eine Open-Source-Datenverarbeitungspipeline, die Daten von verschiedenen Quellen sammelt, transformiert und an Ziele wie Elasticsearch weiterleitet. Es ist integraler Bestandteil des ELK-Stacks und bietet robuste Datenworkflows.

  • Unterstützt über 50 Eingabe-Plugins für vielfältige Datensammlung.
  • Kann Daten auf verschiedene Plattformen ausgeben, einschließlich Datenbanken und Cloud-Dienste.

Logstash ist eine kostenlose, quelloffene serverseitige Datenverarbeitungspipeline, die Daten aus mehreren Quellen aufnimmt, durch konfigurierbare Filter transformiert und an nachgelagerte Speicher- oder Analyseplattformen weiterleitet. Als Ingest-Engine des ELK-Stacks ist Logstash eines der am weitesten verbreiteten Werkzeuge zum Aufbau robuster Logstash-Datenpipeline-Workflows in großem Maßstab. Dieser Leitfaden erklärt, wie Logstash funktioniert, wie man es konfiguriert und welche besten Alternativen bewertet werden sollten. Daten sind ein Kernelement jeder modernen Anwendung – der Katalysator für Anwendungsfälle von Infrastruktur - und Anwendungsfehlerbehebung bis zur Analyse von Verhaltensmustern und komplexen Machine-Learning-Modellen. Genau das Sammeln dieser Daten aus vielen Quellen ist genau das, wofür Logstash entwickelt wurde. Der ELK-Stack ist eine der führenden Lösungen zur Analyse von Anwendungs- und Serverdaten. Er kombiniert drei Open-Source-Produkte:

  • Elastizitätssuche
  • Logstash
  • Kibana

Elasticsearch, aufgebaut auf der Lucene-Engine, ist das Speicher- und Analyse-Rückgrat des ELK-Stacks. Kibana ermöglicht es Ihnen, die Daten in Elasticsearch in jeder Form zu visualisieren . Logstash ist die Ingest-Engine – der Ausgangspunkt des Stacks – die Daten aus mehreren Diensten, Dateien und Logs aggregiert und zur weiteren Analyse an Elasticsearch weiterleitet.

Was ist Logstash?

Logstash ist eine kostenlose und quelloffene, serverseitige Datenverarbeitungspipeline, die verwendet werden kann, um Daten aus mehreren Quellen zu speichern, zu transformieren und in weitere Verarbeitung oder Speicherung zu senden. Obwohl Logstash ein integraler Bestandteil des ELK-Stacks ist, ist Logstash nicht auf dieses Ökosystem beschränkt. Logstash kann Daten nicht nur an Elasticsearch, sondern auch an Dienste wie Zabbix, Datadog, InfluxDB , MongoDB und Nachrichtenbroker wie RabbitMQ und Amazon SQS übertragen. Logstash besteht aus drei Kernabschnitten – Eingaben, Filtern und Ausgaben –, wie im untenstehenden Diagramm dargestellt.

Logstash

Wie sammelt eine Logstash-Datenpipeline Daten?

Die Hauptfunktion von Logstash ist die Fähigkeit, Daten aus mehreren Quellen zu sammeln und zu aggregieren. Mit über 50 verfügbaren Plugins kann Logstash Daten von einer Vielzahl von Plattformen und Diensten sammeln – von gängigen Eingaben wie File, Beat, Syslog, stdin, UDP, TCP, HTTP und Heartbeat bis hin zu spezifischen Diensten wie Azure Event Hub, Apache Kafka, AWS Kinesis, Salesforce und SQLite. Eingaben sind der Ausgangspunkt jeder Logstash-Konfiguration. Standardmäßig erstellt Logstash automatisch eine STDIN-Eingabe, wenn keine Eingaben definiert sind. Die korrekte Konfiguration, Kategorisierung und Markierung von Eingaben ist entscheidend: Ohne präzises Tagging können Daten nicht korrekt von Filtern verarbeitet oder zum vorgesehenen Ausgabeziel weitergeleitet werden.

Wie transformiert und filtert Logstash Daten?

Was Logstash von den meisten anderen Datenlieferanten unterscheidet, ist seine Fähigkeit, Filter auf eingehende Daten anzuwenden . Anstatt als einfacher Aggregator zu fungieren, extrahiert Logstash Informationen aus Rohdaten und wandelt sie als Zwischenschritt in strukturierte, sinnvolle Formate um, bevor sie weitergeleitet werden. Diese Transformation reduziert die Verarbeitungslast für Dienste wie Elasticsearch und bietet ein konsistentes Format, das die Downstream-Analyse verbessert. Logstash bietet eine breite Palette von Filter-Plugins – von einem einfachen CSV-Plugin für tabellarische Daten über grok, das unstrukturierte Daten in benannte Felder parst, bis hin zu URLcodede und vielen anderen.

Woher gibt Logstash Daten aus?

Nachdem die Daten gesammelt und gefiltert wurden, kann Logstash sie an eine Vielzahl von Zielen weiterleiten. Logstash-Ausgaben umfassen Elasticsearch, Flatfiles, Speicherdienste wie Amazon S3, Messaging-Dienste wie SQS und Kafka sowie Analyseplattformen wie AWS CloudWatch und Google BigQuery. Logstash ist nicht auf einen einzigen Ausgang beschränkt. Standardmäßig erzeugt Logstash einen Stdout-Output, wenn keiner konfiguriert ist, aber Logstash kann so eingerichtet werden, dass Daten gleichzeitig an mehrere Ziele gesendet werden, während spezifische Eingaben an bestimmte Ausgaben weitergeleitet werden.

Wie konfiguriert und installiert man Logstash?

Logstash benötigt Java (JVM), um ausgeführt zu werden.  Die meisten architekturspezifischen Installationspakete enthalten die notwendige Java-Version und ermöglichen es den Benutzern, sie bei Bedarf zu tauschen.

Installation von Logstash

Logstash unterstützt die Installation auf allen wichtigen Betriebssystemen – Windows, Linux und macOS – sowie Docker-Images und Helm Charts für Kubernetes-Deployments. Das folgende Beispiel zeigt, wie man mit einer Docker-basierten Logstash-Installation beginnt. Die Erstellung des Logstash-Containers ist ein relativ unkomplizierter Prozess:

    # Pull Image
docker pull docker.elastic.co/logstash/logstash:
# Create Container - Config Folder
docker run --rm -it -v ~/config/:/usr/share/logstash/config/ docker.elastic.co/logstash/logstash:
# Create Container - File Attached
docker run --rm -it -v ~/config/logstash.yml:/usr/share/logstash/config/logstash.yml docker.elastic.co/logstash/logstash:

Logstash-Konfigurationsstruktur

Eine Logstash-Konfigurationsdatei besteht aus Eingabe-, Filter- und Ausgabeabschnitten. Eine einzelne Logstash-Instanz kann mehrere Konfigurationsdateien ausführen, die von mehreren Diensten sammeln und zu verschiedenen Zielen routen. Konfigurationsdateien werden typischerweise in /etc/logstash/conf.d/ mit der Endung .conf gespeichert. Das untenstehende Beispiel zeigt eine einfache Konfiguration, die aus einer Datei liest und ohne Filterung in eine andere Datei ausgibt: read-log.conf

    input {
file{
path => "/tmp/*.logs"
start_position => "beginning"
codec => json
}
}
output {
file {
path => "home/user/logstash_out.log"
}
}

Für ein umfassenderes Beispiel schiebt die folgende Konfiguration Nginx-Logs zu Elasticsearch: nginx-logs.conf

    input {
file {
type => "nginx"
path => "/var/log/nginx/*"
exclude => "*.gz"
}
}
filter {
if [type] == "nginx" {
grok {
patterns_dir => "/etc/logstash/patterns"
match => { "message" => "%{NGINX_ACCESS}" }
remove_tag => ["_grokparsefailure"]
add_tag => ["nginx_access"]
}
geoip {
source => "clientip"
}
}
}
output {
elasticsearch {
hosts => ["www.test.host:9200"]
}
}

Was sind die besten Alternativen zu Logstash?

Logstash ist leistungsstark und vielseitig, aber seine Funktionstiefe bringt eine höhere Lernkurve und höheren Ressourcenbedarf mit sich als manche Alternativen. Die unten aufgeführten Optionen dienen als Alternativen zu Logstash, abhängig von der Komplexität und dem Umfang Ihrer Datenaufnahme.

Filebeat

Filebeat ist ein leichtgewichtiger Loglieferant von den Entwicklern des Elastic-Stacks. Filebeat spezialisiert sich auf das Sammeln von Daten aus bestimmten Dateien oder Logs, was es deutlich weniger ressourcenintensiv macht als Logstash. Filebeat ist eine ausgezeichnete Wahl für einfache Datenaufnahme und kann sogar als Eingabequelle für Logstash in kombinierten Deployments dienen. Der Nachteil ist die Funktionalität: Die Ausgaben von Filebeat sind auf Logstash, Elasticsearch, Kafka und Redis beschränkt.

Logagent

Logagent von Sematext ist ein Open-Source-, cloudnativer Log-Lieferer, der direkt mit Logstash konkurriert. Logagent unterstützt Filterung, mehrere Eingabetypen (Syslog, Datei, Azure-Events, Webhook, MySQL- und MSSQL-Abfragen) und Ausgaben für Elasticsearch, Amazon Elasticsearch und Prometheus. Logagent hat zudem eine sanftere Lernkurve als Logstash. Dennoch bleibt Logstash die ausgereiftere Plattform mit insgesamt breiterer Unterstützung für Eingabe, Filter und Ausgabe.

Fluentd

Fluentd ist ein Open-Source-Datensammler, der darauf ausgelegt ist, eine einheitliche Logging-Schicht bereitzustellen. Fluentds Hauptunterscheidungsmerkmal ist der Ansatz, Daten wo immer möglich als JSON zu strukturieren, was die Verarbeitung von Downstream-Diensten vereinfacht. Fluentd ist heute ein CNCF-Projekt und integriert sich mit über 500 Plattformen und Diensten. Fluentd ist eine ausgezeichnete Wahl für strukturierte Datenszenarien, erfordert jedoch Workarounds – wie regex-basiertes Filtern und Tagging – bei der Verarbeitung unstrukturierter Daten und bietet eine steilere Lernkurve für Anfänger.

rsyslog

rsyslog (Rocket-fast System for Log Processing) ist für die Hochleistungs-Logverarbeitung optimiert. rsyslog nutzt vollständiges Multithreading, um moderne Hardware effizient zu nutzen und liefert eine konstante Leistung, unabhängig davon, wie viele Parsing-Regeln im Einsatz sind. rsyslog unterstützt eine breite Palette von Eingabe- und Ausgabeoptionen mit granularer Syslog-Nachrichtenfilterung. Der Hauptnachteil ist die Konfigurationskomplexität: rsyslog hat den steilsten Einrichtungsprozess aller hier aufgeführten Alternativen, bietet aber nach der Konfiguration ein stabiles Erlebnis.

Logstash: benutzerfreundlich und funktionsreich

Logstash ist eines der leistungsfähigsten Werkzeuge zur Datenerfassung und -verarbeitung. Als Kernbestandteil des ELK-Stacks hat Logstash eine breite Verbreitung in der Branche für das Sammeln, Aggregieren, Filtern und Routing von Daten in robuste Verarbeitungspipelines erlangt. Für Teams, die Daten aus verschiedenen Eingaben aufnehmen, sie während des Flugs transformieren und an mehrere Ziele senden müssen, bleibt Logstash eine der stärksten Optionen auf dem Markt. Es ist eine der besten Optionen, um Daten aus verschiedenen Eingaben zu erfassen, bevor sie an Speicher oder weitere Analysen weitergeleitet werden.

Häufig gestellte Fragen

Wofür wird Logstash verwendet? Logstash ist eine Open-Source-Datenverarbeitungspipeline, die dazu dient, Daten aus mehreren Quellen zu sammeln, sie mit konfigurierbaren Filtern zu transformieren und zu Ausgabezielen wie Elasticsearch, Datenbanken, Nachrichtenbrokern und Cloud-Speicherdiensten zu routen. Logstash wird am häufigsten als Intakest-Schicht des ELK-Stacks verwendet. Was ist der Unterschied zwischen Logstash und Filebeat? Filebeat ist ein leichter Log-Shipper, der für einfache Sammlung und Weiterleitung mit minimalem Ressourcenverbrauch entwickelt wurde. Logstash ist eine vollständige Datenverarbeitungspipeline, die komplexe Filterung, Transformation und Multi-Destination-Ausgaben unterstützt. Filebeat wird häufig als Logstash-Eingabequelle in kombinierten ELK-Deployments verwendet, bei denen sowohl leichte Erfassung als auch leistungsstarke Verarbeitung erforderlich sind. Benötigt Logstash Elasticsearch? Nein. Obwohl Logstash Teil des ELK-Stacks ist, kann Logstash Daten an viele Ziele über Elasticsearch hinaus ausgeben – darunter Kafka, RabbitMQ, Amazon SQS, MongoDB, InfluxDB, Datadog, Google BigQuery und Flatfiles. Logstash funktioniert unabhängig von einer bestimmten Ausgabeplattform. Was ist ein Grok-Filter in Logstash? Grok ist ein Logstash-Filter-Plugin, das unstrukturierte Logdaten mittels Mustererkennung in strukturierte, benannte Felder aufschlüsselt. Grok ist einer der am weitesten verbreiteten Logstash-Filter zur Verarbeitung von rohen Logzeilen von Webservern, Anwendungen und Systemprotokollen, bevor sie in Elasticsearch oder einer anderen Ausgabe indexiert werden. Was sind die Systemanforderungen für den Betrieb von Logstash? Logstash benötigt Java (JVM) zum Ausführen. Die meisten Logstash-Installationspakete enthalten die erforderliche Java-Version für die Zielarchitektur. Logstash ist ressourcenintensiver als leichtere Alternativen wie Filebeat, daher profitieren Produktionsbereitstellungen typischerweise von einer dedizierten CPU- und Speicherzuweisung, insbesondere bei komplexen Filterpipelines.

Verwandte Literatur

Die in diesem Beitrag geäußerten Ansichten und Meinungen sind die des Autors und spiegeln nicht unbedingt die offizielle Position von BMC wider.

Diese Beiträge sind meine eigenen und spiegeln nicht unbedingt die Position, Strategien oder Meinung von BMC wider.

Mehr aus Orchestrierung

Abonnieren Sie The Brief

Mit der Registrierung für dieses Angebot bestätigen Sie, dass Sie die Datenschutzrichtlinie von BMC gelesen und zugestimmt haben.

Danke

Sie haben The Brief abonniert
Das Briefing umfasst die Mainframe- und Enterprise-Orchestrierung – BMC AMI und Control-M – sowie die Analystenforschung, Kundeneinsätze und Events in beiden Bereichen.