用云服务器搭建自己的服务监控平台:Uptime Kuma 部署实践
用云服务器搭建自己的服务监控平台:Uptime Kuma 部署实践
前言
平时我们会部署很多服务,比如个人博客、API 接口、管理后台、数据库面板、图床、网盘、反向代理服务等。服务能不能访问、接口有没有挂、证书快不快过期,这些问题如果全靠手动检查,很容易漏掉。
这篇文章记录如何在云服务器上部署一个轻量级监控平台:Uptime Kuma。
Uptime Kuma 是一个开源的服务状态监控工具,界面简洁,支持 HTTP、TCP、Ping、DNS、Docker 容器等多种监控方式,还可以配置邮件、TG、Webhook、企业微信等通知渠道。
本文使用 Ubuntu 22.04 云服务器部署,服务器平台我这里用的是雨云。它的轻量云服务器开通比较快,控制台操作也简单,用来部署这种个人监控服务比较合适。
一、最终效果
部署完成后,我们会得到一个自己的监控面板,可以实现:
- 监控网站是否正常访问
- 监控 API 接口是否返回 200
- 监控服务器端口是否开放
- 监控 SSL 证书剩余时间
- 服务异常时自动发送通知
- 对外展示服务状态页
访问效果类似:
http://你的服务器IP:3001
如果配置了域名,也可以通过:
https://status.example.com
访问。
二、准备云服务器
Uptime Kuma 对服务器配置要求不高,个人使用可以选择比较轻量的配置 雨云注册通道 。
推荐配置:
| 项目 | 建议 |
|---|---|
| CPU | 1 核及以上 |
| 内存 | 1G 及以上 |
| 系统 | Ubuntu 22.04 LTS |
| 磁盘 | 20G 及以上 |
| 带宽 | 2M 及以上 |
如果后续要监控很多服务,或者保留更长时间的历史数据,可以适当提高配置。
购买服务器后,通过 SSH 登录:
ssh root@你的服务器公网IP
更新系统:
apt update && apt upgrade -y
安装常用工具:
apt install -y curl wget vim ufw
三、安装 Docker
Uptime Kuma 推荐使用 Docker 部署,后续升级和迁移都比较方便。
安装 Docker:
curl -fsSL https://get.docker.com | bash
启动 Docker:
systemctl start docker
systemctl enable docker
查看 Docker 版本:
docker -v
如果能正常输出版本号,说明 Docker 安装成功。
四、部署 Uptime Kuma
创建数据目录:
mkdir -p /opt/uptime-kuma/data
启动容器:
docker run -d \
--name uptime-kuma \
--restart=always \
-p 3001:3001 \
-v /opt/uptime-kuma/data:/app/data \
louislam/uptime-kuma:1
查看容器状态:
docker ps
如果看到 uptime-kuma 处于运行状态,说明服务已经启动。
查看日志:
docker logs -f uptime-kuma
五、开放访问端口
Uptime Kuma 默认端口是:
3001
如果服务器启用了 UFW,需要放行端口:
ufw allow 3001
同时需要在云服务器控制台的安全组中放行:
TCP 3001
然后浏览器访问:
http://你的服务器公网IP:3001
第一次访问时,需要创建管理员账号和密码。
六、添加第一个监控项
进入 Uptime Kuma 后,点击“添加监控项”。
可以先添加一个 HTTP 监控:
| 配置项 | 示例 |
|---|---|
| 监控类型 | HTTP(s) |
| 名称 | 我的博客 |
| URL | https://example.com |
| 心跳间隔 | 60 秒 |
| 重试次数 | 3 |
| 请求超时 | 48 秒 |
保存后,Uptime Kuma 会定时访问这个 URL,并展示可用率、响应时间、最近状态等信息。
如果目标服务异常,会显示为 Down。
七、监控 API 接口
如果要监控后端接口,可以配置 HTTP 关键字检测。
例如接口地址:
https://api.example.com/health
接口返回:
{
"status": "ok"
}
在 Uptime Kuma 中选择:
监控类型:HTTP(s) - 关键字
配置关键字:
ok
这样只有当接口正常返回并包含 ok 时,才会判定为正常。
这种方式适合监控:
/health/actuator/health/api/ping/status/version
八、监控服务器端口
除了 HTTP 服务,还可以监控 TCP 端口。
例如监控 MySQL 是否开放:
| 配置项 | 示例 |
|---|---|
| 监控类型 | TCP 端口 |
| 主机名 | 你的服务器 IP |
| 端口 | 3306 |
也可以监控 Redis:
端口:6379
或者监控 SSH:
端口:22
需要注意的是,数据库、Redis 这类服务不建议随便暴露到公网。如果只是检测自己的服务器,建议通过内网地址或者防火墙白名单控制访问来源。
九、配置通知
监控工具最重要的功能不是“看到服务挂了”,而是“服务挂了能第一时间通知你”。
Uptime Kuma 支持多种通知方式:
- 邮件 SMTP
- TG
- Discord
- Slack
- Webhook
- 企业微信
- 钉钉
- Bark
- Server 酱
这里以 Webhook 为例。
假设你有一个通知接口:
https://example.com/webhook/alert
在 Uptime Kuma 中进入:
设置 -> 通知 -> 添加通知
选择 Webhook,填写 URL。
之后可以点击“测试”,确认是否能收到通知。
如果使用企业微信、钉钉或飞书,也可以创建群机器人,然后把机器人 Webhook 地址填进去。
十、配置 Nginx 反向代理
直接使用 IP:3001 访问不太方便,建议绑定域名,比如:
status.example.com
安装 Nginx:
apt install -y nginx
创建配置文件:
vim /etc/nginx/sites-available/uptime-kuma
写入:
server {
listen 80;
server_name status.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;
}
}
启用配置:
ln -s /etc/nginx/sites-available/uptime-kuma /etc/nginx/sites-enabled/uptime-kuma
检查 Nginx 配置:
nginx -t
重启 Nginx:
systemctl restart nginx
此时可以通过:
http://status.example.com
访问监控面板。
十一、配置 HTTPS
如果已经绑定域名,建议配置 HTTPS。
安装 Certbot:
apt install -y certbot python3-certbot-nginx
申请证书:
certbot --nginx -d status.example.com
按照提示输入邮箱并确认即可。
证书申请成功后,Certbot 会自动修改 Nginx 配置。
测试自动续期:
certbot renew --dry-run
如果没有报错,说明 HTTPS 配置完成。
之后访问:
https://status.example.com
十二、创建公开状态页
Uptime Kuma 支持创建状态页,可以把部分监控项公开展示出去。
进入:
状态页 -> 新建状态页
可以配置:
- 状态页名称
- 状态页路径
- 展示哪些监控项
- 是否显示历史可用率
- 是否显示维护公告
例如设置路径为:
/status
那么状态页地址就是:
https://status.example.com/status
这个页面适合放在产品官网或文档里,让用户看到服务运行状态。
十三、数据备份和迁移
Uptime Kuma 的核心数据都保存在挂载目录:
/opt/uptime-kuma/data
可以定期备份这个目录:
tar -zcvf uptime-kuma-backup.tar.gz /opt/uptime-kuma/data
如果要迁移到新服务器,只需要:
- 停止旧服务器容器
- 打包
/opt/uptime-kuma/data - 上传到新服务器
- 使用相同挂载路径启动容器
停止容器:
docker stop uptime-kuma
恢复后重新启动:
docker start uptime-kuma
十四、升级 Uptime Kuma
Docker 部署升级比较简单。
先停止并删除旧容器:
docker stop uptime-kuma
docker rm uptime-kuma
拉取新镜像:
docker pull louislam/uptime-kuma:1
重新启动:
docker run -d \
--name uptime-kuma \
--restart=always \
-p 3001:3001 \
-v /opt/uptime-kuma/data:/app/data \
louislam/uptime-kuma:1
因为数据目录已经挂载到宿主机,所以删除容器不会影响监控数据。
十五、安全建议
监控平台本身也属于敏感服务,建议做好基础安全配置:
- 管理员密码设置复杂一些
- 面板不要使用弱口令
- 开启 HTTPS
- 不要把数据库、Redis 等内网服务随意暴露到公网
- 服务器安全组只开放必要端口
- 定期备份 Uptime Kuma 数据目录
- 如果只是个人使用,可以通过 Nginx 或安全组限制访问 IP
对于个人项目来说,这些配置已经可以覆盖大多数场景。
十六、总结
本文在云服务器上部署了一个自己的服务监控平台 Uptime Kuma,完整流程包括:
- 准备 Ubuntu 云服务器
- 安装 Docker
- 使用 Docker 部署 Uptime Kuma
- 添加 HTTP、API、TCP 端口监控
- 配置通知渠道
- 使用 Nginx 反向代理
- 配置 HTTPS
- 创建公开状态页
- 备份和升级服务
相比手动检查服务状态,Uptime Kuma 可以持续监控网站、接口和端口状态,一旦异常就能及时通知。对个人开发者、小团队或者自己维护多个服务的场景来说,非常实用。

浙公网安备 33010602011771号