Ich habe logstash, um ein Verzeichnis auf dem Host anzuschauen. Jedes Mal, wenn ein Protokoll angezeigt wird, das mit dem Pfad übereinstimmt, den ich in der logstash-Konfiguration angegeben habe, beginnt es, die Daten in meinen ElasticSearch-Cluster zu importieren. Hat logstash eine Möglichkeit, das Protokoll zu löschen, nachdem es verbraucht wurde?
Ich möchte ein Skript schreiben, um die Logs zu löschen, die logstash bereits gemacht hat aber wie soll ich wissen, mit welchen logs er fertig ist?
Vielleicht habt ihr das schon mal gemacht oder habt eine Idee, wie ihr das umsetzen könnt?
Logstash kann derzeit keine Dateien löschen. Der Fokus des Dateieingabeplugins liegt auf der kontinuierlichen Überwachung von Dateien, aber es gibt Keine Möglichkeit zu wissen, wann die Datei fertig ist, dh wann keine Schreibvorgänge mehr stattfinden.
Wenn Sie wissen, wann die Dateien fertig sind, können Sie Logstash aufrufen und die Dateien über stdin Eingabe-Plugin . Logstash wird beim Empfang des Dateiendes beendet und dann kann das Skript die Datei löschen.
Sie können auch die sincedb-Dateien lesen und den aktuellen Dateiversatz von Logstash mit der Größe der entsprechenden Datei vergleichen. Siehe Informationen zu sincedb-Dateien aus der Logstash-Dateieingabe für Details zum Format von die sincedb-Dateien.
Oder Sie können einfach sicherstellen, dass Sie genügend Speicherplatz haben und eine normale Log-Rotation verwenden, um Dateien auf der Basis von z. Alter. Speicherplatz ist wahrscheinlich billiger als Ihre Zeit.
Tags und Links logging logstash logstash-file