【问题标题】:Why is Logstash importing the same file every time I restart it?为什么每次我重新启动 Logstash 时都会导入相同的文件?
【发布时间】:2014-02-17 18:14:57
【问题描述】:

为什么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):

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

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

【问题讨论】:

    标签: logstash kibana


    【解决方案1】:

    回答我自己的问题:

    事实上,这是意料之外的,这是 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.jar 的根目录(同时使用 zip 文件编辑器打开它)。
    5. 完成。当然,必须重新运行 Logstash :)

    可以在https://github.com/jordansissel/ruby-filewatch/pull/22找到修复此问题的拉取请求

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多