混合内容行中的Grok电子邮件和IP

时间:2017-03-01 17:17:09

标签: regex logstash logstash-grok

我想要Grok两个不同的字段,例如电子邮件地址和IP。

我正在做以下事情:

 grok {match => [ "message", "%{EMAILADDRESS:username_client}" %{IP:client_ip} ]}

第一位没问题

  

%{IP:CLIENT_IP}

错了。 "消息"基本上是混合如下: Whatever whatever 200 300 100 example@example.com whatever whatever IP(或类似的东西)

1 个答案:

答案 0 :(得分:1)

您可以使用.*指定任意0个或更多字符模式(贪婪版本,如果IP位于行尾,请使用)或.*?(懒惰版本) ,如果电子邮件和IP之间的字符很少,则使用它并将其置于2个grok模式之间:

"%{EMAILADDRESS:username_client}.*%{IP:client_ip}"
                                ^^