字节笔记本
2026年8月30日
Uptime Kuma:高颜值开源监控怎么自己部署
想自己盯网站、API、数据库端口是否在线,又不想交给第三方 Uptime 服务,可以用 Uptime Kuma。它是自托管的可用性监控面板,界面偏现代,GitHub 上超过 9 万星,MIT 许可。官方临时演示在 demo.kuma.pet,数据大约 10 分钟清一次。
能盯什么
常见探针都有:
- HTTP(s)、带关键词的 HTTP、JSON Query、Websocket
- TCP 端口、Ping、DNS 记录
- Push(被监控端主动上报)、Steam 游戏服、Docker 容器
最短检测间隔可以到 20 秒。告警渠道很多:Telegram、Discord、Slack、邮件(SMTP)、Gotify、Pushover 等,仓库里列了 90 多种通知组件。还支持多语言界面、多状态页、证书信息、代理、双因素认证。
Docker Compose 部署(推荐)
数据目录必须落在本机磁盘或 Docker volume。NFS 这类网络文件系统官方明确不支持,挂上去容易出问题。
mkdir uptime-kuma
cd uptime-kuma
curl -o compose.yaml https://raw.githubusercontent.com/louislam/uptime-kuma/master/compose.yaml
docker compose up -d官方 compose 大致是:镜像 louislam/uptime-kuma:2,端口 3001:3001,数据挂到 ./data:/app/data,restart: unless-stopped。起来后浏览器打开 http://服务器IP:3001,第一次会让你建管理员账号。
只想本机访问时,把端口改成 127.0.0.1:3001:3001,外面再挂反向代理。
一条 docker run
没有 compose 也可以:
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:2-v uptime-kuma:/app/data 用的是命名 volume,升级时只要别删这个 volume,监控配置和历史还在。
不用 Docker:Node + pm2
环境要求:
- Linux 常见发行版,或 Windows 10 / Server 2012 R2 及以上(x64)
- Node.js >= 20.4、Git
- 不支持 FreeBSD / OpenBSD / NetBSD,也不适合塞进 Replit、Heroku
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
pm2 startup && pm2 save同样默认监听 3001。进阶选项和反代说明见官方 Wiki:How to Install。
加第一条 HTTP 监控
登录后点「Add New Monitor」:
- Monitor Type 选 HTTP(s)
- Friendly Name 随便起,比如「官网首页」
- URL 填完整地址,例如
https://example.com - Heartbeat Interval 默认 60 秒一般够用;要更密可以降到 20
- 保存
几轮心跳后,仪表盘会出现响应时间和在线状态。证书到期信息也会在 HTTPS 监控里看到。TCP、Ping、DNS 的流程一样,只是类型和字段不同。
接 Telegram 告警
设置 → Notifications → Setup Notification,类型选 Telegram:
- 跟 @BotFather 建一个 Bot,拿到 token
- 自己先跟 Bot 说一句话,再用
getUpdates或机器人工具查 chat id - 把 token 和 chat id 填进 Uptime Kuma,点 Test,手机上应收到一条测试消息
- 回到监控编辑页,勾上这条通知,失败/恢复都会推过来
Discord、Slack、邮件也是同一套入口,换类型填对应字段即可。
状态页
侧边 Status Pages → 新建一页,把要对外公开的监控拖进去。可以绑定独立域名,做成对外的「服务状态」页,不必把整个管理后台暴露出去。演示站和 README 截图里都有状态页样例。
升级
Docker Compose 常见做法:
cd uptime-kuma
docker compose pull
docker compose up -d确认 ./data(或命名 volume)还在,再重启。非 Docker / 其它版本的细节以 Wiki 为准:How to Update。
小结
Uptime Kuma 适合想把可用性监控放在自己机器上的人:Docker 一条命令就能起,探针覆盖 HTTP/TCP/Ping/DNS/Docker,告警能推到 Telegram 等九十多种渠道,还自带状态页。数据目录用本地盘,别挂 NFS。仓库地址:github.com/louislam/uptime-kuma。