0

例ログKVと重複値をプラグイン:logstash、フィールドに

2017-11-27T04:26:33+01:00 node231 PROXY-NODE2: 2017-11-27 04:26:31,559 [INFO] [user=optimus&id=dwql33333fssd&password=****&request=true&response=true&total=225&id=dwql33333fssd] 

マイlogstashの設定:

filter { 
    if "node" in [tags] and "[INFO]" in [message] { 
     grok { 
      match => { "message" => "%{TIMESTAMP_ISO8601} %{DATA} %{DATA:[proxy][node]}: %{TIMESTAMP_ISO8601:[proxy][timestamp]} %{DATA} \[%{GREEDYDATA:data}\]" 
      add_field => {"[@metadata][status]" => "parsed"} 
     } 
     if [@metadata][status] == "parsed" { 
      kv { 
      source => "data" 
      field_split => "&" 
      include_keys => [ "user", "id", "total" ] 
     } 
    } 
} 

出力(例):ログは二回含まれているため

{ 
    "id" => [ 
       [0] "dwql33333fssd", 
       [1] "dwql33333fssd" 
      ], 
} 

を」 id "...私は最初か最後の" id "しか得ることができませんか? 他のフィールドも重複することがあるので、柔軟な解決策が必要です。

答えて

0

重複するキーと値のペアを削除するためのboolオプション。 falseに設定すると、一意のキーと値のペアが1つだけ保存されます。

たとえば、from = me from = meのようなソースを考えてみましょう。 [from]は["me"、 "me"]という2つの要素を持つ配列にマップします。唯一の一意のキー/値のペアを維持するには、この設定を使用することができます。

filter { 
     kv { 
     allow_duplicate_values => false 
     } 
    } 

出典:他のユーザーはここで何が起こっているのか理解していない可能性がありますようhttps://www.elastic.co/guide/en/logstash/current/plugins-filters-kv.html#plugins-filters-kv-allow_duplicate_values

+0

常にあなたの答えに説明を追加してください。 –

関連する問題