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
.
的数量相同
所以我在 (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
.