Uptime Kuma 简介
Uptime Kuma 是一款可自行托管的监控工具,由 Louis Lam 和社区开发,采用 MIT 许可证。它会按固定间隔检查网站、API、TCP 端口、主机(ping)、DNS 记录和 Docker 容器,一旦某项服务无响应,就通过 Telegram、Discord、Slack、电子邮件或 webhook 通知您。界面清晰,不看文档也能上手。
它适合开发者、工作室和小团队:希望赶在客户之前发现服务故障,又不想为每个监控项支付 SaaS 订阅费。把它部署在自己的 VPS 上,监控数据也完全由您掌控。
服务器交付后,系统里已有 Docker、Uptime Kuma(镜像 louislam/uptime-kuma:2)和 Caddy 反向代理。应用只监听 127.0.0.1:3001,由 Caddy 通过服务器公网 IP 的 443 端口以 HTTPS 对外提供访问,使用的是自签名证书。您只需打开网址,创建管理员账号即可。
用 Uptime Kuma 可以做什么
多种监控类型
支持 HTTP(S)、页面关键字、TCP、ping、DNS、Docker 容器等。检查间隔,以及连续失败多少次后才触发告警,都可以自行设置。
接入常用告警渠道
Telegram、Discord、Slack、SMTP 邮件、webhook 以及许多其他通知服务,都可直接在界面中配置,无需安装插件。
公开状态页
可以为客户或团队发布服务状态页,需要的话还能绑定您自己的域名。
TLS 证书到期提醒
Uptime Kuma 会读取被监控 HTTPS 网站的证书到期时间,并可在证书过期前提醒您。
预装 Docker 与 Caddy
两个容器均设置了自动重启(
restart: always),由docker-compose.yml统一描述,您可以自行修改并纳入版本管理。数据存放在独立卷中
配置和监控历史都保存在 Docker 卷
kuma_data中,备份和更新都更省事。
Uptime Kuma 快速上手
从下单到上线,只需几分钟。
- 1
下单时勾选 Uptime Kuma
在订购页面选择 Linux VPS(巴黎或法兰克福),系统可选 Debian 12、Debian 13,或 Ubuntu 20.04、22.04、24.04。然后在「Applications」选项卡中勾选 Uptime Kuma。
- 2
等待交付并打开界面
服务器交付后,安装程序会在后台运行几分钟(下载 Docker 和镜像)。之后打开下面的网址。由于证书是自签名的,浏览器会弹出警告,选择继续访问即可。
Bashhttps://SERVER_IP:443 # 通过 SSH 检查容器状态: ssh root@SERVER_IP cd /opt/uptime-kuma && docker compose ps - 3
创建管理员并添加第一个监控
首次访问时,Uptime Kuma 会要求您创建管理员用户。接着添加一个监控项(例如针对您网站的 HTTP(S) 监控),再配置一个通知渠道来接收告警。
- 4
加固配置,准备上线
把 YOUR_DOMAIN 的 DNS A 记录指向 SERVER_IP,然后把 Caddyfile 中的地址换成您的域名,Caddy 会自动获取受信任的证书。80 和 443 端口需保持开放,22 端口尽量只对您的 IP 开放。
Bashcd /opt/uptime-kuma nano Caddyfile # YOUR_DOMAIN { # reverse_proxy 127.0.0.1:3001 # } docker compose restart caddy
Uptime Kuma 的使用场景
监控网站和 API
为每个网站或关键接口各建一个 HTTP 监控项,一旦响应状态码超出预期范围,就通过 Telegram 或邮件告警。
为客户提供状态页
工作室或 SaaS 厂商可以把服务状态发布到专门的页面上,不必再逐条回复客户的询问。
检查服务器与内部端口
对机器做 ping,对数据库或 SSH 服务做 TCP 检查,再监控 Docker 容器:在一个界面里查看整套基础设施。
避免证书过期
跟踪各域名证书的到期时间,在续期失败导致网站中断之前收到提醒。
Uptime Kuma 常见问题
安装脚本为 Caddy 配置了 tls internal,会为服务器 IP 生成自签名证书。连接本身是加密的,但浏览器无法验证证书的签发方。为服务器绑定域名并修改 Caddyfile,就能获得受信任的证书。
深入了解 Uptime Kuma
文件位置
所有文件都在 /opt/uptime-kuma 下:安装脚本 install-uptime-kuma.sh、docker-compose.yml 和 Caddyfile。Caddy 以 network_mode: host 运行,并以只读方式读取 Caddyfile。
修改 Caddyfile 之后,请不要再次运行安装脚本:脚本会用公网 IP 重写该文件,您的域名配置会因此丢失。要让改动生效,请执行 docker compose restart caddy。
从 IP 访问切换到域名
默认情况下,Caddyfile 中写的是 https://IP_PUBLIQUE:443 并带有 tls internal,所以证书是自签名的。把这一行改成您的域名并删除 tls internal 后,Caddy 会自动申请并续期受信任的公共证书。前提是域名的 DNS 已经指向这台服务器,否则申请会失败。
备份
Uptime Kuma 的数据保存在 Docker 卷 kuma_data 中。最稳妥的做法是先停止容器,再打包归档。
Bashcd /opt/uptime-kuma docker compose stop uptime-kuma docker volume ls | grep kuma_data docker run --rm -v uptime-kuma_kuma_data:/data -v $(pwd):/backup alpine \ tar czf /backup/kuma-backup.tar.gz -C /data . docker compose start uptime-kuma
卷的实际名称取决于项目目录名,请先用 docker volume ls 确认。随后把归档文件复制到服务器之外。再配合 VPS 快照,会更稳妥。
更新
镜像使用的标签是 2,会跟随 2.x 系列的版本。要获取最新版本,请先备份,然后执行:
Bashcd /opt/uptime-kuma docker compose pull docker compose up -d
监控实例该放在哪里
如果监控实例和被监控的服务在同一台服务器上,整台服务器宕机时,它也无法通知您。对重要服务,建议把 Uptime Kuma 部署在另一台独立的 VPS 上,例如放在另一个机房(巴黎或法兰克福)。想了解更多,可以查看我们的教程。

