如何修改Elastic查询实现5xx错误日志达100条阈值才触发告警
Elastic 告警阈值调整方案
核心调整逻辑
你不需要修改原有过滤规则的查询条件,只需要在告警的触发规则中增加命中文档数阈值判断即可,不同的告警实现方式调整方法如下:
方式1:Kibana 可视化告警规则配置(适用于7.10+版本自带告警功能)
- 保持原有查询过滤DSL完全不变
- 在告警的「触发器配置」页面,选择触发条件为
当查询结果的总文档数 >= 100,时间窗口依旧设置为60分钟即可。
方式2:Elastic Watcher 配置修改(适用于自研/旧版本告警实现)
如果你的告警是基于Watcher实现,需要在原有Watcher配置中新增condition阈值判断,完整的核心配置示例如下:
{ "trigger": { "schedule": { "interval": "1m" // 可按需调整告警检查频率 } }, "input": { "search": { "request": { "indices": ["你的业务日志索引名称*"], // 替换为实际索引名 "body": { "query": { "bool": { "must": [ {"regexp":{"messageDetail.uri": "\\/v[1,2]\\/ccpa\\/.*"}}, {"range":{"timestamp":{"gte":"now-60m/m"}}}, {"range":{"responseCode":{"gte":500}}} ], "must_not": [ {"regexp": {"message": ".*requestqueuedoesnotexist.*"}} ] } }, "size": 0, "track_total_hits": 200 // 确保阈值统计准确,数值大于你的阈值100即可 } } } }, "condition": { "compare": { // ES 7.x+版本用 ctx.payload.hits.total.value,低版本用 ctx.payload.hits.total "ctx.payload.hits.total.value": { "gte": 100 } } }, "actions": { // 保留原有告警通知配置即可 } }
注意事项
如果你使用的是其他第三方告警平台对接ES,只需要在平台的告警触发规则中,将匹配条数阈值设置为100即可,不需要修改ES查询逻辑。
内容的提问来源于stack exchange,提问作者Aman Kumar Sinha
相关产品推荐
相关产品推荐

