
Uptime Kuma
好看的自托管监控工具开源
关于 Uptime Kuma
Uptime Kuma 是 Louis Lam 发起的自托管可用性监控工具:在自己的机器上跑一个 Node.js 服务,就能定时检查网站、端口、数据库和容器,出问题时发通知报警(README 写有 90 多种通知服务),并对外发布状态页。截至 2026-10-25 仓库有 92,888 个星标,Docker Hub 镜像累计拉取 196,202,927 次,最新正式版 2.5.7,MIT 许可证,软件本身免费,没有付费档。
Uptime Kuma 界面截图
它是什么
Uptime Kuma 是一个开源的自托管监控工具,GitHub 仓库简介是“一个好看的自托管监控工具”,README 第一句写的是“易用的自托管监控工具”。做法很直接:用 Docker 或 Node.js 在自己的服务器上启动一个服务,浏览器打开 3001 端口,添加监控项,它就按设定的间隔去探测目标,把结果画成心跳条和响应时间曲线,状态变化时发通知。
README 列出的基础监控类型有 HTTP(s)、TCP、HTTP(s) 关键字、HTTP(s) JSON 查询、WebSocket、Ping、DNS 记录、Push、Steam 游戏服务器和 Docker 容器。2.5.X 分支的 server/monitor-types 目录里另有类型文件,覆盖 gRPC、MongoDB、MQTT、MySQL、PostgreSQL、SQL Server、Oracle、Redis、RabbitMQ、SMTP、SNMP、SFTP、NTP、SIP OPTIONS、Tailscale Ping、系统服务、真实浏览器等;监控模型代码里还有 Kafka 生产者和 RADIUS 类型。
通知方面,README 写的是“90 多种通知服务”,2.5.X 分支 server/notification-providers 目录里的通知实现从 Telegram、Discord、Slack、邮件到各地短信网关。界面翻译经 Weblate 协作完成。
截至 2026-10-25,仓库有 92,888 个星标、8,605 个分支;Docker Hub 上 louislam/uptime-kuma 镜像累计拉取 196,202,927 次,镜像页面登记于 2021-07-10 12:16 (UTC+8)。最新正式版是 2026-10-23 13:16 (UTC+8) 发布的 2.5.7;master 分支的 package.json 已经写成 3.0.0-beta.0。
一个好看的自托管监控工具。
核心能力
第一是监控类型。除了常见的 HTTP 和 TCP,数据库、消息队列、游戏服务器、DNS 记录、证书到期、系统服务都能直接配,Push 类型则反过来由被监控方定时上报。README 写最短检查间隔为 20 秒;2.5.0 的更新说明写明检查间隔不再受 24 天上限限制。
第二是通知渠道。README 写的是“90 多种通知服务”;2.1.0 新增了 Jira Service Management 和 Google Sheets,2.5.0 又加了 Plivo 短信与语音、NTP 监控类型和 SMTP 自定义头。
第三是状态页。README 列出多个状态页、状态页绑定独立域名、Ping 图表、证书信息、代理支持和双因素登录。
第四是数据库选择。2.0.0-beta.0 的更新说明写明新增 MariaDB 支持和无 root 权限的 Docker 镜像,数据可以放在 SQLite 之外的数据库里。2.0.0-beta.0 的说明还列出可用率计算改进和一年期可用率,迁移指南则写明 2.0 会把心跳表聚合成更优化的新格式。
第五是部署方式。官网首页只有一行 docker run 命令,README 同时给出 Docker Compose 写法和不用 Docker 的 pm2 方案;在线演示环境的数据 10 分钟后清空,不安装也能看到界面。
适合谁 / 不适合谁
适合:个人站长、自建服务爱好者和小型技术团队,手上有一台常开的机器,想用一个界面盯住几十个网站、接口、数据库和容器,并把报警发到自己常用的聊天工具。
适合:已经在用 Docker 的团队。官方 compose.yaml 只有一个服务,数据目录挂载到本地即可,升级就是换镜像标签。
适合:需要对外状态页但预算有限的项目。状态页可以绑定独立域名,软件本身不收费。
不适合:需要从多个地区同时探测、判断是不是区域性故障的团队。
不适合:需要值班排班、电话升级、事件复盘流程的团队,这些属于 Better Stack 这类托管平台的范围。
不适合:数据目录只能放在 NFS 上的环境。README 用警告框写明 NFS 这类网络文件系统不受支持;FreeBSD、OpenBSD、NetBSD 与 Replit、Heroku 也在不支持列表里。
不适合:打算批量提交 AI 生成代码的贡献者。仓库 AGENTS.md 写明项目不接受未经审阅和测试的 AI 生成代码,违者会被封禁;把 AI 当作理解代码的助手是允许的。
和同类比
和 Gatus 比:TwiN/gatus 是用 Go 写的开源状态页与报警工具,截至 2026-10-25 有 12,401 个星标,Apache-2.0 许可证,最新版 v5.37.0 发布于 2026-09-24 08:00 (UTC+8)。Gatus 另有托管版,gatus.io 定价页按月付费标准档 10 美元、Premium 20 美元、Business 50 美元、Enterprise 500 美元(截至 2026-10-25)。Uptime Kuma 主要靠网页界面配置;Gatus 的仓库简介强调面向开发者。
和 UptimeRobot 比:UptimeRobot 定价页(截至 2026-10-25)的免费档给 50 个监控项、5 分钟间隔;Solo 档按月付每月 13 美元、按年付折合每月 12 美元,10 个监控项、60 秒间隔;Team 档按月付每月 46 美元、按年付折合 39 美元,100 个监控项、30 秒间隔;Scale 档按月付 98 美元起。Uptime Kuma 不按监控项收费,README 写最短 20 秒间隔,机器和维护由用户自己负责。
和 Better Stack 比:Better Stack 定价页(截至 2026-10-25)免费档含 10 个监控项与心跳、1 个状态页;每个值班人员许可按月付每月 34 美元、按年付 29 美元,额外 50 个监控项按月付每月 25 美元;检查频率最快 30 秒,并提供多地探测、电话与短信报警。Uptime Kuma 覆盖探测、通知和状态页。
上手路径
Docker 方式。README 给出的命令是 docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:2,启动后在 http://localhost:3001 创建管理员账号。端口映射为 127.0.0.1:3001:3001 时,只有本机能访问。
Docker Compose 方式使用仓库里的 compose.yaml,启动命令是 docker compose up -d;该文件把 ./data 挂载为数据目录,重启策略为 unless-stopped。数据目录要放在本地磁盘或卷上,不能放 NFS。
不用 Docker 时,README 列出的支持平台是 Debian、Ubuntu、Fedora、ArchLinux 等主流 Linux 发行版,以及 Windows 10 x64、Windows Server 2012 R2 x64 或更高版本;2.5.X 分支的 package.json 要求 Node.js 20.4.0 或更高;README 的流程是克隆仓库后执行 npm run setup,这个脚本会切换到 2.5.7 标签并下载前端构建产物,再由 pm2 启动 server/。
从 1.x 升级到 2.x 有专门的迁移指南。指南要求停服后备份数据目录,并说明迁移会把心跳表聚合成新格式,过程中不能中断;作者自己的实例有 20 个监控项、90 天数据,迁移用了约 7 分钟,硬件慢或监控项多时可能要几个小时。2.0 去掉了 JSON 备份恢复功能,备份只剩复制数据目录一种办法;Alpine 镜像停止提供;新建监控项的默认重试次数从 1 改为 0。
官方安全策略列出可升级的 Docker 标签为 2、2-slim、next 和 next-slim;迁移指南提醒,从 1.x 升级时直接换成无 root 的 rootless 镜像可能导致启动失败。
Uptime Kuma 所在的机器掉线时,它自己也发不出报警。Push 监控项由内网机器和定时任务主动上报。
定价与许可证
Uptime Kuma 软件本身免费,没有付费档,也没有官方托管服务;用户自己承担服务器费用。项目经费来自捐助:Open Collective 页面(截至 2026-10-25)显示累计收入 5,897.69 美元、已支出 1,547.53 美元、余额 4,350.16 美元,估算年度预算 1,644.05 美元,页面列出的固定开销是每月 11 美元的 VPS、每年约 15 美元的域名和每半年 2.5 美元的邮件发送服务。README 写明 Atlas Cloud 以每月 400 美元赞助项目,用于使用其 AI 模型(官方自述)。
许可证是 MIT。仓库根目录的 LICENSE 由 Louis Lam 在 2021-07-11 16:02 (UTC+8) 通过提交 6bb4f92 建立,标题为 Create LICENSE,版权行写 2021 年;package.json 的 license 字段同样是 MIT。master 分支在 2026-10-25 17:05 (UTC+8) 的提交 540f230 里内置了 prometheus-api-metrics 模块,该目录自带 Apache-2.0 许可证;这个提交只在 master 和 3.0.X 分支,2.5.X 不含。
风险与局限
安全公告。截至 2026-10-25,最近一条 GHSA-wf2j-5mc7-5c4w 发布于 2026-10-09 10:30 (UTC+8),内容是徽章接口可被未登录请求用来耗尽资源;2023 年的 CVE-2023-36821 则是通过恶意插件安装实现的远程代码执行。2025-10 与 2026-03 各有一条通知模板的服务端模板注入公告。
安全策略的受理范围。SECURITY.md 写明不接受 SSRF 类报告,也不接受只靠依赖扫描得出、没有概念验证的上游漏洞报告,只通过 GitHub 安全公告接收问题。另一条 2025 年公告提到部分云厂商的元数据地址对本地网络开放,云主机上的实例如果不限制可访问的地址,就可能被用来读取这些元数据。
贡献者。GitHub 贡献者接口(anon=0,默认分支)显示,项目作者 Louis Lam 的账号有 2,928 次提交,排名第二的账号为 329 次(截至 2026-10-25)。README 也写明拉取请求太多,作者没有时间全部测试,希望社区帮忙测试。
版本线。2.5.X 分支要求 Node.js 20.4.0 以上,master 分支的 package.json 版本为 3.0.0-beta.0,要求 Node.js 26.2.0 以上,并在 2026-07-15 22:16 (UTC+8) 的提交 9998be2 中引入 Better Auth 认证库和 API Key 插件。
指标接口默认值。master 在 2026-10-25 17:05 (UTC+8) 的提交 540f230 以降低 CPU 占用为由,把 /metrics 接口改为默认关闭,同一提交在设置页加入了开关。
截至 2026-10-25,GitHub 上累计 5,041 个 issue、2,888 个 PR,开放 issue 739 个、开放 PR 116 个。
来龙去脉
仓库里最早的提交 d9cd2c3 标题就是 init,时间为 2021-06-24 21:42 (UTC+8);GitHub 仓库建立时间是 2021-07-03 09:02 (UTC+8)。README 的动机一节写得很直白:Louis Lam 想找一个类似 Uptime Robot 的自托管监控工具,最接近的 statping 不稳定且已无人维护;同时想做一个好看的界面,顺便学 Vue 3 和 Vite、展示 Bootstrap 5、尝试用 WebSocket 加单页应用代替 REST API,并发布自己的第一个 Docker 镜像。
1.0.0 的发布记录时间为 2021-07-11 23:13 (UTC+8),同一天 LICENSE 文件入库。
2.0 周期。2.0.0-beta.0 发布于 2024-10-29 21:10 (UTC+8),更新说明开头作者感叹合并的拉取请求多到难以置信,主要新增 MariaDB 支持、无 root 镜像、SNMP 与 RabbitMQ 监控等;经过 5 个测试版,2.0.0 正式版在 2025-10-20 20:40 (UTC+8) 发布。2.1.0 的说明写这一版合并了 250 个拉取请求(官方自述)。
2026 年,正式版从 2.1.0 更新到 2.5.7。2.5.0 把 npm 依赖更新设置为 14 天冷却期,以降低供应链攻击风险;2.5.7 把 Docker 镜像里的 Node.js 升级到 22.23.4,用来拒绝一张泄露的 eMudhra 根证书。2026-03-26 12:31 (UTC+8),仓库加入 AGENTS.md,明确拒绝未经审阅的 AI 生成代码。
我们的判断
Uptime Kuma 用一行 Docker 命令部署,README 写有 90 多种通知服务,状态页可以绑定域名,软件不收费。截至 2026-10-25 仓库有 92,888 个星标,Docker Hub 镜像累计拉取 196,202,927 次。
限制:探测只来自部署它的机器;仓库发布过多条安全公告;默认分支提交数排名第一的是 Louis Lam 的账号;master 分支的 3.0.0-beta.0 引入 Better Auth 认证库,并要求 Node.js 26.2.0 以上。
亮点
Uptime Kuma 是一款自托管的监控工具,人们因为它好看而装上,又因为它可靠而留下。HTTP、TCP、DNS、Docker 监控和几十种通知渠道,都装在一个能跑在闲置机器上的 Node 应用里。
Louis Lam 做出了它,看着它成了几乎所有自托管社区推荐状态页时的首选。界面一直是它不声不响的优势:信息密、易读,凌晨三点在手机上看也不费劲。
它可自托管,监控 HTTP、TCP、DNS 和 Docker,支持数十种通知渠道。
资料来源
官方
- louislam/uptime-kuma on GitHub · 访问于 2026 年 10 月 25 日
- Uptime Kuma README · 访问于 2026 年 10 月 25 日
- Uptime Kuma LICENSE · 访问于 2026 年 10 月 25 日
- Uptime Kuma commit 6bb4f92: Create LICENSE · 访问于 2026 年 10 月 25 日
- Uptime Kuma commit d9cd2c3: init · 访问于 2026 年 10 月 25 日
- Uptime Kuma package.json on master · 访问于 2026 年 10 月 25 日
- Uptime Kuma package.json on the 2.5.X branch · 访问于 2026 年 10 月 25 日
- Uptime Kuma releases · 访问于 2026 年 10 月 25 日
- Uptime Kuma release 2.5.7 · 访问于 2026 年 10 月 25 日
- Uptime Kuma release 2.5.0 · 访问于 2026 年 10 月 25 日
- Uptime Kuma release 2.1.0 · 访问于 2026 年 10 月 25 日
- Uptime Kuma release 2.0.0 · 访问于 2026 年 10 月 25 日
- Uptime Kuma release 2.0.0-beta.0 · 访问于 2026 年 10 月 25 日
- Uptime Kuma wiki: Migration From v1 To v2 · 访问于 2026 年 10 月 25 日
- Uptime Kuma contributors · 访问于 2026 年 10 月 25 日
- Uptime Kuma issues · 访问于 2026 年 10 月 25 日
- Uptime Kuma security policy (SECURITY.md) · 访问于 2026 年 10 月 25 日
- Uptime Kuma AGENTS.md contribution policy · 访问于 2026 年 10 月 25 日
- Uptime Kuma commit 540f230: disable the /metrics endpoint by default (#8041) · 访问于 2026 年 10 月 25 日
- Uptime Kuma commit 9998be2: Better Auth implementation (#6276) · 访问于 2026 年 10 月 25 日
- Uptime Kuma notification providers on 2.5.X · 访问于 2026 年 10 月 25 日
- Uptime Kuma monitor types on 2.5.X · 访问于 2026 年 10 月 25 日
- Uptime Kuma homepage · 访问于 2026 年 10 月 25 日
安全公告
- Uptime Kuma security advisories · 访问于 2026 年 10 月 25 日
媒体与第三方
- Uptime Kuma on Open Collective · 访问于 2026 年 10 月 25 日
相关产品
- TwiN/gatus on GitHub · 访问于 2026 年 10 月 25 日
- Gatus pricing · 访问于 2026 年 10 月 25 日
- UptimeRobot pricing · 访问于 2026 年 10 月 25 日
- Better Stack pricing · 访问于 2026 年 10 月 25 日
数据
- louislam/uptime-kuma on Docker Hub · 访问于 2026 年 10 月 25 日