网站监控工具选型指南:可用性/性能/错误追踪全覆盖
网站监控是保障在线业务稳定运行的基础。一个完整的监控体系包括可用性监控(网站是否能访问)、性能监控(访问速度如何)、错误追踪(代码是否有 Bug)和日志管理(发生了什么)。本文从这四个维度推荐主流工具。
一、可用性监控(Uptime Monitoring)
1.1 核心功能
可用性监控定期检查网站是否可以正常访问,并在宕机时发送告警。
| 功能 | 说明 |
|---|---|
| HTTP/HTTPS 检查 | 检查网站是否返回 200 OK |
| 多地点检查 | 从全球不同城市检测 |
| SSL 证书检查 | 证书到期前提醒 |
| 响应时间记录 | 记录每个检查的响应时间 |
| 告警通知 | Email/Slack/短信/电话 |
检查间隔不是越短越好:UptimeRobot 免费版的 5 分钟间隔对绝大多数站点足够,1 分钟间隔意味着每个月约 4 万次请求,免费额度通常不够,成本也要随之上升。多地点检查可以避免"某个城市网络抖动被当成站点宕机"的误报,但要留意部分工具默认检查节点较少,海外与国内结果差异明显。另一个容易被忽略的配置是维护窗口:发布或迁移期间临时暂停告警,否则每次上线都会把自己从睡梦中叫醒。
1.2 工具对比
| 工具 | 免费版 | 付费版 | 特点 |
|---|---|---|---|
| UptimeRobot | 50 个监控器,5 分钟间隔 | $7/月起 | 简单易用 |
| Better Uptime | 1 个监控器,1 分钟间隔 | $20/月起 | 状态页 + 告警电话 |
| Pingdom | 1 个监控器,1 分钟间隔 | $12/月起 | 老牌工具,稳定 |
| Checkly | 5 个监控器 | $30/月起 | 支持 Playwright 浏览器检查 |
| StatusCake | 5 个监控器 | $6.50/月起 | 性价比高 |
二、性能监控(Performance Monitoring)
2.1 RUM vs Synthetic
| 类型 | 说明 | 代表工具 |
|---|---|---|
| RUM(真实用户监控) | 采集真实用户的访问数据 | Google Analytics, Datadog RUM |
| Synthetic(合成监控) | 模拟浏览器访问 | Lighthouse CI, Checkly |
2.2 工具对比
| 工具 | 价格 | 特点 |
|---|---|---|
| Google PageSpeed Insights | 免费 | 基于 Lighthouse,真实用户数据 |
| WebPageTest | 免费 | 多地点、多浏览器深度测试 |
| GTmetrix | 免费 + $15/月 | 可视化瀑布图 |
| Lighthouse CI | 免费 | CI/CD 集成 |
| Datadog RUM | 按量付费 | 企业级性能监控 |
// Web Vitals 监控(免费)
import {onCLS, onFID, onLCP, onFCP} from 'web-vitals';
onCLS(console.log);
onFID(console.log);
onLCP(console.log);
RUM 与合成监控不是二选一。合成监控回答"从服务商视角看网站通不通",适合告警与 SLA 审计;RUM 回答"真实用户实际感受到什么",适合定位某地区、某设备、某页面加载慢。典型配合是:用合成监控做 7×24 兜底告警,用 RUM(如 PageSpeed Insights 的 CrUX 数据或自建的 web-vitals 上报)做性能趋势。需要注意:RUM 样本只在有人访问时才有,冷门页面或无人时段的数据是缺失的,这时合成监控反而更可靠。两者结合才是一个完整的性能视图。
三、错误追踪(Error Tracking)
3.1 为什么需要错误追踪
错误追踪工具自动捕获前端和后端的运行时错误,帮助开发者快速定位和修复问题。
3.2 工具对比
| 工具 | 免费版 | 付费版 | 特点 |
|---|---|---|---|
| Sentry | 5,000 事件/月 | $26/月起 | 开源,功能最全 |
| Bugsnag | 2,000 事件/月 | $19/月起 | 稳定可靠 |
| Rollbar | 5,000 事件/月 | $19/月起 | 部署追踪好 |
| Datadog APM | 按量 | $31/主机/月 | 全栈可观测性 |
3.3 Sentry 集成示例
// 前端 Sentry 集成
import * as Sentry from "@sentry/react";
Sentry.init({
dsn: "https://[email protected]/12345",
environment: process.env.NODE_ENV,
tracesSampleRate: 1.0,
integrations: [new Sentry.BrowserTracing()],
});
// 捕获错误
try {
riskyOperation();
} catch (error) {
Sentry.captureException(error);
}
// 设置用户信息
Sentry.setUser({ email: "[email protected]" });
四、日志管理(Log Management)
4.1 工具对比
| 工具 | 免费版 | 付费版 | 特点 |
|---|---|---|---|
| Papertrail | 100MB/月 | $7/月起 | 简单日志搜索 |
| Logtail | 1GB/月 | $9/月起 | 现代日志平台 |
| Grafana Loki | 自托管免费 | Grafana Cloud 免费层 | 与 Prometheus 整合 |
| Datadog Logs | 按量 | 按量计费 | 企业级全栈 |
4.2 结构化日志
// 好的日志实践
logger.info('用户注册成功', {
userId: user.id,
email: user.email,
source: req.headers['referer'],
timestamp: new Date().toISOString(),
requestId: req.id,
});
// 错误日志
logger.error('支付处理失败', {
orderId: order.id,
amount: order.amount,
error: error.message,
stack: error.stack,
});
五、监控体系架构
一个真实案例:告警提前拦住事故
某 SaaS 团队只用了免费的 UptimeRobot 做可用性监控。一次数据库迁移后,接口开始间歇性 5xx,因为首页能打开,三天都没人发现,直到客户投诉才定位问题。后来他们补上两件事:一是加了一层合成监控,直接对关键 API 断言返回码;二是接入 Sentry 并打开错误率告警。第二次出问题时,错误率在 10 分钟内触达阈值,值班人员在上线后 15 分钟就完成了回滚,避免了整晚的服务降级。监控的价值不在于"有工具",而在于"事件发生时,第一响应时间有多短"。
5.1 推荐组合方案
小型网站(预算 $0/月):
- 可用性:UptimeRobot 免费版
- 性能:Google PageSpeed Insights
- 错误:Sentry 免费版
- 日志:应用日志记录到文件
中型网站(预算 $50-100/月):
- 可用性:Better Uptime $20/月
- 性能:WebPageTest 免费
- 错误:Sentry $26/月
- 日志:Papertrail $7/月
大型网站(预算 $200+/月):
- 全栈监控:Datadog 或 Grafana Stack
- 覆盖 APM、日志、基础设施监控
- 自建告警和 Dashboard
5.2 告警配置
告警规则示例:
- 宕机告警 → 立即通知(电话/SMS)
- 响应时间 > 5 秒 → 5 分钟内通知(Slack)
- 错误率 > 1% → 10 分钟内通知(Slack)
- SSL 证书即将到期 → 提前 30 天通知(邮件)
- 磁盘使用率 > 85% → 立即通知(Slack)
六、总结
构建网站监控体系不需要一步到位。从最重要的可用性监控开始(推荐 UptimeRobot 或 Better Uptime),然后逐步增加性能监控(Web Vitals)和错误追踪(Sentry)。随着业务增长,再引入完整的日志管理和 APM 方案。一个好的监控体系应该让你"睡个好觉"——即使出现问题,你能在第一时间知道并快速响应。
参考:https://uptimerobot.com/、https://docs.sentry.io/、https://web.dev/vitals/、https://www.pingdom.com/