Elastalert whitelist/blacklist 不工作

Elastalert whitelist/blacklist not working

所以我在 (Yelp's) Elastalert 中有一个特定的查询 运行,我正在尝试过滤掉包含几个关键字之一的日志。如果我使用 any 规则类型,我会得到一组 30 个与我拥有的特定查询匹配的结果。当我将规则类型更改为白名单时:

type: whitelist
compare_key: message
ignore_null: true
whitelist: ["exclude_strings"...]

我仍然得到相同的 30 个匹配项,即使我知道消息字段包含列出的字符串。我还尝试更改比较键或字符串,使用与整个字段完全匹配的字符串,我已将格式更改为

whitelist:
- "string"
...

并没有什么不同。黑名单类型也会发生同样的事情。

我错过了什么?

经过进一步测试,发现以上两种格式都可以正常工作。我认为它不起作用的原因是我正在查看 Elastalert 状态中的 hits 项。相反,我应该一直在看 matches 术语。搜索返回相同数量的 hits 因为每次查询都是相同的,但似乎 matches 术语不是来自 ElasticSearch,而是来自 Elastalert 本身。

即Elastalert将完整的query发送给ElasticSearch,然后根据白名单term对返回的数据进行过滤。 hits 每次都一样,但匹配取决于白名单。如果将 realert 设置为零,您将看到生成的警报数量与 matches.

的数量相同