9

ホスト上のディレクトリを監視するlogstashがあります。logstash 構成で指定したパスに一致するログが表示されるたびに、elasticsearch クラスターへのデータのインポートが開始されます。logstash には、ログの消費が完了した後にログを削除する方法がありますか?

logstash が既に処理したログを削除するスクリプトを書きたいのですが、どのログを処理したかを知るにはどうすればよいですか?

多分あなたは前にこれをやったか、これを実装する方法を知っていますか?

4

2 に答える 2

10

Logstash は現在、ファイルを削除できません。ファイル入力プラグインの焦点は、ファイルを継続的に監視することですが、いつファイルが完了したか、つまりいつ書き込みが行われなくなるかを知る方法はありません。

ファイルがいつ「完了」したかがわかっている場合は、Logstash を呼び出して、stdin 入力プラグインを介してファイルをフィードできます。Logstash はファイルの終わりを受信すると終了し、その後、スクリプトによってファイルが削除される可能性があります。

sincedb ファイルを読み取って、Logstash の現在のファイル オフセットを対応するファイルのサイズと比較することもできます。sincedb ファイルの形式の詳細については、Logstash ファイル入力からの sincedb ファイルの理解を参照してください。

または、十分なディスク容量があることを確認し、定期的なログ ローテーションを使用して、たとえば経過時間に基づいてファイルを削除することもできます。ディスク容量はおそらくあなたの時間よりも安いです。

于 2015-06-11T05:49:52.573 に答える
2

logstash の新しいバージョン (V4.1.3) には、これを行う機能があります。アクションは、属性「file_completed_action」の file_input_plugin で指定できます。彼らのドキュメント によると、読み取りモードの場合、ファイルの処理が完了したときにどのアクションを実行する必要がありますか。delete が指定されている場合、ファイルは削除されます。

于 2018-10-12T18:55:28.277 に答える