2

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

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

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

whitelist:
- "string"
...

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

我错过了什么?

4

1 回答 1

2

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

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

于 2017-01-23T18:58:05.650 回答