Uptime Kuma:把监控面板装进自己家的轻量方案

Uptime Kuma 是一个自托管的监控工具,定位类似 SaaS 版的 Uptime Robot,但数据完全跑在自己的服务器上。它的界面做得相当漂亮,部署一条命令就能跑起来,对个人开发者和小型团队非常友好。项目在 GitHub 上是开源的,可以自由下载使用。

Uptime Kuma 主仪表盘界面,多个监控项以卡片形式排列-1

它能监控什么

Uptime Kuma 内置的监控类型覆盖了大多数日常场景:

  • HTTP(s):最常见的网页可用性监控,可以设置状态码、关键词匹配、JSON 查询等多种判断方式
  • TCP / Ping:针对端口连通性和 ICMP 延迟的轻量监控
  • WebSocket:实时通信接口的可用性检测
  • DNS Record:域名解析记录是否正常
  • Docker Container:直接监控同一主机上的容器状态
  • Steam Game Server / Push:游戏服务器和主动上报(Push)模式

监控间隔默认 20 秒一次,对于大部分业务来说这个频率已经足够。Dashboard 是响应式的,在手机浏览器上也能正常查看。

告警通知

监控工具最怕”挂了没人知道”。Uptime Kuma 内置了 90 多种通知渠道,常见的基本都覆盖到了:

  • 即时通讯:Telegram、Discord、Slack、Microsoft Teams、Rocket Chat
  • 推送服务:Pushover、Ntfy、Gotify、Pushbullet
  • 邮件:通过 SMTP 配置任意邮箱
  • 国内常用:企业微信、飞书、钉钉、Server 酱、Bark 等

每种通知渠道的触发条件都可以独立配置,比如只在连续失败 N 次后才告警,或者在恢复时单独发一条通知,避免半夜被误报吵醒。

> 第一次接入通知渠道时建议先发一条测试消息确认配置无误,再启用正式告警。

部署方式选择

官方提供三种部署路径,按推荐顺序排列如下。

Docker Compose(推荐)

这是最省心的方式,一条命令拉起一个完整服务:

mkdir uptime-kuma
cd uptime-kuma
curl -o compose.yaml https://raw.githubusercontent.com/louislam/uptime-kuma/master/compose.yaml
docker compose up -d

完成后访问 http://localhost:3001 即可。第一次打开会要求设置管理员账号。

Docker Compose 启动后控制台输出的成功日志-2

Docker 单条命令

如果不想用 Compose,也可以直接 docker run

docker run -d --restart=always -p 3001:3001 \
  -v uptime-kuma:/app/data \
  --name uptime-kuma \
  louislam/uptime-kuma:2

如果只希望本机访问,把 -p 3001:3001 换成 -p 127.0.0.1:3001:3001 即可,再通过反向代理对外提供。

> [!WARNING]
> 不要把数据目录挂载到 NFS 等网络文件系统上,Uptime Kuma 依赖本地文件系统的某些特性,挂在 NFS 上会出现数据损坏问题。请使用本地目录或 Docker 命名卷。

非 Docker 部署

如果宿主机不方便装 Docker,也可以直接用 Node.js 跑。环境要求:

  • 操作系统:主流 Linux 发行版(Debian、Ubuntu、Fedora、Arch 等)、Windows 10/Server 2012 R2 及以上
  • 不支持:FreeBSD、OpenBSD、NetBSD,以及 Replit、Heroku 等受限平台
  • 依赖:Node.js 20.4 及以上、Git、pm2(用于后台运行)
git clone https://github.com/louislam/uptime-kuma.git
cd uptime-kuma
npm run setup

# 前台跑一下试试
node server/server.js

# 推荐:用 pm2 放后台
npm install pm2 -g && pm2 install pm2-logrotate
pm2 start server/server.js --name uptime-kuma

启动后同样监听 3001 端口。pm2 部署的常用命令可以记一下:

pm2 monit          # 查看实时日志和资源占用
pm2 startup && pm2 save   # 设为开机自启
pm2 restart uptime-kuma   # 重启服务

pm2 monit 输出 uptime-kuma 进程状态和日志尾部-3

添加第一个监控项

进入 Dashboard 之后,添加监控的流程非常直观:

  1. 点击左上角 “+ Add New Monitor”
  2. 选择 Monitor Type(HTTP(s) / TCP / Ping 等)
  3. 填入 Friendly Name(显示名称)和目标 URL / 主机 / 端口
  4. 设置心跳间隔(默认 20 秒)
  5. 选择关联的通知渠道
  6. 保存

保存后监控立刻开始工作,状态变化会实时反映在 Dashboard 上。历史响应时间会以折线图呈现,可以直观看到延迟波动。

状态页(Status Page)

如果你希望把监控结果以公开页面形式展示给用户,Uptime Kuma 提供了 Status Page 功能:

  • 可以创建多个状态页,按业务分组
  • 每个状态页可以关联特定的监控项
  • 支持自定义域名映射(通过反向代理实现)
  • 提供订阅按钮,用户可以订阅 RSS 或 Telegram 频道

很多团队把它作为对外服务可用性的官方页面使用,比临时手写一个静态页面方便很多。

Uptime Kuma 公开状态页面,按服务分组展示运行状态-4

升级与维护

Uptime Kuma 在 Dashboard 右上角自带 “Check Update” 按钮,可以在 Web 界面一键拉取新版本并重启。Docker 部署的升级大致如下:

cd uptime-kuma
docker compose pull
docker compose up -d

升级前建议先看一眼官方的 Release Notes,特别是大版本变更可能涉及数据库结构改动。常规的小版本升级一般不会破坏数据。

一些使用上的小细节

  • 2FA 登录:管理员账号可以开启两步验证,提升安全性
  • 多语言界面:内置中文在内的多种语言切换,翻译通过 Weblate 协作
  • 证书信息:HTTPS 监控会自动展示目标站点的证书剩余有效期,快到期时方便提前发现
  • 代理支持:服务器本身可以通过 HTTP/SOCKS5 代理访问目标,适合内网环境
  • 多用户:可以创建多个账号并分配权限,团队协作时不用共享密码

写在最后

对于想自己掌控监控数据的个人和团队来说,Uptime Kuma 是一个门槛很低、上手很快的选项。Docker Compose 模式下五分钟内就能跑起来,再花十分钟配置好通知渠道和第一个监控项,基本就能覆盖 80% 的日常使用场景。具体的部署细节、迁移备份、反向代理配置等进阶内容,建议以官方 Wiki 为准,会随版本更新保持同步。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。