如何在Loki告警规则的标签/注解中添加错误日志内容并发送至Alertmanager?
Loki告警规则:将Error日志内容传入Alertmanager
要把Error日志的内容带到Alertmanager的告警通知里,核心是利用Loki告警规则中的标签变量引用,以下是修改后的可行方案:
修改后的告警规则
groups: - name: rate-alerting rules: - alert: ErrorLogAlert expr: | sum by (message) ( rate({app="_development"} | json | level = "error"[1m]) ) > 0.02 for: 1m labels: severity: critical team: dev-team category: application-logs annotations: title: "Error日志告警触发" description: "检测到错误日志:{{ $labels.message }},最近1分钟内出现频率超过阈值"
关键说明
- 表达式里的
sum by (message)会按日志的message字段聚合错误日志,同时将message作为告警标签保留下来 - 在annotations的
description中,通过模板语法{{ $labels.message }}直接引用这条错误日志的具体内容 - 如果你的日志里存储错误内容的字段不是
message,替换成实际字段名即可(比如字段叫log_content,就用{{ $labels.log_content }})
注意事项
- 确保Loki的
| json解析已经正确提取出目标字段,否则无法通过标签引用 - 若每条错误日志的内容都不同,
sum by (message)会为每个唯一的错误消息生成独立告警 - 若不需要按错误内容分组,仅需捕获错误出现的情况并获取最新日志内容,可改用
last_over_time函数配合标签提取,但这种场景下按内容分组的告警更具针对性
内容的提问来源于stack exchange,提问作者MiguEl
相关产品推荐
相关产品推荐

