网站挂了两小时才发现,是很多小团队的常态。客户打电话来,才知道首页 502。这类事故完全可以靠监控避免,成本几乎为零。
一、三层监控
1. 可用性监控
最基础的一层:网站能不能打开。每 1-5 分钟请求一次首页,返回码不是 200 就告警。
要点:
- 监控内容要包含一段实际存在的文字,防止"返回 200 但是错误页"。
- 从多个地区监控,避免单点网络问题误报。
- 同时监控 https 和 http。
2. 性能监控
能打开但很慢,和打不开一样影响生意。监控三个指标:
| 指标 | 阈值 |
|---|---|
| 首字节时间(TTFB) | 超过 1.5 秒告警 |
| 首页加载时间 | 超过 4 秒告警 |
| DNS 解析时间 | 超过 200ms 告警 |
3. 业务监控
这一层最容易被忽略,但最贴近生意:
- 表单提交量(突然归零说明表单坏了)。
- 订单量(对比昨日同期)。
- 支付成功率。
- 关键接口的错误率。
技术指标正常但业务指标异常,说明问题在应用层。
二、服务器层监控
如果自己管服务器,这四项必看:
- CPU 使用率(持续超过 80% 告警)。
- 内存使用率(超过 90% 告警)。
- 磁盘使用率(超过 85% 告警,这是最常见的故障源)。
- MySQL 连接数与慢查询数。
宝塔自带监控,可以设置阈值和邮件/微信通知。
三、告警阈值怎么设
设得太松,出事了不报;设得太紧,天天被吵,最后没人看。
| 项目 | 建议 |
|---|---|
| 可用性 | 连续 2 次失败才告警(避免网络抖动) |
| CPU | 持续 5 分钟超过 85% |
| 磁盘 | 超过 85% 立即告警 |
| 表单量 | 连续 6 小时为零 |
原则:宁可少报,不要误报。告警疲劳比没有告警更危险。
四、免费工具组合
- UptimeRobot:免费版 50 个监控项,5 分钟一次,支持邮件和 Webhook。
- 宝塔监控:服务器资源、网站状态。
- 百度统计/GA4:流量异常检测。
- Cloudflare:如果用了它的 CDN,自带可用性分析。
三样组合起来,基本覆盖小团队的需求。
五、告警之后要有预案
监控只是发现问题,解决问题要靠预案。建议写一页纸:
- 网站打不开:先查服务器状态、再看 Nginx 日志、最后看数据库。
- 网站变慢:查 CPU、查慢查询、查是否有异常流量。
- 被攻击:上高防、限速、看日志找攻击特征。
预案要写清"谁负责、第一步做什么"。出事时没时间思考。
告警发到哪里才不会漏
邮件最容易漏,微信和短信到达率高但吵。建议分级:可用性故障走短信或电话,性能异常走微信,业务指标波动走邮件日报。级别不同,打扰程度不同,才不会被当成骚扰关掉。
一次真实的故障复盘
客户的站某天上午访问正常但询盘归零。可用性监控全绿,服务器负载也正常,最后发现是表单的邮件服务商账号欠费,提交成功但邮件发不出去。这类问题只有业务监控能发现——所以"表单提交量"这个指标必须配。
补充说明
如果预算只够配一项监控,选"表单提交量"。网站打不开客户会打电话,但表单静默失败没人会告诉你——那是真正的隐形损失。
监控最容易漏的两项
可用性监控只能告诉你“打不开”,但表单静默失败、证书过期、数据库写入失败,页面看起来都是正常的。加一条每周自动提交的测试线索,再设一个证书到期前 30 天的提醒,能提前发现大部分隐形故障。
告警发给谁、多久响应、什么级别打电话,也要提前写清楚。只发到一个没人看的邮箱,等于没有监控。
监控节点至少放两个不同地区,避免单一节点网络问题造成误报。告警要分级:打不开打电话,响应慢发消息,证书到期提前一个月提醒。
告警要写清楚“谁、多久、怎么处理”,否则消息发出去也没人动。
告警要写清谁处理、多久响应、什么级别打电话。
常见问题
小网站需要监控吗
需要。免费工具十分钟能配好,比客户打电话来问强得多。
监控会不会影响性能
五分钟一次的请求,影响可以忽略。
要不要监控竞争对手
可以做参考,但优先级低于自身。看竞品的更新频率和内容方向,比监控他们的可用性有用。
服务器故障的处理,见宝塔 502 错误排查。