
- Input-Plugins sind der erste Schritt jeder Logstash-Pipeline – ohne sie kommen keine Daten an.
- Die wichtigsten Plugins sind File, Beats, HTTP und JDBC – je nach Datenquelle.
- Syntax-Test mit
--config.test_and_exitverhindert Ausfallzeiten. - Häufige Fehler sind falsche Pfade, fehlende Berechtigungen und fehlende Codecs.
- JDBC eignet sich für Datenbanken, Beats für verteilte Umgebungen.
Die Grundlagen verstehen: Was ist ein Input-Plugin?
Ein Input-Plugin definiert, woher Logstash Daten liest – es ist die Quelle Ihrer Pipeline. Ohne korrekte Konfiguration kommen keine Daten an, egal wie gut Filter und Output eingerichtet sind.
Kurz gesagt :
- Input-Plugins sind der erste Schritt jeder Logstash-Pipeline und definieren die Datenquelle.
- Wichtigste Plugins: File, Beats, HTTP und JDBC, je nach Szenario (Dateien, Agenten, Webhooks, Datenbanken).
- Syntax-Test mit `–config.test_and_exit` verhindert Ausfallzeiten; häufige Fehler sind falsche Pfade, fehlende Berechtigungen und fehlende Codecs.
- `sincedb_path` beim File-Plugin ist entscheidend, um Duplikate nach Neustarts zu vermeiden.
Definition und Funktion im Elastic Stack
Der Input-Plugin ist der erste Baustein in der Logstash-Pipeline. Er liest Daten aus einer Quelle – sei es eine Datei, ein Netzwerk-Port oder eine Datenbank – und reicht sie an die Filter weiter. Ich sehe immer wieder, dass Teams stundenlang Filter optimieren, aber der Input falsch konfiguriert ist. Das ist, als würde man ein Auto mit leerem Tank waschen.
Die Architektur der logstash.yml und der Pipeline-Dateien
Die Hauptkonfigurationsdatei logstash.yml steuert globale Einstellungen wie Speicher und Pfade. Die eigentliche Pipeline definieren Sie in separaten Dateien, meist unter /etc/logstash/conf.d/. Diese Trennung ist bewährt – ich empfehle, für jede Pipeline eine eigene Datei anzulegen. So bleibt die Übersicht erhalten.
Schritt für Schritt: Den ersten Input-Plugin (File) konfigurieren
Der Einstieg gelingt am besten mit dem File-Plugin, das lokale Logdateien liest. Ich zeige Ihnen die Schritte von der Installation bis zum erfolgreichen Start.
Voraussetzungen prüfen
Stellen Sie sicher, dass Java installiert ist (java -version) und Logstash läuft (logstash --version). Ohne Java startet Logstash nicht – das ist der häufigste Anfängerfehler.
Das Grundgerüst einer Pipeline-Datei erstellen
Legen Sie eine Datei an, z. B. pipeline.conf, mit dem Grundgerüst: input {}, filter {}, output {}. Dieses Gerüst ist das Fundament jeder Pipeline.
Konfiguration des File-Plugins im Detail
Der wichtigste Parameter ist path – der Pfad zur Logdatei. Ergänzen Sie sincedb_path, um den Lesestand zu speichern, und codec für das Format. Beispiel:
input { file { path => ["/var/log/nginx/access.log"] sincedb_path => "/var/lib/logstash/sincedb/access" codec => "json" }
}Der sincedb_path ist entscheidend – ohne ihn liest Logstash nach einem Neustart alles erneut. Das führt zu Duplikaten.
Syntax-Test und Start der Pipeline
Testen Sie die Konfiguration mit bin/logstash -f pipeline.conf --config.test_and_exit. Wenn die Syntax stimmt, starten Sie die Pipeline im Vordergrund mit bin/logstash -f pipeline.conf. Für den Produktivbetrieb nutzen Sie den Dienst, z. B. systemctl start logstash.
Gängige Input-Plugins für verschiedene Szenarien konfigurieren
Je nach Datenquelle benötigen Sie unterschiedliche Plugins – Beats für Agenten, HTTP für Webhooks und JDBC für Datenbanken. Hier zeige ich die wichtigsten Konfigurationen.
Beats-Plugin für Filebeat und Metricbeat
Das Beats-Plugin empfängt Daten von leichtgewichtigen Agenten auf entfernten Servern. Es ist ideal für verteilte Umgebungen. Beispiel:
input { beats { port => 5044 ssl => true ssl_certificate => "/etc/logstash/ssl.crt" ssl_key => "/etc/logstash/ssl.key" }
}Vergessen Sie nicht, den Port 5044 in der Firewall freizugeben, sonst verbinden sich die Agenten nicht.
HTTP-Plugin für Webhooks und API-Aufrufe
Das HTTP-Plugin öffnet einen Port, an den externe Anwendungen Daten per POST senden können. Beispiel:
input { http { port => 8080 codec => "json" }
}Aktivieren Sie unbedingt die Authentifizierung über user und password, sonst kann jeder Daten einschleusen.
JDBC-Plugin für SQL-Datenbanken
Mit JDBC ziehen Sie Daten direkt aus einer Datenbank – praktisch für Reporting. Beispiel mit PostgreSQL:
input { jdbc { jdbc_driver_library => "/path/to/postgresql.jar" jdbc_driver_class => "org.postgresql.Driver" jdbc_connection_string => "jdbc:postgresql://localhost:5432/meine_db" jdbc_user => "logstash_user" jdbc_password => "sicheres_passwort" statement => "SELECT * FROM bestellungen WHERE updated_at > :last_value" schedule => "* * * * *" }
}Der schedule-Parameter definiert, wie oft die Abfrage läuft – hier jede Minute. Achten Sie auf den korrekten JDBC-Treiber, sonst schlägt die Verbindung fehl.
Die Konfiguration testen und Fehler beheben
Ein Syntax-Test ist Pflicht, bevor Sie eine Pipeline produktiv setzen. Ich zeige Ihnen die wichtigsten Befehle und typische Fehlerquellen.
Wichtige Befehle für den Test
logstash -f /etc/logstash/conf.d/pipeline.conf --config.test_and_exit– prüft die Syntax.logstash -f /etc/logstash/conf.d/pipeline.conf --debug– zeigt, ob Events ankommen.- Logdatei prüfen:
/var/log/logstash/logstash-plain.log.
Logs und Fehlerquellen analysieren
Der häufigste Fehler ist Pipeline aborted due to error – oft ein Tippfehler im Pfad oder fehlende Berechtigungen. Prüfen Sie, ob der Logstash-Benutzer Leserechte auf die Logdatei hat. Ich habe schon Stunden verloren, weil die Datei nur für root lesbar war.
Die 5 häufigsten Fehler bei der Input-Konfiguration
Diese Fehler habe ich in über einem Jahrzehnt Beratung immer wieder gesehen – und selbst gemacht. Vermeiden Sie sie, sparen Sie Zeit.
- Vergessener Codec: JSON-Logs werden als Text angezeigt. Setzen Sie immer
codec => "json"bei strukturierten Logs. - Falsche Dateipfade: Logstash läuft oft als eigener Benutzer, der Leserechte braucht. Nutzen Sie
chmod 644oder passen Sie die Gruppe an. - Verlorene sincedb-Datei: Ohne festen Pfad liest Logstash nach Neustart alles erneut. Definieren Sie
sincedb_path. - Port-Konflikte: Port 8080 ist oft belegt. Wählen Sie einen anderen Port oder binden Sie an
127.0.0.1. - JDBC-Treiber fehlt: Der Pfad zur JAR-Datei muss stimmen. Prüfen Sie, ob die Datei existiert.
Häufig gestellte Fragen zur Logstash Input-Konfiguration
Hier beantworte ich die Fragen, die mir Kunden am häufigsten stellen – kurz und präzise.
Wie kann ich mehrere Input-Plugins in einer Pipeline kombinieren?
Sie können mehrere Blöcke unter input {} definieren – Logstash verarbeitet sie parallel. Das ist praktisch, wenn Sie Daten aus verschiedenen Quellen zusammenführen möchten.
Was ist der Unterschied zwischen File und Beats Plugin?
Das File-Plugin liest direkt vom Dateisystem des Logstash-Servers. Das Beats-Plugin empfängt Daten von entfernten Agenten über das Netzwerk. Beats ist in verteilten Umgebungen zu empfehlen, da es weniger Last auf dem Quellsystem erzeugt.
Wie kann ich die Konfiguration auf Syntaxfehler prüfen?
Nutzen Sie logstash --config.test_and_exit -f /pfad/zur/datei.conf. Die Ausgabe Configuration OK bestätigt die Syntax.
Welches Input-Plugin eignet sich für CSV-Dateien?
Verwenden Sie das File-Plugin mit dem csv-Codec. Alternativ können Sie das HTTP-Plugin nutzen, falls die Anwendung die Datei per POST sendet.
Vergleich der wichtigsten Input-Plugins
Die Wahl des richtigen Plugins hängt von Ihrer Datenquelle ab. Hier ein Vergleich der Eigenschaften.
| Plugin | Datenquelle | Einsatzgebiet | Vorteile | Nachteile |
|---|---|---|---|---|
| File | Lokale Logdateien | Einzelne Server | Einfach, kein Agent nötig | Nur lokal, keine Verteilung |
| Beats | Entfernte Agenten | Verteilte Umgebungen | Geringe Last, SSL-Verschlüsselung | Zusätzliche Agenten-Installation |
| HTTP | Webhooks, APIs | Externe Anwendungen | Flexibel, einfach einzurichten | Authentifizierung nötig |
| JDBC | SQL-Datenbanken | Reporting, Datenmigration | Direkter DB-Zugriff, SQL-Queries | Treiber-Pfad anfällig, Ressourcen |
Ich persönlich bevorzuge Beats für Produktionsumgebungen – die geringe Last auf den Quellsystemen zahlt sich aus. Für schnelle Tests reicht File.
Haben Sie Fragen zur Konfiguration eines spezifischen Plugins? Hinterlassen Sie einen Kommentar oder abonnieren Sie unseren Newsletter für weitere Tutorials rund um den Elastic Stack und DevOps-Themen.
Ein besonders wichtiges Input-Plugin für verteilte Umgebungen ist das Beats-Plugin, dessen Konfiguration wir im Logstash Beats Input Plugin konfigurieren Guide detailliert erläutern.




