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

时间:2014-02-17 18:14:57

标签: logstash kibana

为什么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浏览日志时多次出现相同的日志消息。

1 个答案:

答案 0 :(得分:3)

回答我自己的问题:

事实上,这不是预期的,它是Windows的已知错误。你可以在这里查看herehere(引用如下)。

  

在Linux和Windows上进行了几次测试后,我意识到如果是logstash   是(重新)在Windows上启动,所有日志从头开始解析   再次。如果我设置start_position或since_db并不重要   路径或两者的组合将被忽略。

<强>更新

我通过手动修补 logstash-1.3.3-flatjar.jar 并修改了edwinf对 ruby​​-filewatch 所做的一些修改。如果你想做同样的事情:

  1. 打开https://github.com/jordansissel/ruby-filewatch/tree/master/lib/filewatch并下载 buftok.rb,tail.rb,watch.rb和winhelper.rb
  2. 使用任何zip文件编辑器打开logstash-1.3.3-flatjar.jar并将下载的文件放在名为“filewatch”的文件夹中(替换原始文件)
  3. https://github.com/jordansissel/ruby-filewatch/tree/master/java下载 JRubyFileExtension.jar
  4. 将此文件放在 logstash-1.3.3-flatjar.jar 的根目录下(使用zip文件编辑器打开它时)。
  5. 完成。当然,必须重新运行Logstash:)
  6. 可以在https://github.com/jordansissel/ruby-filewatch/pull/22

    找到修复此问题的提款请求