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

Grok email and IP in mixed content line

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

我正在做以下事情:

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

第一位很好,但是

%{IP:client_ip}

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

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

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