作为站长,你一定希望第一时间知道网站是否宕机。商业监控服务(如 UptimeRobot、Pingdom)虽然好用,但免费版通常有数量限制,而且数据掌握在别人手里。Uptime Kuma 是一个开源的自托管监控工具,界面美观、功能强大、部署简单,是目前最受欢迎的自托管监控方案之一。
Uptime Kuma 是什么
Uptime Kuma 是一个开源的网站和服务监控工具,类似于 “Uptime Robot” 的自托管版本。它支持监控 HTTP(S)、TCP、DNS、Docker 容器等多种类型的检查,并提供美观的仪表盘和状态页面。
项目地址:https://github.com/louislam/uptime-kuma(65000+ Stars)
核心功能
- 多种监控类型:HTTP(S)、TCP Port、Ping、DNS、Steam Game Server、Docker 容器、Push 监控等
- 通知推送:支持 90+ 种通知渠道,包括 Telegram、Discord、邮件、微信、钉钉、企业微信等
- 状态页面:可以创建公开的状态页面,向用户展示服务运行状态
- 多语言支持:支持中文在内的 30+ 种语言
- 证书监控:自动监控 SSL 证书到期时间
- 分组管理:支持按项目、按环境分组管理监控项
Docker 部署步骤
方法一:Docker 命令
docker run -d \
--restart=always \
-p 3001:3001 \
-v uptime-kuma:/app/data \
--name uptime-kuma \
louislam/uptime-kuma
运行后访问 http://your-server-ip:3001 即可打开管理面板。首次访问需要创建管理员账号。
方法二:Docker Compose(推荐)
# docker-compose.yml
version: '3.3'
services:
uptime-kuma:
image: louislam/uptime-kuma:latest
container_name: uptime-kuma
restart: always
volumes:
- uptime-kuma-data:/app/data
ports:
- "3001:3001"
volumes:
uptime-kuma-data:
启动:
docker compose up -d
方法三:配合 Nginx 反向代理
如果你希望通过域名访问(如 monitor.example.com),需要配置 Nginx 反向代理:
# /etc/nginx/sites-available/uptime-kuma
server {
listen 80;
server_name monitor.example.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;
}
}
注意:Upgrade 和 Connection 头是必须的,因为 Uptime Kuma 使用 WebSocket 进行实时数据推送。
添加监控项
监控网站
- 点击 “Dashboard” → “+ New Monitor”
- 选择类型为 “HTTP(s)”
- 填写名称(如 “主站”)和 URL(如 “https://feng.cx”)
- 设置检查间隔(推荐 60 秒)
- 选择通知渠道(如 Telegram、邮件等)
- 点击保存
监控端口
如果你运行了数据库或其他服务,可以用 TCP Port 类型监控:
- 类型选择 “TCP Port”
- 填写主机和端口(如 your-server-ip:3306 监控 MySQL)
- 设置检查间隔
监控 SSL 证书
Uptime Kuma 会自动检查 HTTPS 监控项的 SSL 证书。你可以在通知设置中配置”证书到期提醒”,在证书到期前 N 天收到通知。
配置通知渠道
Telegram 通知
- 在 Telegram 中搜索 @BotFather,创建一个 Bot
- 获取 Bot Token
- 在 Uptime Kuma 中添加通知渠道,选择 Telegram
- 填入 Bot Token 和 Chat ID
邮件通知
- 添加通知渠道,选择 Email (SMTP)
- 填写 SMTP 服务器信息(如 Gmail 的 smtp.gmail.com:587)
- 填写发件人邮箱和密码
- 填写收件人邮箱
企业微信/钉钉通知
Uptime Kuma 原生支持企业微信和钉钉的通知推送。添加通知渠道时选择对应类型,填入 Webhook URL 即可。
公开状态页面
Uptime Kuma 支持创建公开的状态页面,让你的用户了解服务运行状态:
- 在设置中创建 Status Page
- 选择要展示的监控项
- 自定义页面标题、描述和主题
- 发布后会得到一个公开链接(如
https://status.example.com)
数据备份
Uptime Kuma 的数据存储在 /app/data 目录下的 SQLite 数据库中。备份方法:
# 备份数据卷
docker run --rm -v uptime-kuma-data:/data -v $(pwd):/backup alpine tar czf /backup/uptime-kuma-backup.tar.gz -C /data .
# 恢复
docker run --rm -v uptime-kuma-data:/data -v $(pwd):/backup alpine tar xzf /backup/uptime-kuma-backup.tar.gz -C /data
注意事项
- Uptime Kuma 本身也需要被监控——建议在不同的服务器上部署一个备用实例,或者使用外部服务监控主 Uptime Kuma 实例
- 如果监控项很多(100+),建议增加检查间隔,避免对目标服务造成压力
- WebSocket 连接在 Nginx 反向代理场景下需要特殊配置,否则实时更新可能不工作
- 定期更新 Docker 镜像,获取最新的安全补丁和功能
简评
Uptime Kuma 是目前最好的自托管监控工具之一。它界面美观、功能全面、部署简单,而且完全免费。对于有多个网站或服务需要监控的站长来说,花 10 分钟部署一个 Uptime Kuma 实例,可以省去很多半夜被用户告知”网站挂了”的尴尬。
来源:















暂无评论内容