UptimeRobot + Server酱:网站宕机与恢复时微信收到告警

效果:网站或服务宕机及恢复时,自动将告警推送到微信

前置条件

  • 获取 Server酱 SendKey(30 秒获取教程
  • 拥有 UptimeRobot 账号及已配置的监控项

配置步骤

UptimeRobot 支持 GET 和 POST 两种方式触发 Webhook,以下分别给出配置值。

方式一:GET 查询串(推荐,配置最简)

在 UptimeRobot 添加联系人时,选择 Webhook 类型,填入以下 URL:

https://sctapi.ftqq.com/你的SENDKEY.send?title=【告警】*monitorFriendlyName*&desp=*monitorFriendlyName*%20状态变更

UptimeRobot 会自动将 *monitorFriendlyName* 等变量替换为实际监控名称拼入查询参数。

方式二:POST JSON

在 UptimeRobot 添加联系人,选择 Webhook 类型,填入 API 地址:

https://sctapi.ftqq.com/你的SENDKEY.send

勾选 Send as JSON(具体选项名称以应用内实际显示为准),并在 JSON Payload 中填入:

{
  "title": "【告警】*monitorFriendlyName*",
  "desp": "监控项 *monitorFriendlyName* 状态发生变更"
}

配置完成后,在 UptimeRobot 中将该 Webhook 联系人关联到对应监控项。如需推送到企业微信、钉钉或飞书群,可参考通道配置

完整示例

以下是一个使用 POST JSON 方式的完整 Payload 示例,将监控名称与状态变量组合为 Markdown 格式消息:

{
  "title": "【状态变更】*monitorFriendlyName*",
  "desp": "## 告警详情\n\n监控名称:*monitorFriendlyName*\n\n请及时检查服务状态。"
}

常见问题

额度消耗是怎么计算的?

免费用户每日可发送 5 条,订阅会员目前特价最低 3 元/月,一天最多可发 1000 条(价格详情)。

配置后消息没收到怎么办?

请检查填入的 SendKey 是否正确,确认 UptimeRobot 触发了告警,并参考常见问题与排查检查消息是否被过滤。

API 频率限制是多少?

Server酱 API 每分钟上限为 50 条,订阅会员每日 API 请求上限为 1000。

UptimeRobot 的其他变量怎么用?

UptimeRobot 支持在 URL 参数或 JSON 值中直接填入其提供的变量(如 *monitorFriendlyName*),发送时 UptimeRobot 会自动替换为实际内容。其他可用变量请参考 UptimeRobot 官方说明。

相关集成

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