Uptime Kuma 网站在线监控搭建教程
Uptime Kuma 是一款开源、自托管的网站监控工具,界面美观易用,支持 HTTP(s)、TCP、Ping、DNS、Docker 容器等多种监控方式。它内置了 90 多种通知渠道,还能生成公开状态页面。本文将在搬瓦工 VPS 上使用 Docker 快速部署 Uptime Kuma。
一、环境要求
- 操作系统:Ubuntu 20.04+ 或其他 Linux 发行版。
- 内存:256MB 以上即可运行,推荐 512MB。
- 前置条件:已安装 Docker。
- 端口:默认使用 3001 端口。
二、Docker 快速部署
2.1 一键启动
docker run -d \
--name uptime-kuma \
--restart unless-stopped \
-p 3001:3001 \
-v uptime-kuma-data:/app/data \
louislam/uptime-kuma:latest
2.2 使用 Docker Compose
创建 /opt/uptime-kuma/docker-compose.yml:
mkdir -p /opt/uptime-kuma
cat > /opt/uptime-kuma/docker-compose.yml <<EOF
version: '3.8'
services:
uptime-kuma:
image: louislam/uptime-kuma:latest
container_name: uptime-kuma
restart: unless-stopped
ports:
- "3001:3001"
volumes:
- ./data:/app/data
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- TZ=Asia/Shanghai
EOF
cd /opt/uptime-kuma
docker compose up -d
挂载 docker.sock 可以让 Uptime Kuma 监控本机 Docker 容器的运行状态。
三、初始配置
部署完成后,通过浏览器访问 http://你的IP:3001,首次访问需要创建管理员账号:
- 设置用户名和密码。
- 登录后即可进入监控管理界面。
四、添加监控项
4.1 HTTP(s) 监控
点击「Add New Monitor」,选择 HTTP(s) 类型:
- Friendly Name:为监控项起一个名称,如「我的博客」。
- URL:填入要监控的网址,如
https://your-domain.com。 - Heartbeat Interval:检查间隔,建议设为 60 秒。
- Retries:重试次数,建议设为 3。
- Accepted Status Codes:默认 200-299,可根据需要调整。
4.2 TCP 端口监控
选择 TCP Port 类型,可以监控特定端口的可用性:
- Hostname:目标服务器 IP 或域名。
- Port:目标端口号,如 22(SSH)、3306(MySQL)等。
4.3 Ping 监控
选择 Ping 类型,监控服务器的网络可达性:
- Hostname:目标服务器 IP 或域名。
- 可以设置最大响应时间阈值。
4.4 DNS 监控
选择 DNS 类型,监控域名 DNS 解析是否正常:
- Hostname:要查询的域名。
- DNS Server:DNS 服务器地址。
- Record Type:查询类型(A、AAAA、CNAME、MX 等)。
4.5 Docker 容器监控
选择 Docker Container 类型,可以直接监控容器运行状态。前提是部署时已挂载 docker.sock。
五、配置通知渠道
点击「Settings」→「Notifications」→「Setup Notification」。Uptime Kuma 支持的通知方式包括:
5.1 邮件通知
- 选择「Email (SMTP)」类型。
- 填入 SMTP 服务器地址、端口、账号和密码。
- 设置收件人地址。
5.2 Telegram 通知
- 选择「Telegram」类型。
- 填入 Bot Token(通过 @BotFather 创建)。
- 填入 Chat ID。
5.3 Webhook 通知
- 选择「Webhook」类型。
- 填入 Webhook URL。
- 可以自定义请求体格式。
六、创建状态页面
Uptime Kuma 可以生成公开的服务状态页面,展示各项服务的在线率:
- 点击「Status Pages」→「New Status Page」。
- 设置页面标题和路径。
- 添加需要展示的监控项,可以分组管理。
- 自定义页面样式和描述信息。
- 状态页面的 URL 为
http://你的IP:3001/status/页面路径。
七、配置 Nginx 反向代理
生产环境建议使用域名和 HTTPS 访问:
server {
listen 80;
server_name status.your-domain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name status.your-domain.com;
ssl_certificate /etc/letsencrypt/live/status.your-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/status.your-domain.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1: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;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
注意必须配置 WebSocket 支持(Upgrade 和 Connection 头),否则实时数据更新将无法正常工作。
八、数据备份与恢复
8.1 备份数据
# 备份数据目录
tar czf uptime-kuma-backup-$(date +%Y%m%d).tar.gz /opt/uptime-kuma/data/
# 或备份 Docker 卷
docker run --rm -v uptime-kuma-data:/data -v $(pwd):/backup alpine tar czf /backup/uptime-kuma-backup.tar.gz /data
8.2 恢复数据
# 停止容器
docker compose down
# 恢复数据
tar xzf uptime-kuma-backup.tar.gz -C /
# 重新启动
docker compose up -d
九、版本更新
cd /opt/uptime-kuma
# 拉取最新镜像
docker compose pull
# 重新创建容器
docker compose up -d
# 清理旧镜像
docker image prune -f
十、常见问题
WebSocket 连接失败
如果通过反向代理访问时界面显示「Connecting...」无法加载数据,请检查 Nginx 配置是否包含 WebSocket 升级头。
监控数据不准确
确认 VPS 的网络质量,搬瓦工的 DC6 CN2 GIA 机房网络稳定性最佳。同时检查监控间隔和超时设置是否合理。
总结
Uptime Kuma 是一款轻量但功能强大的自托管监控工具,非常适合在搬瓦工 VPS 上部署。它可以与 Grafana、Prometheus 等工具互补,构建全面的监控体系。选购搬瓦工 VPS 请参考 全部方案,使用优惠码 NODESEEK2026 可享受 6.77% 的循环折扣。