2017-08-24 51 views
0

誰かがlogstash grokで私を助けることができたら、私は感謝します。logstash(5.4.0)grokで繰り返しパターンをキャプチャするには?

以下のようなログを考えると、

IN 192.168.11.2 IN 192.168.11.3 

私の目標は、GROKを使用して配列にIPアドレスを置くことです。 ipのリストは動的であり、2を超えて拡張することができます。

e.g 
tmp = [ 
"192.168.11.2", "192.168.11.3" 
] 

ただし、以下のようなフィルタを使用すると、1つのフィールドになります。

filter { 
    grok { 
    match => { "message" => "(?<tmp>(IN %{IPV4}(\s)?)*)" } 
    } 
} 

結果、

 "path" => "/tmp/sample.csv", 
"@timestamp" => 2017-08-24T05:00:08.093Z, 
     "tmp" => "IN 192.168.11.2 IN 192.168.11.3", 
    "@version" => "1", 
     "host" => "host.ywlocal.net", 
    "message" => "IN 192.168.11.2 IN 192.168.11.3" 

は、これは可能でしょうか?

答えて

2

あなたは、より高度な解析のためにルビーのフィルタを使用することができます。

filter { 
    ruby { 
     code => "event.set('ips') = event.get('message').scan(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/)" 
    } 
} 

regexpはIPアドレスと一致するように、100%正しいではありませんが、あなたのニーズ

+0

男のために働く必要があります。これは私が欲しかった場所です!ありがとうございました ! –

関連する問題