Grok

时间:2019-05-23 14:40:59

标签: elasticsearch logstash

我有一个类似的日志:

2019-05-23 16:33:54 +0300 08 mail SMTP-IN:0003ACBE: New mail <0000> received from mail.contoso.com (127.0.0.1) with envelope from <user@contoso.com>, recipients=3 (user1@contoso.com, user2@contoso.com, user3@contoso.com), size=1234, enqueued with id 12345

我看过kv过滤器,但不了解如何应用它,因为地址模式也落在发送者身上。

我不知道如何解析这样的行。收件人可以是随机数。我想通过grok获取结构化数据,例如:

“电子邮件1”:“ user1@contoso.com”

“电子邮件2”:“ user2@contoso.com”

“ email3”:“ user3@contoso.com”

1 个答案:

答案 0 :(得分:2)

您可以将所有电子邮件地址都放在一个字段中,然后使用mutate过滤器将其拆分为一个数组。

如果您确实需要在每个字段中添加新字段,则可能需要放入ruby并遍历整个数组。