
你有没有遇到过这种情况:客户给你发消息说“网站打不开”,你才赶紧去查。查完发现,已经挂了两个小时。
或者更惨:你自己刷微博,看到有人说“XX网站又崩了”,你才知道。
用户不会替你监控。他们只会流失。
今天聊一个工具,让你比用户更早知道网站挂了。它叫Uptime Kuma。
先看一个场景
一个做电商的朋友,去年双十一晚上,网站挂了40分钟。他是被一个老客户打电话骂醒的。
为什么没及时发现?他说“那天太忙了,没去看”。后来他装了一个监控工具,每天早上看手机推送:昨晚3点恢复过一次,5点又恢复过一次。他说:“原来晚上也出过问题,我白天才知道。”
这不是他懒。是人就不可能24小时盯着。所以监控的事,要交给机器。
Uptime Kuma是什么?
Uptime Kuma是一个开源的、自托管的监控工具。你把它装在一台服务器上(甚至可以是家里的一台树莓派),它会定期去检查你配置的网站、服务器、端口、SSL证书等。
支持这些监控类型:
- HTTP(s):检查网站能否正常打开
- Ping:检查服务器是否在线
- 端口:检测某个端口是否开放(比如3306、22)
- SSL证书:提前预警证书过期时间
- Docker容器、MySQL、Redis等
出问题的时候,它会通过钉钉、企业微信、Telegram、邮件、甚至普通的Webhook给你发通知。
安装方式
Uptime Kuma官方推荐用Docker部署,最简单。
Docker一键部署
假设你的服务器IP是123.123.123.123:
bash
docker run -d --restart=always -p 3001:3001 -v /opt/uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma
参数说明:
-p 3001:3001:把服务器的3001端口映射到容器的3001端口-v /opt/uptime-kuma:/app/data:把数据存到宿主机的/opt/uptime-kuma目录,升级不丢数据
验证安装
打开浏览器,访问http://你的服务器IP:3001。
看到注册页面,说明安装成功。
其他安装方式
如果你不想装Docker,也可以用Node.js直接跑、用宝塔面板的“应用商店”一键安装(如果有的话)。
配置监控项
安装完成后,注册一个管理员账号,登录进去。
添加第一个监控
点击“添加监控项”:
- 监控类型:HTTP(s)
- 显示名称:你的网站名称
- URL:https://你的域名
- 监控间隔:60秒(默认)
- 超时时间:10秒
保存。系统会开始每60秒检查一次你的网站。
监控SSL证书过期
选择一个网站,在“监控类型”选“SSL证书”。填入你的域名。
Uptime Kuma会检查证书有效期,提前30天(可调)开始告警。
监控服务器Ping
如果你有多台服务器,可以加一个“Ping”监控。填入服务器IP,它会定期检查服务器是否在线。
这比等SSH连不上再发现要早得多。
配置告警通知
监控只做了一半。光记录不通知,你还是不知道。
点击左边的“通知”,然后“设置通知”。
钉钉通知配置
- 在钉钉群里添加一个“自定义机器人”
- 复制机器人的Webhook地址
- 在Uptime Kuma里选择“DingTalk”,填入Webhook
- 测试一下,钉钉群里应该能收到测试消息
企业微信通知
类似的,企业微信群机器人也可以。选“WeCom”,填入Webhook地址。
邮件通知
如果你不想用IM,可以配SMTP邮件。填入发件服务器、账号密码。
测试通知
配置完一定要点“测试”。如果收不到,检查地址和网络。
状态页面
Uptime Kuma还有一个功能:生成一个公开的状态页。
你可以把它分享给团队,或者嵌在你的官网上。用户能实时看到:网站是绿的(正常)还是红的(故障)。
操作:左边“状态页面” → 新建 → 勾选你要展示的监控项 → 获取公开URL。
状态页不会暴露你的管理后台,只展示你选定的监控项的状态。
生产环境建议
1. 不要把监控程序放在被监控的同一台服务器上
如果你只有一台服务器,Uptime Kuma装在这台服务器上。这台服务器挂了,监控也跟着挂,收不到通知。
理想方案:用一台便宜的轻量应用服务器,或者家里的树莓派、Nas来跑Uptime Kuma。
2. 监控频率不要太密
默认60秒检查一次,够了。太密浪费资源,而且你可能被大量告警刷屏。
3. 设置合理的“重试次数”
网络偶尔丢包,一次失败就告警会误报。Uptime Kuma可以在失败后重试1-2次,确认真的挂了再通知。
4. 配置多个通知渠道
钉钉、企业微信、邮件都配上。一个渠道宕了(比如钉钉服务器挂了),还有备用的。
5. 历史数据保留
Uptime Kuma会记录过去90天的可用性数据,可以在仪表盘上看到“今天可用性99.9%”这样的统计。
一个真实案例
有个做企业官网的团队,用Uptime Kuma监控了50多个客户网站。某天半夜收到钉钉通知:客户A的网站SSL证书将在5天后过期。
他们第二天一早就联系客户续签证书,没造成网站访问异常。
客户问:“你们怎么知道我证书要过期了?”他们说:“我们有个监控系统。”
如果不是Uptime Kuma,可能要等到用户访问看到“不安全”提示,才会发现。
和其他监控工具的对比
| 工具 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| Netdata | 服务器内部性能监控 | 实时、详细 | 不关注“网站能不能打开” |
| Prometheus+Grafana | 大规模集群监控 | 强大、灵活 | 配置复杂,对小团队过重 |
| Uptime Kuma | 网站可用性、SSL、端口 | 简单、轻量、告警完善 | 不做深度性能分析 |
Uptime Kuma和Netdata是互补的。Netdata告诉你“服务器内部哪里出问题了”,Uptime Kuma告诉你“用户能不能访问”。两个一起用,基本全覆盖。
最后一句
Uptime Kuma不需要你懂运维。Docker一行命令,浏览器几分钟配置,就能让你的网站处于24小时监控之下。
网站挂了,你先知道。客户来问的时候,你已经在恢复了。
花一个小时搭好它,以后每天省下的是焦虑。
去试试吧。监控跑起来,你才能安心睡觉。




