Grafana + Server酱:告警规则触发时微信收到告警
效果:当 Grafana 监控的指标触发告警规则时,Server酱 会将告警信息推送到你的微信(服务号/企业微信/Server酱³ App)。
前置条件
- 拥有一个 SendKey:用于调用 Server酱 API。请参考 30 秒获取 SendKey 教程。
- 配置 Grafana 告警规则:确保你的 Grafana 数据源和告警规则已正确配置(告警规则配置不在本文讨论范围)。
配置步骤
第一步:在 Grafana 中创建 Contact point 进入 Grafana 的 Alerting 管理界面,找到 “Contact points” 并点击 “Add contact point”。
第二步:配置 Webhook 集成
-
在 “Add contact point” 页面,为 Contact point 命名(例如
Server酱)。 -
在 “Integration” 下拉菜单中,选择 Webhook。
-
根据你的 Grafana 版本,选择以下一种方式配置 URL:
- Grafana v11+ 且支持 Custom Payload:在 “URL” 字段填入 Server酱 API 地址,并切换到 “Custom payload” 标签页,使用 JSON 模板。
{ "title": "{{ .CommonAnnotations.summary }}", "desp": "**告警状态**:{{ .Status }}\n\n**告警名称**:{{ .CommonLabels.alertname }}\n\n**详情**:{{ .CommonAnnotations.description }}" }- URL 示例:
https://sctapi.ftqq.com/你的SENDKEY.send - 模板中的
{{ .CommonAnnotations.summary }}和{{ .CommonLabels.alertname }}是 Grafana 告警模板变量,可按需调整。
- URL 示例:
- 其他版本或 Grafana Cloud:在 “URL” 字段直接填入带查询参数的完整地址。
https://sctapi.ftqq.com/你的SENDKEY.send?title=Grafana告警- 此方式下推送为固定标题,正文以实际收到的消息为准。
- Grafana v11+ 且支持 Custom Payload:在 “URL” 字段填入 Server酱 API 地址,并切换到 “Custom payload” 标签页,使用 JSON 模板。
-
保存该 Contact point。
第三步:在告警规则中引用
在创建或编辑告警规则时,在规则的通知设置中选择你刚刚创建的 Contact point(例如 Server酱,入口以 Grafana 界面为准)。
配置完成后,当告警触发,你将收到微信通知。你可以将告警推送到 企业微信、钉钉或飞书群。
常见问题
免费版额度够用吗? 免费版每天可发送 5 条消息。对于低频告警场景通常足够。订阅会员目前特价最低 3 元/月,一天最多可发 1000 条(价格详情)。
消息没收到怎么办? 请首先参考 Server酱 消息收不到排查指南。检查 Grafana 告警是否成功触发,以及 Contact point 的 URL 和 SendKey 是否正确。
有发送频率限制吗? Server酱 API 有频率限制,免费用户每分钟上限 50 次请求,请确保你的告警频率不会超过此限制。
Grafana 的 Custom Payload 功能找不到? Custom Payload 是 Grafana v11+ 引入的功能,具体是否可用请以 Grafana 应用内实际显示为准。如果不可用,请使用“URL 查询参数”模式。
相关集成
- Python 脚本推送 – 用 Python 脚本调用 Server酱 API
- Uptime Kuma 宕机告警 – 网站监控告警推送
- 青龙面板任务通知 – 定时任务执行结果通知