2017-10-18 136 views
0

我有一個簡單而直接的配置,我不知道我在做什麼錯誤試圖讓這個多行工作。logstash-5.x gelf輸入多行編解碼器不起作用

input { 
    gelf { 
     codec => multiline { 
      pattern => "^%{TIMESTAMP_ISO8601} " 
      negate => true 
      what => "previous" 
     } 
    } 
} 

filter {} 

output { 
    # I have the relevant ES hosts & index here 
    elasticsearch { } 
    stdout { 
     codec => rubydebug 
    } 
} 

而且我如下測試它,我得到的單線條,多標籤沒有得到補充,我看到它在logstash調試日誌的事件由一個經過過濾器之一。

docker run -it --log-driver gelf --log-opt gelf-address=udp://127.0.0.1:12201 \ 
    --log-opt tag=mline-test python:alpine \ 
    python -c 'print("[2017-10-18 00:00:00,000] Hello world");assert False' 
  • 我既logstash版本測試了這個5.5.2 & 5.6.3 => elasticsearch 5.5
  • 我已經安裝logstash編解碼器,多
  • 我知道,我可以用做(現在刪除)多濾波器logstash 2.4

回答

0

我發現了編解碼器中輸入GELF忽略插件:logstash-plugins/logstash-input-gelf#37

這意味着帶gelf的唯一多行選項是使用logstash-2.4並使單線程性能命中。

Settings: Default pipeline workers: 4 
Defaulting pipeline worker threads to 1 because there are some filters that might not work with multiple worker threads {:count_was=>4, :filters=>["multiline"], :level=>:warn} 
Pipeline main started