Ich verwende Datei als Eingabe für Logs in Logstash. Meine Log-Dateien werden täglich rotiert, also wollte ich fragen, wie wir das Datei-Plugin von logstash so konfigurieren können, dass es mit den täglich rotierten Dateien funktioniert. Hinzu kommt, dass die Log-Rotation auch mit Datei-Beat verfügbar ist.Log Rotation in Logstash
Antwort
Ich versuche, Ihre Fragen teilweise zu beantworten.
Zuerst - Log-Rotation.
Aus der Dokumentation:
Beachten Sie, dass der gedrehte Dateiname wird als neue Datei behandelt werden, so dass, wenn start_position zu Beginn der gedrehten Datei gesetzt ist, wird wiederaufbereitet werden.
https://www.elastic.co/guide/en/logstash/current/plugins-inputs-file.html
Das bedeutet, dass, wenn Sie eine Umbenennungs in Ihrer Datei Rotation haben, werden Sie Ihre Datei wahrscheinlich verdoppeln (es sei denn, der Weg, den ich glaube, die umbenannte Datei ausschließt).
Wenn Ihr Pfad Ihre umbenannte Datei ausschließt, sollte es in Ordnung sein.
Ich reparierte dies auf eine andere Weise (in Java und Python entsprechend).
Ich deaktivieren Umbenennen von Dateien und stattdessen benennen Sie die Protokolldatei mit dem Datumspräfix. Also für mich, in meiner Java-Anwendung, der Dateiname ist:
my-server-log-%h-%d.log
Da ich in einer verteilten Umgebung arbeite, übernehme ich die Hostnamen in meinen Logfile Namen.
% h = Hostname % d = Datum
Dieser endet in meiner Datei bis zu werden genannt:
my-server-log-pandaadb-2016-06-20.log
Diese Datei wird nie umbenannt. Ich ändere meinen Rotationsalgorithmus, um einfach nicht umzubenennen und stattdessen um Mitternacht eine neue Datei zu erstellen und die vorherige Datei unberührt zu lassen. Dies hat zur Folge, dass logstash (korrekt) weiß, dass es alle Zeilen der vorherigen Datei gelesen hat. Es nimmt die neue Datei auf, da ich Wildcards in meiner Eingabe verwende. Keine Protokolle werden dupliziert.
Das funktioniert übrigens auch sehr gut in Kombination mit rsync.
Ich hoffe, das hilft,
Artur
Edit: Ich habe nicht mit filebeat bisher gearbeitet, so kann ich auf diesem Teil nicht kommentieren.
Können Sie mir etwas über Packetbeat geben? – rresol
Es tut mir leid, ich habe auch nicht vorher mit PacketBeat gearbeitet. Ich habe bisher nur die Eingaben von stdin und datei benutzt – pandaadb