最尴尬的事故不是网站挂了,是挂了三小时,你从客户那里知道的。
「你们网站打不开啊?」——这句话从客户嘴里说出来,比故障本身更伤信任。而监控这件事,免费的方案就完全够用,搭建不超过半小时。
一、监控到底该监控什么
很多人以为监控就是「网站能不能打开」。其实要盯的东西分三层:
| 层次 | 监控什么 | 不监控的后果 |
|---|---|---|
| 可用性 | 网站首页能不能返回 200 | 挂了不知道 |
| 正确性 | 返回的是不是正常页面(而不是 500 错误页或白屏) | 「能打开」但其实是报错页 |
| 资源 | 磁盘、CPU、内存、证书到期 | 磁盘满了才发现问题 |
第二层最容易被忽略:很多监控只检查 HTTP 状态码,但 WordPress 返回 200 的同时页面可能是白的(PHP 报错但主题还输出了头部)。所以监控要检查页面内容里的关键词。
二、免费方案选型
| 服务 | 免费额度 | 优点 | 缺点 |
|---|---|---|---|
| UptimeRobot | 50 个监控,5 分钟间隔 | 够用、稳定、支持关键词监控和证书到期 | 5 分钟间隔,最长可能 5 分钟后才发现 |
| Better Uptime | 10 个监控,3 分钟间隔 | 界面好、有状态页 | 免费额度少 |
| HetrixTools | 更多额度 | 还带服务器资源监控 | 界面一般 |
| Cloudflare 健康检查 | 免费 | 和 CDN 一体 | 要会用 |
| 自建 Uptime Kuma | 无限(需要一台服务器) | 完全可控、1 分钟间隔、通知渠道多 | 要自己维护 |
我的建议:
- 刚开始用 UptimeRobot,注册五分钟搞定,够用了
- 如果你已经有一台多余的服务器(哪怕是最低配),自建 Uptime Kuma 体验最好
三、UptimeRobot 配置要点(十分钟)
1. 建监控
类型选 HTTP(s),URL 填你的首页。 Interval 选 5 分钟(免费版最小值)。
2. 关键一步:设置关键词检查
这一步大多数人没配,导致监控形同虚设。
在监控设置里找到 Keyword 相关选项:
- 填一个只在你网站正常时才出现的词——比如你的品牌名、或者网站上固定的一句话
- 设置为「关键词不存在时告警」
这样即使服务器返回 200 但页面是空的/报错页,也会告警。这一条设置能让监控的有效率翻倍。
3. 加多个监控点
别只监控首页。建议加这几个:
- 首页 —— 最基础
- 一个产品页 / 核心内容页 —— 能发现数据库问题(首页可能是缓存的,产品页才走数据库)
- 联系页或询盘表单页 —— 这是你赚钱的页面,它挂了等于没生意
- 后台登录页(
/wp-admin)—— 能发现 PHP 崩溃
4. 通知渠道
邮件通知是默认的,但邮件你可能几小时后才看到。建议加一个即时渠道:
- 企业微信 / 钉钉机器人(UptimeRobot 支持 webhook)
- Server酱(推送到微信)
- Telegram Bot
5. 证书到期监控
UptimeRobot 有个 SSL 证书到期提醒,在监控设置里能开启,一般提前 30 天/14 天/7 天各提醒一次。
这个一定要开——前面那篇讲过,证书过期是最不该发生的事故。
四、服务器资源监控(防「慢性死亡」)
网站能打开不等于没问题。磁盘悄悄涨到 95%、CPU 长期 80%,这些不会让网站立刻挂,但会在某个时刻突然爆发。
宝塔自带告警(最简单)
面板 → 设置 → 告警设置,可以配:
- 磁盘空间超过阈值
- CPU 持续过高
- 内存不足
通知方式支持邮件、企业微信、钉钉。如果不装宝塔,用下面的方式。
自建 Uptime Kuma(推荐给有多台服务器的)
一台 1 核 1G 的小服务器就能跑,用 Docker 一条命令:
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
然后浏览器打开 http://你的IP:3001 配置。
它能监控:
- HTTP 网站(1 分钟甚至更短间隔)
- TCP 端口(数据库、SSH)
- Ping
- Docker 容器状态
- 配合 agent 还能监控 CPU / 磁盘 / 内存
通知渠道非常丰富:企业微信、钉钉、飞书、Telegram、Discord、邮件、Webhook,全都支持。
注意:监控服务器不要和被监控的站放在同一台机器上——机器整个挂了,监控也跟着挂,你就收不到告警了。这是新手最常见的错误。
五、告警别设太多(不然等于没有)
一个真实的教训:有人什么监控都开,每天收几十条告警。结果就是所有告警都被忽略——真正的故障时,那条告警也淹没在里面了。
原则:
- 只告警「需要你立刻行动」的事:网站打不开、磁盘快满了、证书快过期
- 不要告警「只是有点异常」的事:CPU 偶尔飙一下、某个请求慢了一次
- 告警间隔设成「连续 2 次检测失败才通知」,避免网络抖动造成的误报
六、还有一个最容易被忽略的:备份验证
监控能保证你发现问题,但出问题之后能不能恢复,取决于备份。
而备份有个残酷的事实:没验证过的备份,很可能恢复不了。
常见情况:
- 备份任务其实早就失败了,但没人看
- 备份文件损坏
- 备份的是被感染/被污染的版本
- 备份存在同一台机器上,机器挂了一起没
建议:每季度做一次恢复演练——把备份恢复到一台临时环境,确认能打开、数据完整。花一小时,换来的是真正出事时的底气。
七、半小时能配完的最小方案
如果时间有限,按这个顺序做,半小时搞定:
- 注册 UptimeRobot,加首页 + 一个核心页监控,开关键词检查(10 分钟)
- 配企业微信/钉钉机器人通知(5 分钟)
- 开启证书到期提醒(1 分钟)
- 宝塔开启磁盘告警,阈值 80%(3 分钟)
- 确认备份任务在跑,且备份到了异地(10 分钟)
做完这五步,你就从「客户告诉我网站挂了」变成「网站刚挂我就知道」。这个差别,对一个靠网站接询盘的生意来说,值几十万。