Grafana错误日志每小时重复告警、拦截恢复通知及日志嵌入配置
Grafana Loki 应用错误日志告警配置优化
当前配置基准
- 日志统计查询语句:
count_over_time(({logtype="app_log"} |= "ERROR")[1h]),统计过去1小时内包含ERROR关键字的应用日志条数 - 告警规则参数:规则名称
${RuleName},评估周期60分钟,持续触发时长0;状态判定逻辑为近1小时统计值>0即进入告警状态,无数据/返回空值时判定为OK,查询超时/执行报错时判定为ALERTING状态
配置问题与调整方案
- 问题1:仅首次检测到错误时推送告警,后续小时周期出现新错误时,因规则已处于告警状态不会重复推送
将告警规则的重复通知间隔(Group interval)设置为与评估周期一致的60分钟,确保规则持续处于告警状态时,每完成一次评估都会触发一次通知推送,避免同周期告警被默认聚合逻辑拦截 - 问题2:错误消除后会自动推送OK状态的告警恢复通知,不需要这类消息
在对应开发频道的通知渠道配置中,关闭「发送恢复通知」开关,从通知分发侧直接拦截所有从告警状态转为正常状态的恢复类消息,无需修改规则本身的状态判定逻辑 - 问题3:通知缺少错误日志上下文,需要嵌入错误发生时间、具体日志内容
配套新增日志提取查询语句:{logtype="app_log"} |= "ERROR" | line_format "时间:{{.timestamp}} 日志:{{.message}}",按1小时窗口拉取周期内的ERROR日志详情
自定义告警通知模板,将上述提取语句的返回结果作为变量嵌入通知正文,可按需增加limit函数控制拉取的日志条数,避免通知内容过长
内容的提问来源于stack exchange,提问作者kee07420
相关产品推荐
相关产品推荐

