grafana v9.0起采用alerting架构实现告警,核心三步:配置webhook通知渠道(钉钉/企微群机器人)、设置基于severity匹配的通知策略、在graph面板创建绑定labels的告警规则。

Grafana 从 v9.0 开始全面重构告警系统,采用 Alerting(Alertmanager 风格)架构,配置告警规则并推送到钉钉或企业微信,核心是三步:配置通知渠道(Contact Point)、设置通知策略(Notification Policy)、绑定告警规则(Alert Rule)。Webhook 是最通用、最可控的方式,尤其适用于官方未原生支持企微的场景。
配置钉钉/企微的 Webhook 通知渠道
钉钉和企微都支持「群机器人」,需先在对应平台创建机器人并获取 Webhook URL:
- 钉钉:进入群 → 群设置 → 智能群助手 → 添加「自定义机器人」→ 开启「安全设置」(建议用「自定义关键词」或「加签」,避免被拦截)→ 复制 Webhook 地址
- 企业微信:进入群 → 右上角「…」→ 添加群机器人 → 选择「文本」类型 → 复制 Webhook URL(注意:官方 Grafana 不直接支持企微格式,需靠 Webhook 中转或自定义模板)
在 Grafana 中操作:
- 进入 Alerting → Contact points → Add contact point
- 名称填如 dingtalk-prod 或 wecom-alert
- 类型选 Webhook,粘贴刚复制的 URL
- (可选)在 Message 区域自定义模板,例如钉钉常用:
{"msgtype": "text", "text": {"content": "【Grafana 告警】{{ .Alerts.Name }}\n状态:{{ .Status }}\n实例:{{ .Alerts.Instance }}\n值:{{ .Alerts.Value }}\n时间:{{ .Alerts.StartsAt }}"}} - 点击 Save 保存
设置通知策略,决定谁收到什么告警
通知策略控制告警路由逻辑,比如“所有高危告警发钉钉,普通告警发邮件”:
- 进入 Alerting → Notification policies
- 编辑默认策略(或新建嵌套策略)
- 添加匹配条件,例如:
Matcher → severity = critical → 对应联系点选 dingtalk-prod
Matcher → severity = warning → 对应联系点选 wecom-alert - 可开启 Continue matching nested policies 实现多级分发
- 保存后,策略即刻生效
创建告警规则并关联指标
告警规则必须基于支持告警的数据源(如 Prometheus、InfluxDB),且只能绑定到 Graph 类型面板(Table/Stat/Alerts 面板不支持):
- 进入仪表盘 → 编辑目标 Graph 面板 → 切换到 Alert 标签页
- 点击 Create alert rule(或在 Alerting → Alert rules 页面统一管理)
- 填写规则基础信息:
- 名称(如 HighMemoryUsage)
- 表达式(如 100 - (avg by(instance)(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 85)
- 持续时间(for: 3m,即连续 3 分钟超阈值才触发) - 在 Labels 中添加 severity=critical,以便通知策略识别
- 确认规则启用,并确保它属于已配置的 notification policy 路由范围内
验证与排错要点
配置完成后,常见问题排查方向:
-
收不到消息? 先检查 Webhook URL 是否复制完整(含 access_token 参数);再看 Grafana 日志(
journalctl -u grafana-server -f)是否有 HTTP 4xx/5xx 错误 - 钉钉/企微提示“关键词不匹配”? 回到机器人安全设置,确认消息内容含预设关键词(如“告警”),或改用「加签」方式
- 告警状态卡在 Pending? 查看规则中 for 时间是否过长,或数据源查询是否返回空/NaN
-
想带图表截图? Webhook 模板里可用 {{ .ImageURL }}(需 Grafana 启用
rendering服务并配置正确)











