Elastalert 使用字段值作为电子邮件警报中的地址

Elastalert use field value as to address in email alert

目前,我正在使用 elasticsearch 存储数据,使用 Kibana 进行可视化,使用 elastalert 发出警报。

这里是使用黑名单规则的电子邮件警报的工作规则。

name: email blacklist rule

type: blacklist

index: subjects

compare_key: subject

blacklist:
- "Hindi"

alert:
- "email"

email:
 - "example@gmail.com"

当我在规则中硬编码电子邮件地址时,此规则工作正常。

这是 elasticsearch 索引的文档之一:

{
  "subject" : "Hindi",
  "@timestamp" : "2020-08-19T12:23:00.000Z",
  "mail_to" : "sample@gmail.com"
}

现在有什么方法可以从文档中选择电子邮件并向其发送电子邮件吗?

我的意思是将邮件发送到 sample@gmail.com,而不是 example@gmail.com。

为了向正在通过 elastalert 规则的文档字段之一中存在的邮件发送警报,我们可以使用内置功能调用

email_from_field: "fields_that_consists_emailid"

这是索引中的文档之一:

{
  "subject" : "Hindi",
  "@timestamp" : "2020-08-19T12:23:00.000Z",
  "mail_to" : "sample@gmail.com"
}

这是它的工作规则:

name: field value rule

type: blacklist

index: subjects

compare_key: subject

blacklist:
- "Hindi"

alert:
- "email"

email:
 - "example@gmail.com"
 
email_from_field: "mail_to"

在上述规则中,电子邮件是必填参数,用于在 email_from_field 参数中没有有效 mail-id 的情况下使用。

因此,在上述规则中,警报将发送到样本@gmail.com