为什么logstash每次重新启动时都会导入同一个文件?
我在同一个文件夹(本例中为C:/ temp /)中有3个不同的日志文件。每次重新启动logstash时,都会再次导入文件!这是预期的吗?
logstash.conf
input {
file {
type => "app"
path => [ "C:/temp/*.log" ]
codec => "json"
}
}
output {
stdout { codec => rubydebug }
elasticsearch { embedded => true }
}
这是我用来运行logstash的命令(我正在使用Windows):
java -jar logstash-1.3.3-flatjar.jar agent -f logstash.conf -- web
我知道每次重新启动时都会导入文件,因为它们正在输出到控制台,我可以看到在通过kibana浏览日志时多次出现相同的日志消息。
答案 0 :(得分:3)
回答我自己的问题:
事实上,这不是预期的,它是Windows的已知错误。你可以在这里查看here和 here(引用如下)。
在Linux和Windows上进行了几次测试后,我意识到如果是logstash 是(重新)在Windows上启动,所有日志从头开始解析 再次。如果我设置start_position或since_db并不重要 路径或两者的组合将被忽略。
<强>更新强>:
我通过手动修补 logstash-1.3.3-flatjar.jar 并修改了edwinf对 ruby-filewatch 所做的一些修改。如果你想做同样的事情: