2015-06-10 3 views
8

Ich habe Logstash ein Verzeichnis auf dem Host beobachten. 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 es verbraucht hat?Protokolle nach dem Verbrauch löschen: logstash

Ich möchte Skript schreiben, um die Protokolle zu löschen, die logstash bereits mit getan, aber wie soll ich wissen, welche Protokolle er gemacht hat?

vielleicht haben Sie das schon mal gemacht oder haben Sie eine Idee, wie Sie das umsetzen?

Antwort

8

Logstash kann Dateien derzeit nicht löschen. Der Fokus der file input plugin ist, Dateien kontinuierlich zu überwachen, aber es gibt keine Möglichkeit zu wissen, wann die Datei fertig ist, d. H. Wenn keine Schreibvorgänge mehr stattfinden. Wenn Sie wissen, wann die Dateien fertig sind, können Sie Logstash aufrufen und die Dateien über die Datei stdin input plugin einreichen. Logstash wird beim Empfang des Dateiendes beendet und das Skript kann die Datei löschen.

Sie können auch die sincedb-Dateien lesen und Logstashs aktuellen Datei-Offset mit der Größe der entsprechenden Datei vergleichen. Details zum Format der sincedb-Dateien finden Sie unter Understanding sincedb files from Logstash file input.

Oder Sie können nur sicherstellen, dass Sie genügend Speicherplatz haben und verwenden Sie regelmäßige Log-Rotation, um Dateien auf z. Alter. Speicherplatz ist wahrscheinlich billiger als Ihre Zeit.