Grafana + Server酱:告警规则触发时微信收到告警

效果:当 Grafana 监控的指标触发告警规则时,Server酱 会将告警信息推送到你的微信(服务号/企业微信/Server酱³ App)。

前置条件

  1. 拥有一个 SendKey:用于调用 Server酱 API。请参考 30 秒获取 SendKey 教程
  2. 配置 Grafana 告警规则:确保你的 Grafana 数据源和告警规则已正确配置(告警规则配置不在本文讨论范围)。

配置步骤

第一步:在 Grafana 中创建 Contact point 进入 Grafana 的 Alerting 管理界面,找到 “Contact points” 并点击 “Add contact point”。

第二步:配置 Webhook 集成

  1. 在 “Add contact point” 页面,为 Contact point 命名(例如 Server酱)。

  2. 在 “Integration” 下拉菜单中,选择 Webhook

  3. 根据你的 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 告警模板变量,可按需调整。
    • 其他版本或 Grafana Cloud:在 “URL” 字段直接填入带查询参数的完整地址。
      https://sctapi.ftqq.com/你的SENDKEY.send?title=Grafana告警
      
      • 此方式下推送为固定标题,正文以实际收到的消息为准。
  4. 保存该 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 查询参数”模式。

相关集成

懒人方案:把这段话复制给你的 AI 助手

把下面这段文字原样粘贴给 Claude Code、Cursor 或任何 AI 编程助手,它就会替你完成 Server酱 的接入:

请帮我把 Server酱 微信通知接入到我当前的项目/工具中:
1. API:POST https://sctapi.ftqq.com/{SendKey}.send,参数 title(必填,不能含换行)、desp(正文,支持 Markdown,可选);成功时返回 JSON 的 code 为 0。
2. 如果我的 SendKey 以 sctp 开头,则改用 https://{uid}.push.ft07.com/send/{SendKey}.send,uid 是 SendKey 中 sctp 与 t 之间的数字。
3. SendKey 从环境变量 SERVERCHAN_SENDKEY 读取;如果没有,提醒我到 https://sct.ftqq.com 免费获取(每天 5 条额度)。
4. 安全要求:不要把 SendKey 硬编码进代码、不要打印到日志、不要提交到 git。
5. 频率约定:任务结束发 1 条结果摘要即可,批量任务合并成一条,不要每步都推。
请根据我当前的项目和场景直接写好代码/配置并验证。