1376 字
7 分钟
Uptime Kuma 部署与使用指南
2026-02-11
- 次浏览

Uptime Kuma 的核心作用#

Uptime Kuma 是一款开源、自托管的服务可用性监控工具,用于监控,本质上是一个 “持续自动检测 + 失败通知”系统

louislam
/
uptime-kuma
Waiting for api.github.com...
00K
0K
0K
Waiting...
  1. 可用性监控(Uptime Monitoring)

  2. 延迟与稳定性监控

  3. 故障自动通知

  4. 状态页展示(Status Page)

适合博客、SaaS、小型服务对外展示稳定性。


部署方式一:Docker 部署(推荐)#

Docker 部署优点
  • 一行命令启动
  • 升级、迁移方便
  • 环境隔离,不污染系统

1. 创建目录#

Terminal window
mkdir -p /opt/uptime-kuma
cd /opt/uptime-kuma

2. 创建 docker-compose.yml#

/opt/uptime-kuma 目录下创建 docker-compose.yml

Terminal window
vim /opt/uptime-kuma/docker-compose.yml
/opt/uptime-kuma/docker-compose.yml
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
restart: unless-stopped
ports:
- "3001:3001"
volumes:
- ./data:/app/data

3. 启动容器#

Terminal window
docker-compose up -d

4. 访问控制台#

http://服务器IP:3001

首次访问需要创建管理员账号,数据将持久化存储在 ./data 目录中。


部署方式二:本地部署(Node.js 方式)#

本地部署适合人群
  • 不使用 Docker
  • 希望更细粒度控制进程

1. 环境准备#

Uptime Kuma 基于 Node.js 运行,需要先安装 Node.js。

Terminal window
node -v # >= 20.4

2. 下载 Uptime Kuma 源码#

Terminal window
git clone https://github.com/louislam/uptime-kuma.git
cd uptime-kuma

3. 启动 Uptime Kuma#

Terminal window
npm run setup # 安装依赖
node server/server.js # 启动服务
访问控制台
http://localhost:3001

4.(推荐)使用 PM2 守护进程#

Terminal window
npm install pm2 -g && pm2 install pm2-logrotate # 全局安装 pm2,并加日志轮转(避免日志无限长)。
pm2 start server/server.js --name uptime-kuma # 用 pm2 启动并命名进程,之后就算关掉当前终端,服务也能继续跑。
pm2 monit # 查看当前进程状态/日志(类似监控面板)。
pm2 startup && pm2 save # 设置开机自启,并保存当前进程列表(重启机器后自动恢复运行)。

使用 Nginx + 域名反代#

避免直接暴露端口,使用域名访问,例如 uptime-kuma.example.com

配置 Nginx 示例:

/etc/nginx/conf.d/uptime-kuma.example.com.conf
server {
# 80 强制跳转到 443
listen 80;
server_name uptime-kuma.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name uptime-kuma.example.com;
# ssl 证书
ssl_certificate /etc/nginx/ssl/uptime-kuma.example.com/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/uptime-kuma.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:3001;
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;
proxy_set_header X-Forwarded-Host $host;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}

监控项配置#

1. 网站可用性监控#

  • HTTP(s) Monitor
  • 示例:https://blog.example.com

如果你有 国内 / 国外 DNS 分流,请分别创建监控项,避免因为 DNS 解析延迟导致的监控异常。

2. API 监控#

  • 类型:HTTP(s)
  • 建议使用轻量接口
  • 避免使用慢查询接口作为健康检查

3. 推荐参数#

参数建议值
检查间隔60 秒
重试1~2 次
心跳重试间隔20~48 秒
超时5~8 秒
失败判定连续失败

告警通知(邮件)#

邮件告警的工作原理#

Uptime Kuma 通过 SMTP 协议 发送邮件。

流程如下:

服务异常
Uptime Kuma 触发告警
连接 SMTP 服务器
发送邮件到指定收件人

前期准备:

  • 一个可用的邮箱账号(推荐使用专门的告警邮箱)
  • SMTP 服务器地址
  • SMTP 端口
  • 授权码(不是登录密码)

在 Uptime Kuma 中配置邮件通知#

进入通知设置:

后台 → 设置 → 通知 → 设置 → 选择:Email (SMTP)

参数填写说明,以 QQ 邮箱为例:

参数示例说明
主机名smtp.qq.comSMTP 服务器
端口465SSL 端口
安全性开启465 端口必须开启
用户名your@qq.com邮箱账号
密码授权码不是登录密码
发信人your@qq.com发件人
收信人your@qq.com收件人
邮件主题[Uptime Kuma] {{ name }} - {{ status }}可自定义
正文服务:{{ name }} 状态:{{ status }} 通知的消息:{{ msg }}可自定义

授权码获取方式(以 QQ 邮箱为例)

  1. 登录 QQ 邮箱
  2. 进入设置 → 账户
  3. 开启 “SMTP 服务”
  4. 生成授权码
  5. 将授权码填入 Uptime Kuma 的 Password 字段
测试邮件是否可用

在通知页面点击:测试

如果成功会提示:Sent Successfully

并收到一封测试邮件。

告警触发逻辑说明#

邮件并不是“只要失败就发”。

默认逻辑:

连续失败 X 次 → 发送 Down 通知
恢复正常 → 发送 Up 通知

建议设置:

参数建议
重试次数1~2
心跳重试间隔连续失败
重复发送通知的间隔次数0

Uptime Kuma 状态页#

状态页是 Uptime Kuma 内置的一项功能,用于:

将指定监控项的运行状态以公开页面的形式展示出来。

典型用途:

  • 对外展示博客 / API 是否在线
  • 向用户说明服务状态
  • 公布历史宕机记录
  • 增强服务透明度

例如官方示例:https://status.kuma.pet/

工作原理#

监控项运行状态
Uptime Kuma 记录状态
状态页读取监控数据
公开展示当前状态与历史记录

状态页不会直接执行检测,而是展示现有监控数据。

如何创建一个状态页#

  1. 登录 Uptime Kuma 后台

  2. 创建状态页

  1. 配置状态页说明
项目作用
路径(Slug)决定访问 URL,例如 /status/blog
标题页面顶部显示的名称
描述页面说明文字,支持 Markdown
刷新间隔页面自动刷新时间(默认 300 秒)
添加分组给监控项分类展示,让页面更清晰
添加监控项选择哪些 Monitor 显示在状态页
创建事件发布维护公告或故障说明
显示 Powered By是否显示 Uptime Kuma 标识
显示证书有效期展示 HTTPS 证书剩余天数

效果示例

Uptime Kuma 部署与使用指南
https://blog.xhwen.cn/posts/blog/uptime-kuma-deploy/
作者
朗姆提子冰淇淋
发布于
2026-02-11
许可协议
CC BY-NC-SA 4.0
评论