网站挂了都不知道?Uptime Kuma自建监控告警

网站挂了都不知道?Uptime Kuma自建监控告警

你有没有遇到过这种情况:客户给你发消息说“网站打不开”,你才赶紧去查。查完发现,已经挂了两个小时。

或者更惨:你自己刷微博,看到有人说“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连不上再发现要早得多。


配置告警通知

监控只做了一半。光记录不通知,你还是不知道。

点击左边的“通知”,然后“设置通知”。

钉钉通知配置

  1. 在钉钉群里添加一个“自定义机器人”
  2. 复制机器人的Webhook地址
  3. 在Uptime Kuma里选择“DingTalk”,填入Webhook
  4. 测试一下,钉钉群里应该能收到测试消息

企业微信通知

类似的,企业微信群机器人也可以。选“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小时监控之下。

网站挂了,你先知道。客户来问的时候,你已经在恢复了。

花一个小时搭好它,以后每天省下的是焦虑。

去试试吧。监控跑起来,你才能安心睡觉。

知识库

暴力破解挡不住?fail2ban自动封禁IP实战

2026-4-30 14:57:02

实操指南知识库

无状态计算架构:如何提升服务器的可扩展性与稳定性?

2025-1-27 15:17:41

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧