2016-07-07 3 views
2

Logstash 2.3.3では、最後のフィールドでgrokフィルタが機能しません。 Logstash grokフィルタが最後のフィールドで機能しない

は、問題を再現する次のように test.confを作成するには:それは始まった後、別の端末の実行 echo "1,2,3,4,5" >> test.log

で、

input { 
    file { 
    path => "/Users/izeye/Applications/logstash-2.3.3/test.log" 
    } 
} 

filter { 
    grok { 
    match => { "message" => "%{DATA:id1},%{DATA:id2},%{DATA:id3},%{DATA:id4},%{DATA:id5}" } 
    } 
} 

output { 
    stdout { 
    codec => rubydebug 
    } 
} 

実行./bin/logstash -f test.conf

をして、私は次の出力を得た:

Johnnyui-MacBook-Pro:logstash-2.3.3 izeye$ ./bin/logstash -f test.conf 
Settings: Default pipeline workers: 8 
Pipeline main started 
{ 
     "message" => "1,2,3,4,5", 
     "@version" => "1", 
    "@timestamp" => "2016-07-07T07:57:42.830Z", 
      "path" => "/Users/izeye/Applications/logstash-2.3.3/test.log", 
      "host" => "Johnnyui-MacBook-Pro.local", 
      "id1" => "1", 
      "id2" => "2", 
      "id3" => "3", 
      "id4" => "4" 
} 

紛失したid5を見ることができます。

これはバグであるか誤って構成されているかわかりません。

ご了承ください。

答えて

1

どのようにDATAパターンが定義されているかと思います。その正規表現は.*?なので、それは怠惰な試合です。 これはバグではなく、正規表現の仕組み(example)です。
しかし、正確な答えを得るために正規表現の質問をしたいと思うかもしれません。

解決策として、最後のDATANUMBER(または状況に適したもの)に置き換えることができます。また、GREEDYDATAが動作します。

+0

ありがとうございました!私はその価値をチェックしなかった:https://github.com/logstash-plugins/logstash-patterns-core/blob/master/patterns/grok-patterns –

関連する問題