概述
服务器挂了没人知道,是最头疼的事。Uptime Kuma 是一款开源的监控工具,界面好看,功能实用。它能帮你盯着网站能不能打开、端口通不通、SSL 证书什么时候过期。最关键的是——它免费。
下面教你用 Docker 在 VPS 上 5 分钟部署好。
准备工作
你需要这些东西:
- 一台 VPS(推荐 Ubuntu 22.04,内存至少 512MB)
- 已经装好 Docker(没装的话,文末有快速安装命令)
- 一个域名(可选,用于通过 HTTPS 访问)
- 你打算监控的目标(你的网站、API、DNS 等)
步骤
第一步:创建数据目录
先建好持久化存储文件夹,Docker 重启后数据不会丢。
mkdir -p ~/uptime-kuma/data
第二步:用 Docker 启动 Uptime Kuma
一行命令搞定:
docker run -d \
--name uptime-kuma \
--restart unless-stopped \
-p 3001:3001 \
-v ~/uptime-kuma/data:/app/data \
louislam/uptime-kuma:1
参数说明:
-p 3001:3001把容器的 3001 端口映射到本机。想改端口就改第一个数字,比如8080:3001-v ~/uptime-kuma/data:/app/data挂载数据目录,监控配置和告警记录都存在这里--restart unless-stopped容器挂了会自动重启
第三步:访问面板
打开浏览器,输入 http://你的VPS_IP:3001,就能看到 Uptime Kuma 的界面了。
首次进入会让你设置管理员账号和密码,填好就行。
第四步:添加监控目标
进入面板后,点击「添加监控」:
- 监控类型选 HTTP(s) 用于检测网站
- URL 填你的网站地址,比如
https://navbox.com.cn - 间隔 默认 60 秒就行
- 其他选项保持默认,点「创建」
你也可以添加 Ping 监控(检测服务器是否在线)、TCP 端口监控(检测端口是否开放)、DNS 监控等。
第五步:配置通知方式(可选)
告警通知很重要,监控到异常能第一时间提醒你。
在面板左侧点「通知服务」→「添加新通知」:
Telegram 通知:
- 在 Telegram 里找 @BotFather,发送
/newbot创建机器人 - 拿到 Bot Token
- 再找你的 Bot,发送任意消息
- 访问
https://api.telegram.org/bot<你的Token>/getUpdates,找到chat.id - 在 Uptime Kuma 里填入 Bot Token 和 Chat ID
微信通知(通过 Server 酱):
- 访问 sct.ftqq.com 注册并获取 SendKey
- 通知类型选「自定义 Webhook」
- 请求 URL 填:
https://sctapi.ftqq.com/<你的SendKey>.send - 请求体填:
{"text": "Uptime Kuma告警", "descrip": "{{monitor.name}} - {{eventType}} - {{monitor.url}}"}
邮件通知(SMTP):
- 填 SMTP 服务器地址(如 smtp.qq.com)
- 填发件邮箱和密码(QQ 邮箱需要用授权码)
- 填收件人地址
第六步:配置反向代理(推荐)
直接用 IP + 端口访问不安全。建议加上 Nginx 或 Caddy 做反向代理,走 HTTPS。
如果你用的是 Caddy(前面装过可以跳过):
cat >> /etc/caddy/Caddyfile <<EOF
kuma.navbox.com.cn {
reverse_proxy localhost:3001
}
EOF
systemctl reload caddy
如果你的 Nginx 版本支持 HTTP/3,可以这样配:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name kuma.navbox.com.cn;
ssl_certificate /etc/ssl/certs/kuma.navbox.com.cn/fullchain.pem;
ssl_certificate_key /etc/ssl/private/kuma.navbox.com.cn/key.pem;
location / {
proxy_pass http://localhost:3001;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
重载配置:
nginx -t && systemctl reload nginx
第七步:设置开机自启
如果之前用了 --restart unless-stopped,重启服务器后容器会自动起来。确认一下:
docker ps | grep uptime-kuma
有输出就说明正常运行。
验证
部署完成后,做这几步检查:
- 浏览器访问 打开
https://kuma.navbox.com.cn(或用 IP:端口),面板能正常加载 - 监控生效 在面板上看到你添加的目标显示「Up」,绿色状态
- 手动触发告警 临时关掉你监控的网站(或改个错误的 URL),等监控间隔到了之后,检查是否收到 Telegram/微信/邮件告警
- 容器状态 执行
docker ps | grep uptime-kuma,确认容器在运行
如果一切正常,恭喜!你的 VPS 监控体系搭建完成了。
常见问题
Q: 忘记管理员密码怎么办?
目前版本不支持重置密码。解决方法:删掉容器,重新跑 docker run,然后重新配置所有监控。建议密码记到密码管理器里。
Q: 监控间隔最短能设多少?
官方推荐 60 秒。可以手动改到 10 秒,但太频繁会消耗资源,也可能被目标网站当作攻击。
Q: Docker 怎么安装?
如果 VPS 上没装 Docker,跑这条命令:
curl -fsSL https://get.docker.com | sh
systemctl enable --now docker
Q: 容器启动失败,怎么查看日志?
docker logs uptime-kuma
常见错误是 3001 端口被占用。换端口就行:-p 3002:3001
Q: 能监控内网设备吗?
可以。在容器里监控内网 IP 地址就行。不过建议 VPS 和网络在同一个 VPC 内,不然内网 IP 外部访问不到。
Q: 数据会丢吗?
不会。数据存在 ~/uptime-kuma/data 目录,即使删掉容器重新建,数据都在。记得定期备份这个目录。
Uptime Kuma 就是这样,一个轻量、好看、够用的监控工具。不需要花一分钱,一个 Docker 命令就跑起来了。
你还有哪些服务需要监控的?在评论区聊聊。