接触点与策略的分工
Grafana 告警通知拆成两个概念:接触点(contact point)定义“怎么发”,例如邮件、Webhook、企业微信或 Slack;通知策略(notification policy)定义“发给谁”,按标签匹配把告警路由到对应接触点。默认策略承担兜底职责,所有未匹配的告警都走它,因此修改默认策略的风险最大。
概念对照
| 概念 | 定义 | 典型配置项 |
|---|---|---|
| 接触点 | 消息以什么方式发出 | 类型、地址、凭据、消息模板 |
| 通知策略 | 哪些告警发给哪个接触点 | 匹配标签、分组键、重复间隔 |
| 默认策略 | 兜底路由,未匹配的告警都走它 | 接收器与分组键 |
| 静音定时 | 周期性不发通知的时间段 | 时段、星期、时区 |
provisioning 接触点
provisioning 接触点
# provisioning/alerting/contact-points.yaml
apiVersion: 1
contactPoints:
- orgId: 1
name: im-webhook
receivers:
- uid: im1
type: webhook
settings:
url: http://127.0.0.1:8060/relay
# 凭据放 secure settings,不写明文
secureSettings:
authorization_header: "Bearer xxx"provisioning 通知策略
provisioning 通知策略
# provisioning/alerting/policies.yaml
apiVersion: 1
policies:
- orgId: 1
receiver: im-webhook
group_by: ['alertname', 'service']
routes:
- receiver: pager-webhook
object_matchers: [['severity', '=', 'critical']]
- receiver: mail-ops
object_matchers: [['severity', '=', 'warning']]配置要点
- 改完策略先用测试按钮发一条探针告警,确认路由与消息格式都正确
- 默认策略被改成不发送时,未匹配的告警会静默消失,务必保留兜底接收器
- group_by 选错会把应合并的告警拆散,通知数量成倍增加
- 接触点凭据放 secure settings,避免导出配置或备份时泄露
一个接触点可以挂多个接收器,Grafana 会并发发送;需要按级别分流时用策略路由,而不是给一个接收器配多套模板。
常见接触点类型
- 邮件:留痕与长文最合适,需要确认收件组与垃圾箱策略
- Webhook:对接自建中继,可做格式转换、限流与合并
- IM 类(企业微信、钉钉、飞书、Slack):群内协同,注意平台频控
- 呼叫与短信类:给需要立刻响应的高级别告警,通常经第三方平台
- OnCall 平台:把排班、升级链与确认状态交给专业工具管理
迁移告警源时先并跑:新旧通道同时接收一段时间,确认新通道的消息完整、格式正确后再下线旧通道。
接触点与策略都属于告警配置,建议用 provisioning 文件管理并纳入版本控制,手工在界面改动的部分很容易在下一次同步时被覆盖。