在你的客户之前发现网站宕机。注册账号、填入 URL、选择通知方式即可上手。免费套餐支持 10 个监控项,每 3 分钟检测一次。
你已经用 Sentry 来追踪应用内部的错误了。它能告诉你应用代码在哪里崩溃,但它无法告诉你:
以上这些都需要外部监控——从外部定期轮询你的网站,当无法访问时立即通知你。成本极低,但物超所值。
Better Stack 用一个工具涵盖了大部分需求,适合还不需要为每个功能单独引入供应商的阶段。
前往 betterstack.com ↗ 注册。免费套餐:10 个监控项、3 分钟检测间隔、每月 30 条 SMS 额度、1 个状态页面、1 GB 日志存储。
如果只需要可用性监控,选择 Uptime 产品即可。Better Stack 还提供 Logs(日志管理)和 Telemetry(APM)两个独立产品,初期可以忽略。
进入控制台 → Monitors → Create monitor,配置以下参数:
保存后,Better Stack 立即开始检测。
直接监控主页也行,但专用的健康检查接口更好——它能验证应用本身和关键依赖是否正常运行,而不只是某个页面能返回 HTML。
// Node + Express
app.get("/api/health", async (req, res) => {
try {
// Check DB
await db.raw("SELECT 1");
// Check Redis / queue / etc.
// await redis.ping();
res.status(200).json({ status: "ok" });
} catch (err) {
res.status(503).json({ status: "degraded", error: err.message });
}
});
将 Better Stack 指向 https://yourdomain.com/api/health。这样,当应用或其依赖出现问题时就会触发告警,而不只是前端页面加载失败时。
默认情况下,Better Stack 会通过邮件通知你。对于真正的值班体系,还需要接入更多渠道:
控制台 → On-call → Integrations,可接入:
个人项目用推送通知 + Slack 就够了。面向真实用户的生产环境,建议再加上 SMS 或电话作为升级通知手段。
如果你没有立即收到告警,或者收到后没有确认,接下来会发生什么?
控制台 → On-call → Escalation policies,定义一条升级链:
初期不必配置这些。随着业务增长、宕机代价越来越高时再逐步完善。
告警触发后,你会通过所有已配置的渠道收到通知。打开 Better Stack,点击 Acknowledge,停止后续通知,表示你已在处理。
网站恢复后:Better Stack 在下一次成功检测时自动标记告警为已解决。你还可以在告警详情页添加事后复盘备注。
免费套餐(3 分钟检测间隔)平均检测延迟约 3 分钟;付费套餐(30 秒间隔)约 30 秒。
故障期间对外沟通同样重要。Better Stack 提供免费状态页面,可根据监控数据自动更新。
控制台 → Status pages → Create status page:
status.yourdomain.com。手动发布故障更新("结账服务出现异常,正在排查"),这些内容会同步显示在状态页面并推送给订阅者。
"我的每日备份脚本有没有跑?"可用性监控检测的是入站 HTTP;心跳监控检测的是出站 Ping 是否缺失。
控制台 → Heartbeats → Create heartbeat,配置预期间隔(例如每 24 小时 ± 1 小时)。Better Stack 会给你一个唯一 URL。
在定时任务或脚本中,每次成功执行后 Ping 该 URL:
#!/usr/bin/env bash
./run-backup.sh && curl -s https://uptime.betterstack.com/api/v1/heartbeat/xxxxxxxx
如果 Better Stack 在预期时间内没有收到 Ping,就会触发告警。非常适合捕捉那些悄悄失败的定时任务。
对于 API 而言,"返回 200" 还不够——你还需要验证响应结构没有被破坏。
监控配置 → Advanced → Expected response body,填入要匹配的字符串或正则表达式,例如:
Expected response body: "\"status\":\"ok\""
也可以使用 JSON 断言:验证 $.user.id 存在、$.health 等于 "ok" 等。即使状态码是 200,只要响应结构被破坏就会触发告警。
&& 而不是 ;)。否则备份实际失败,但心跳仍显示"正常"。免费版:10 个监控项、3 分钟间隔、每月 30 条 SMS、状态页面。团队版:$25/月 — 50 个监控项、30 秒间隔、100 条 SMS。专业版:$80/月 — 全面升级。Better Stack 定价 ↗。
免费套餐足以应对大多数独立项目。当告警量达到需要升级的规模时再考虑付费。