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

它能监控什么
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,也可以直接 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 # 重启服务

添加第一个监控项
进入 Dashboard 之后,添加监控的流程非常直观:
- 点击左上角 “+ Add New Monitor”
- 选择 Monitor Type(HTTP(s) / TCP / Ping 等)
- 填入 Friendly Name(显示名称)和目标 URL / 主机 / 端口
- 设置心跳间隔(默认 20 秒)
- 选择关联的通知渠道
- 保存
保存后监控立刻开始工作,状态变化会实时反映在 Dashboard 上。历史响应时间会以折线图呈现,可以直观看到延迟波动。
状态页(Status Page)
如果你希望把监控结果以公开页面形式展示给用户,Uptime Kuma 提供了 Status Page 功能:
- 可以创建多个状态页,按业务分组
- 每个状态页可以关联特定的监控项
- 支持自定义域名映射(通过反向代理实现)
- 提供订阅按钮,用户可以订阅 RSS 或 Telegram 频道
很多团队把它作为对外服务可用性的官方页面使用,比临时手写一个静态页面方便很多。

升级与维护
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 为准,会随版本更新保持同步。

评论(0)