Sentry + Server酱:Sentry 捕获到新的错误/异常时推送到微信

效果:Sentry 项目产生新异常时,微信立即收到告警通知。

前置条件

配置步骤

Sentry 的 Alert Rule 支持 Webhook 和 Internal Integration,会向自定义 URL POST 固定 JSON。根据是否需要解析报错详情,分为直连和中转两种方式。

方式一:固定文案直连(最简)

Server酱 API 服务端优先读取 URL query 中的 title 参数,利用此特性可直接将 Sentry 的 Webhook 指向 Server酱,无需额外服务。

  1. 复制以下 URL,将 你的SENDKEY 替换为真实值:
https://sctapi.ftqq.com/你的SENDKEY.send?title=Sentry%E6%9C%89%E6%96%B0%E6%8A%A5%E9%94%99
  1. 在 Sentry 中进入 Alerts,新建规则。
  2. 在 Action 中选择 Webhook,将上述 URL 填入。

此方式触发后,微信将收到标题为「Sentry有新报错」的通知。如需推送到企业微信/钉钉/飞书群,请参考通道配置

方式二:中转解析(含报错详情)

若需将 Sentry 发送的 JSON 中的错误标题或项目名送入正文 desp,需增加一层中转(如 Cloudflare Workers 或云函数),解析 JSON 后再调用 Server酱 API。

  1. 部署中转服务,接收 Sentry Webhook 并解析所需字段。
  2. 中转服务向 Server酱 发起请求:
curl -X POST "https://sctapi.ftqq.com/你的SENDKEY.send" \
  --data-urlencode "title=解析后的标题" \
  --data-urlencode "desp=解析后的正文内容"
  1. 在 Sentry Alerts 规则的 Webhook Action 中,填入中转服务的 URL。

常见问题

额度怎么算?

免费版每日推送 5 条,每分钟上限 50 条;订阅会员目前特价最低 3 元/月,一天最多可发 1000 条(价格详情)。

消息没收到怎么排查?

检查 SendKey 是否正确、Sentry 规则是否触发,更多排查步骤见常见问题

频率超限怎么办?

单个 SendKey 每分钟请求不能超过 50 次。若 Sentry 短时间爆发大量错误,请调整告警规则频率或合并通知。

相关集成

懒人方案:把这段话复制给你的 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 条结果摘要即可,批量任务合并成一条,不要每步都推。
请根据我当前的项目和场景直接写好代码/配置并验证。