ByteNoteByteNote

字节笔记本

2026年8月30日

Uptime Kuma:高颜值开源监控怎么自己部署

API中转
¥120

想自己盯网站、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 这类网络文件系统官方明确不支持,挂上去容易出问题。

bash
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/datarestart: unless-stopped。起来后浏览器打开 http://服务器IP:3001,第一次会让你建管理员账号。

只想本机访问时,把端口改成 127.0.0.1:3001:3001,外面再挂反向代理。

一条 docker run

没有 compose 也可以:

bash
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
bash
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」:

  1. Monitor Type 选 HTTP(s)
  2. Friendly Name 随便起,比如「官网首页」
  3. URL 填完整地址,例如 https://example.com
  4. Heartbeat Interval 默认 60 秒一般够用;要更密可以降到 20
  5. 保存

几轮心跳后,仪表盘会出现响应时间和在线状态。证书到期信息也会在 HTTPS 监控里看到。TCP、Ping、DNS 的流程一样,只是类型和字段不同。

接 Telegram 告警

设置 → Notifications → Setup Notification,类型选 Telegram:

  1. @BotFather 建一个 Bot,拿到 token
  2. 自己先跟 Bot 说一句话,再用 getUpdates 或机器人工具查 chat id
  3. 把 token 和 chat id 填进 Uptime Kuma,点 Test,手机上应收到一条测试消息
  4. 回到监控编辑页,勾上这条通知,失败/恢复都会推过来

Discord、Slack、邮件也是同一套入口,换类型填对应字段即可。

状态页

侧边 Status Pages → 新建一页,把要对外公开的监控拖进去。可以绑定独立域名,做成对外的「服务状态」页,不必把整个管理后台暴露出去。演示站和 README 截图里都有状态页样例。

升级

Docker Compose 常见做法:

bash
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

分享: