网站运维

网站挂了没人知道:服务器和站点监控怎么搭(免费方案)

最尴尬的事故不是网站挂了,是挂了三小时,你从客户那里知道的。

「你们网站打不开啊?」——这句话从客户嘴里说出来,比故障本身更伤信任。而监控这件事,免费的方案就完全够用,搭建不超过半小时。

一、监控到底该监控什么

很多人以为监控就是「网站能不能打开」。其实要盯的东西分三层:

层次 监控什么 不监控的后果
可用性 网站首页能不能返回 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 次检测失败才通知」,避免网络抖动造成的误报

六、还有一个最容易被忽略的:备份验证

监控能保证你发现问题,但出问题之后能不能恢复,取决于备份。

而备份有个残酷的事实:没验证过的备份,很可能恢复不了。

常见情况:

  • 备份任务其实早就失败了,但没人看
  • 备份文件损坏
  • 备份的是被感染/被污染的版本
  • 备份存在同一台机器上,机器挂了一起没

建议:每季度做一次恢复演练——把备份恢复到一台临时环境,确认能打开、数据完整。花一小时,换来的是真正出事时的底气。

七、半小时能配完的最小方案

如果时间有限,按这个顺序做,半小时搞定:

  1. 注册 UptimeRobot,加首页 + 一个核心页监控,开关键词检查(10 分钟)
  2. 配企业微信/钉钉机器人通知(5 分钟)
  3. 开启证书到期提醒(1 分钟)
  4. 宝塔开启磁盘告警,阈值 80%(3 分钟)
  5. 确认备份任务在跑,且备份到了异地(10 分钟)

做完这五步,你就从「客户告诉我网站挂了」变成「网站刚挂我就知道」。这个差别,对一个靠网站接询盘的生意来说,值几十万。