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

问题描述

目前,我正在使用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,则会使用该电子邮件。

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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...