Uptime Kuma 是什么
Uptime Kuma 是一个开源的自托管监控工具,类似 “Uptime Robot”,但完全免费且数据自控。它可以监控网站、API、端口、Docker 容器的在线状态,支持 80+ 种通知渠道,还能生成好看的状态页面供访客查看。
项目地址:https://github.com/louislam/uptime-kuma
适合谁:
- 需要监控自己网站是否在线的站长
- 想给客户提供公开状态页的团队
- 监控多个服务器/API 服务的运维人员
Docker 部署(推荐)
1. 创建目录和 docker-compose.yml
mkdir -p /opt/uptime-kuma && cd /opt/uptime-kuma
创建 docker-compose.yml:
version: '3.8'
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
restart: always
ports:
- "3002:3001"
volumes:
- uptime-kuma-data:/app/data
volumes:
uptime-kuma-data:
说明:
- 映射到 3002 端口(避免和其他服务冲突,可自定义)
- 数据持久化到 Docker volume
louislam/uptime-kuma:1锁定大版本,避免自动大版本升级出问题
2. 启动
docker compose up -d
查看日志:
docker compose logs -f --tail=20
3. 首次访问和设置
浏览器打开 http://你的IP:3002:
- 首次访问需要创建管理员账号
- 填写用户名和密码
- 登录后进入仪表盘
添加监控项
监控网站(HTTP/HTTPS)
- 点击「添加新的监控项」
- 选择类型:
HTTP(s) - 填写友好名称:如 “feng.cx 主站”
- 填写 URL:
https://feng.cx - 设置检查间隔:默认 60 秒,个人站可以改成 300 秒(5 分钟)
- 设置重试次数:3 次
- 点击「保存」
监控端口(TCP)
选择类型 TCP Port,填写主机和端口:
- 主机:
your-server-ip - 端口:
22(监控 SSH)
监控 Docker 容器
- 选择类型
Docker Container - 需要挂载 Docker socket:
volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - 选择要监控的容器名
监控关键词
选择类型 HTTP(s) - Keyword,可以检查页面是否包含某个关键词。如果关键词消失,触发告警。适合监控页面内容是否被篡改。
配置通知渠道
Uptime Kuma 支持 80+ 种通知渠道,常用的有:
Telegram 通知
- 找 @BotFather 创建 Telegram Bot,获取 Token
- 获取你的 Chat ID(可以发消息给 @userinfobot)
- 在 Uptime Kuma「设置」→「通知」→ 添加通知
- 选择 Telegram
- 填入 Bot Token 和 Chat ID
- 点「测试」确认能收到消息
邮件通知(SMTP)
- 选择 Email (SMTP)
- 填写 SMTP 服务器信息(如 QQ 邮箱 SMTP)
- 填写发件人邮箱和密码
- 填写收件人邮箱
钉钉/飞书/企业微信
通过 Webhook 方式推送。在对应平台创建机器人,获取 Webhook URL,然后在 Uptime Kuma 选择「Webhook」通知类型,填入 URL。
在监控项上启用通知
添加或编辑监控项时,在「通知」选项卡里勾选要启用的通知渠道。
公开状态页
Uptime Kuma 可以创建对外展示的状态页,让访客查看你的服务状态。
创建状态页
- 到「状态页面」→「添加新状态页面」
- 填写名称和 slug(URL 路径,如
status) - 添加要展示的监控项
- 可以添加标题、描述、自定义 CSS
- 发布后访问
http://yourdomain:3002/status
自定义域名
通过 Nginx 反向代理把状态页绑定到独立域名:
server {
listen 443 ssl http2;
server_name status.yourdomain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://127.0.0.1:3002;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
数据备份和迁移
# 备份数据
docker cp uptime-kuma:/app/data /opt/uptime-kuma-backup
# 或者直接备份 volume
docker run --rm -v uptime-kuma-data:/data -v $(pwd):/backup alpine tar czf /backup/kuma-backup.tar.gz /data
更新 Uptime Kuma
cd /opt/uptime-kuma
# 拉取最新镜像
docker compose pull
# 重建容器
docker compose up -d
更新前建议先备份数据。
常见问题
Q1:监控项显示 “Pending” 一直不变
- 检查检查间隔是否设得太长
- 手动点「心跳」按钮触发一次检查
- 查看日志是否有网络错误
Q2:通知收不到
- 先点「测试」按钮确认通知渠道配置正确
- 检查 Telegram Bot 是否被你 Block 了
- 检查 SMTP 配置,QQ 邮箱需要授权码不是密码
Q3:Docker 容器监控不工作
- 确认挂载了
/var/run/docker.sock - 确认 Uptime Kuma 容器有权限访问 Docker socket
- 有时需要给 socket 文件加读权限:
chmod 666 /var/run/docker.sock
Q4:状态页不显示监控项
- 编辑状态页时,确认已添加要展示的监控项
- 监控项和状态页需要在同一个 Uptime Kuma 实例
小结
Uptime Kuma 是目前最好用的开源监控工具,Docker 部署简单,界面好看,通知渠道丰富。建议每个站长都部署一个,网站挂了第一时间收到通知。
来源:
© 版权声明
THE END
















暂无评论内容