2014-02-17 54 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

找到
相關問題