前言
如果你有多个网站或服务运行在不同的VPS上,肯定需要一个监控工具来随时了解它们的运行状态。Uptime Kuma是目前最流行的开源自托管监控工具,界面美观、功能强大,可以监控HTTP/HTTPS、TCP端口、Ping、DNS等多种类型的服务,还支持Telegram、邮件、Webhook等多种通知方式。本文教你如何用Docker快速搭建Uptime Kuma。
一、Uptime Kuma功能简介
- 支持HTTP/HTTPS、TCP、Ping、DNS、Docker容器等多种监控类型
- 精美的响应式状态页面,可自定义域名展示
- 支持90+种通知渠道(Telegram、邮件、Discord、钉钉、企业微信、Bark等)
- 支持多语言(包含中文)
- 支持证书到期监控
- 支持多用户管理
- 支持API接口
- 二次验证(2FA)安全登录
二、安装Uptime Kuma
前置条件
确保你的VPS已经安装了Docker和Docker Compose,如果还没有安装可以参考国内用户一键安装Docker并配置镜像源。
使用Docker Compose安装(推荐)
创建安装目录:
mkdir -p /opt/uptime-kuma
cd /opt/uptime-kuma
创建 docker-compose.yml 文件:
cat > docker-compose.yml << 'EOF'
version: "3.8"
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
restart: always
ports:
- "3001:3001"
volumes:
- ./data:/app/data
EOF
启动服务:
docker compose up -d
使用Docker命令安装
如果不想用Docker Compose,也可以直接用Docker运行:
docker run -d \
--restart=always \
-p 3001:3001 \
-v uptime-kuma:/app/data \
--name uptime-kuma \
louislam/uptime-kuma:1
验证安装
# 查看容器状态
docker ps | grep uptime-kuma
# 查看日志
docker logs uptime-kuma
浏览器访问 http://你的VPS_IP:3001 即可打开Uptime Kuma管理界面。
三、初始设置
首次访问需要创建管理员账户:
- 打开浏览器访问
http://你的VPS_IP:3001 - 输入用户名和密码创建管理员账号
- 建议开启二次验证(2FA)提高安全性
四、添加监控项目
监控HTTP/HTTPS网站
- 点击左上角的 + 添加新的监控
- 选择监控类型为 HTTP(s)
- 填写配置:
| 配置项 | 说明 | 示例 |
|---|---|---|
| 名称 | 监控项名称 | 我的博客 |
| URL | 要监控的网址 | https://www.vps69.com |
| 间隔 | 检测间隔时间(秒) | 60 |
| 重试次数 | 失败后重试次数 | 3 |
- 点击 保存 即可开始监控
监控TCP端口
适用于监控数据库、Redis等服务的端口连通性:
- 监控类型选择 TCP Port
- 填写主机和端口,如
127.0.0.1:3306(MySQL)
监控Ping
适用于监控VPS在线状态:
- 监控类型选择 Ping
- 填写主机地址,如
8.8.8.8
监控DNS记录
- 监控类型选择 DNS
- 填写域名和期望的解析结果
监控Docker容器
如果你想监控同一台VPS上的其他Docker容器:
- 启动Uptime Kuma时需要挂载Docker socket:
docker run -d \
--restart=always \
-p 3001:3001 \
-v uptime-kuma:/app/data \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
--name uptime-kuma \
louislam/uptime-kuma:1
- 监控类型选择 Docker Container
- 选择要监控的容器即可
五、配置通知渠道
以配置Telegram通知为例:
- 在Telegram中搜索 @BotFather,发送
/newbot创建一个机器人,获取Bot Token - 获取你的Chat ID(可以向 @userinfobot 发送任意消息获取)
- 在Uptime Kuma中进入 设置 > 通知 > 添加通知
- 选择 Telegram,填入Bot Token和Chat ID
- 点击 测试 确认通知正常
其他常用通知渠道:
| 通知渠道 | 适用场景 |
|---|---|
| Telegram | 个人使用,方便 |
| 邮件(SMTP) | 通用,适合团队 |
| Discord | 海外用户常用 |
| 钉钉/企业微信 | 国内团队协作 |
| Bark | iOS推送通知 |
| Webhook | 自定义集成 |
| ServerChan | 微信推送(微信) |
六、创建公开状态页面
Uptime Kuma支持创建公开的状态页面,让你的用户可以查看服务运行状态。
- 在左侧菜单进入 状态页面
- 点击 添加新状态页面
- 输入页面名称和自定义URL路径
- 选择要展示在状态页面上的监控项
- 自定义页面标题和样式
发布后的状态页面地址为:http://你的VPS_IP:3001/status/你的路径
七、配合Nginx反向代理
为了通过域名访问并启用HTTPS,建议使用Nginx反向代理。
如果已经安装了Nginx Proxy Manager,可以直接在面板中添加代理规则。
手动配置Nginx:
server {
listen 80;
server_name status.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
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;
}
}
然后使用Certbot申请SSL证书:
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d status.yourdomain.com
八、数据备份与更新
备份数据
Uptime Kuma的数据存储在Docker卷中。使用Docker Compose安装时,数据在 ./data 目录下,直接备份此目录即可。
# 备份数据目录
tar -czf uptime-kuma-backup-$(date +%Y%m%d).tar.gz /opt/uptime-kuma/data/
更新版本
使用Docker Compose安装的更新方法:
cd /opt/uptime-kuma
docker compose pull
docker compose up -d
总结
Uptime Kuma是目前最好用的开源自托管监控工具,安装简单、界面美观、功能全面。搭配一台便宜VPS,就能搭建出媲美商业监控服务的监控系统。不管你是管理个人博客还是多个业务系统,Uptime Kuma都是不可或缺的运维利器。