2014-02-17 87 views
2

为什么logstash每次重新启动时都会导入同一个文件?为什么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浏览日志时,我可以看到几次出现的相同日志消息。

回答

3

回答我的问题:

其实,这不是预期的,它是一个用于Windows的已知的bug。你可以在这里检查它herehere(引用下面)。

后在Linux和Windows多次试验,我意识到,如果logstash 是(重新)在Windows启动时,所有日志都会从一开始就 解析一次。无论我设置start_position还是since_db 路径或两者的组合,该设置都将被忽略。

UPDATE

我通过手动修补固定此logstash-1.3.3- flatjar.jar与由edwinf作出红宝石filewatch一些变化。如果你想要做的是相同的:

  1. 打开https://github.com/jordansissel/ruby-filewatch/tree/master/lib/filewatch和下载buftok.rb,tail.rb,watch.rb使用winhelper.rb
  2. 开放logstash-1.3.3-flatjar.jar任何zip文件编辑器,并把下载的文件名为“filewatch”文件夹内(取代原来的文件)
  3. 下载JRubyFileExtension.jarhttps://github.com/jordansissel/ruby-filewatch/tree/master/java
  4. 将这个文件在根logstash-1.3.3- flatjar.jar(同时用zip文件编辑器打开它)。
  5. 完成。 Logstash必须重新运行当然:)的,

其修复此问题拉入请求可以在https://github.com/jordansissel/ruby-filewatch/pull/22

找到
相关问题