为什么每次我重新启动Logstash时都要导入相同的文件?

为什么每次我重新启动Logstash时都要导入相同的文件?,logstash,kibana,Logstash,Kibana,为什么每次我重新启动logstash时都会导入相同的文件 我在同一文件夹中有3个不同的日志文件(本例中为C:/temp/)。每次我重新启动logstash时,文件都会再次导入!这是预期的吗 logstash.conf input { file { type => "app" path => [ "C:/temp/*.log" ] codec => "json" } } output { stdout { codec =>

为什么每次我重新启动logstash时都会导入相同的文件

我在同一文件夹中有3个不同的日志文件(本例中为C:/temp/)。每次我重新启动logstash时,文件都会再次导入!这是预期的吗

logstash.conf

input { 
  file { 
    type => "app" 
    path => [ "C:/temp/*.log" ] 
    codec => "json" 
  }
}

output { 
  stdout { codec => rubydebug }
  elasticsearch { embedded => true }
}
这是我用来运行logstash的命令(我使用的是Windows):


我知道每次重启时都会导入这些文件,因为它们会被输出到控制台,在通过kibana浏览日志时,我可以看到相同的日志消息多次出现。

回答我自己的问题:

事实上,这不是预期的,这是windows的一个已知错误。你可以在这里查一下 (引述如下)

在Linux和Windows上进行了几次测试之后,我意识到如果logstash 在Windows上(重新)启动时,所有日志都将从头解析 再一次。无论我设置的是开始位置还是开始位置 路径,或两者的组合,该设置将被忽略

更新

我通过手动修补logstash-1.3.3-flatjar.jar修复了这个问题,edwinf对ruby filewatch做了一些更改。如果您也希望这样做:

  • 打开并下载buftok.rb、tail.rb、watch.rb和winhelper.rb
  • 使用任何zip文件编辑器打开logstash-1.3.3-flatjar.jar,并将下载的文件放入名为“filewatch”的文件夹中(替换原始文件)
  • 从下载JRubyFileExtension.jar
  • 将此文件放在logstash-1.3.3-flatjar.jar的根目录下(同时使用zip文件编辑器打开它)
  • 完成了。当然,必须重新运行日志存储:)
  • 修复此问题的pull请求可在以下位置找到:

    java -jar logstash-1.3.3-flatjar.jar agent -f logstash.conf -- web