■環境
- Windows10 Pro 64bit
- メモリ : 64GB
- logstash-6.4.2
特定のフォルダにxmlファイルがコピーされたことをトリガーに内容をフィルタリングし
elasticsearchへ送信するパイプラインの実装を進めています。
input, filter, outputの実装が完了しテストを繰り返しているのですが
logstashのagent起動中に終端(eof)まで読み終わったxmlファイルを削除すると
下記のようなエラーが繰り返し出力されます。(パスなど一部修正しています)
[2018-10-31T19:17:06,800][ERROR][filewatch.tailmode.processor] Ignored - other error <xmlファイルパス>: (No such process - <xmlファイルパス>, ["org/jruby/RubyFile.java:938:in
stat'", "<logstashインストールパス>/vendor/bundle/jruby/2.3.0/gems/logstash-input-file-4.1.6/lib/filewatch/stat/windows_path.rb:19:in
restat'", "<logstashインストールパス>/vendor/bundle/jruby/2.3.0/gems/logstash-input-file-4.1.6/lib/filewatch/watched_file.rb:110:inrestat'", "<logstashインストールパス>/vendor/bundle/jruby/2.3.0/gems/logstash-input-file-4.1.6/lib/filewatch/tail_mode/processor.rb:271:in
common_restat'", "<logstashインストールパス>/vendor/bundle/jruby/2.3.0/gems/logstash-input-file-4.1.6/lib/filewatch/tail_mode/processor.rb:261:incommon_restat_with_delay'", "<logstashインストールパス>/vendor/bundle/jruby/2.3.0/gems/logstash-input-file-4.1.6/lib/filewatch/tail_mode/processor.rb:117:in
block in process_ignored'", "org/jruby/RubyArray.java:1734:ineach'", "<logstashインストールパス>/vendor/bundle/jruby/2.3.0/gems/logstash-input-file-4.1.6/lib/filewatch/tail_mode/processor.rb:116:in
process_ignored'"])
このエラーは multiline codec を使用しない通常のinput-fileでの処理では発生しないので
おそらくmultiline codecによる監視が外れないことが原因と考えています。
フォルダに蓄積されたxmlファイルから古い順に定期削除することを想定しており
このエラーを回避できないかと調査しましたが解決に至りませんでした。
一度終端(eof)まで読み込んだxmlファイルを削除してもエラーが発生しないために
必要な confの記述方法があれば情報をお願いします。
以下一部抜粋となりますが実装したconfファイルの内容です。
input {
file {
path => "<任意のパス>/**/*.xml"
start_position => "beginning"
close_older => 1
codec => multiline {
pattern => "^<\?Sample .*\>"
negate => true
what => "previous"
}
}
}
filter {
xml {
...
}
}
output {
elasticsearch {
hosts => [<ホストURL>]
index => "sample_index"
}
}
よろしくお願いします。