用云服务器搭建自己的服务监控平台: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

如果要迁移到新服务器,只需要:

  1. 停止旧服务器容器
  2. 打包 /opt/uptime-kuma/data
  3. 上传到新服务器
  4. 使用相同挂载路径启动容器

停止容器:

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

因为数据目录已经挂载到宿主机,所以删除容器不会影响监控数据。


十五、安全建议

监控平台本身也属于敏感服务,建议做好基础安全配置:

  1. 管理员密码设置复杂一些
  2. 面板不要使用弱口令
  3. 开启 HTTPS
  4. 不要把数据库、Redis 等内网服务随意暴露到公网
  5. 服务器安全组只开放必要端口
  6. 定期备份 Uptime Kuma 数据目录
  7. 如果只是个人使用,可以通过 Nginx 或安全组限制访问 IP

对于个人项目来说,这些配置已经可以覆盖大多数场景。


十六、总结

本文在云服务器上部署了一个自己的服务监控平台 Uptime Kuma,完整流程包括:

  • 准备 Ubuntu 云服务器
  • 安装 Docker
  • 使用 Docker 部署 Uptime Kuma
  • 添加 HTTP、API、TCP 端口监控
  • 配置通知渠道
  • 使用 Nginx 反向代理
  • 配置 HTTPS
  • 创建公开状态页
  • 备份和升级服务

相比手动检查服务状态,Uptime Kuma 可以持续监控网站、接口和端口状态,一旦异常就能及时通知。对个人开发者、小团队或者自己维护多个服务的场景来说,非常实用。

posted @ 2026-07-09 18:27  Arwey  阅读(37)  评论(0)    收藏  举报