Uptime Kuma 是一个自托管的服务可用性监控工具,可以理解为 UptimeRobot、StatusCake 等商业监控服务的开源替代品。它由开发者 Louis Lam 于 2021 年发起,以界面美观、配置简单、功能全面、通知渠道极其丰富而广受欢迎,几乎是自托管社区监控自家各类服务在线状态的首选工具,也常被用来对外发布服务状态页。项目在 GitHub 上迅速收获数万颗星标,成为近年来自托管监控领域最活跃的开源项目之一。
项目背景与设计理念
个人和小团队往往同时运行着许多自建服务:个人博客、API 接口、数据库、邮件服务器、各种容器化应用,需要随时知道它们是否在线、响应是否正常。商业监控服务要么限制免费监控数量、要么需要订阅付费、要么把监控数据存放在第三方平台。Uptime Kuma 提供了一个完全本地运行、免费、开箱即用且界面美观的方案,让用户能在自己的服务器上实时掌握所有站点和服务的健康状况,并在出问题时第一时间收到通知。其设计哲学是数据自主、零外部依赖、部署门槛极低,哪怕是技术背景一般的用户也能在几分钟内完成部署并开始添加监控。
核心功能
- 多种监控类型:支持 HTTP/HTTPS 状态码检测、TCP 端口连通性、Ping 延迟、DNS 记录解析正确性、HTTP 关键字匹配(页面包含或不包含指定文本)、JSON 查询路径、数据库连接(MySQL/PostgreSQL/Redis 等)、gRPC 健康检查、Steam 游戏服务器状态,以及被动的 Push 心跳监控等十余种探测方式,几乎覆盖了常见的所有监控场景。
- 实时仪表盘:基于 WebSocket 长连接实时推送数据,直观展示各监控项的当前在线状态、响应时间折线图、当日与近 30 天的可用率百分比,无需手动刷新页面。
- 丰富通知渠道:支持超过 90 种通知方式,涵盖 Telegram、Discord、Slack、企业微信机器人、钉钉、飞书、邮件(SMTP)、自定义 Webhook、Bark、Gotify、PagerDuty、Twilio 短信等主流渠道,能满足几乎所有个人和团队的通知需求。
- 状态页(Status Page):可对外发布精美的公开状态页,支持自定义域名、按分组展示服务、显示历史事件记录与当前进行中的事件公告,适合向用户和客户透明展示服务运行状况,提升信任感。
- 证书监控:自动检测 HTTPS 网站的 TLS 证书有效期,并在证书临期前的指定天数自动发送提醒通知,避免因证书过期导致访问中断。
- 维护计划:可按时段配置维护窗口,在计划维护期间自动静默相关告警,避免产生误报打扰。
- 标签与分组:支持对监控项打标签和按分组归类管理,便于大量监控项的组织整理与快速筛选。
技术架构
Uptime Kuma 基于 Node.js 开发服务端,前端使用 Vue 3 构建单页应用,通过 Socket.io(WebSocket) 实现仪表盘的实时数据推送与双向事件通信。监控数据默认存储在 SQLite 数据库中,新版本也增加了对 MariaDB/MySQL 的实验性支持,适应更大规模的部署需求。整个应用是一个轻量级单体服务,正常运行时内存占用仅约 50~150 MB,CPU 使用极低,非常适合部署在低配 VPS、树莓派或家用 NAS 上长期运行,作为常备的监控哨兵。
部署与配置要点
- Docker 部署:最主流的部署方式,官方镜像一行命令即可启动,只需挂载一个数据卷持久化 SQLite 文件,首次访问 Web 界面时设置管理员账户,无需额外配置文件或数据库服务。
- 原生 Node 部署:也可直接克隆代码仓库,用 Node.js 加 pm2 或 systemd 运行,适合不想引入 Docker 的场景。
- 反向代理注意事项:配合 Nginx 或 Caddy 做反向代理时,必须正确配置 WebSocket 升级头(Upgrade 与 Connection 请求头),否则仪表盘无法建立 WebSocket 长连接,会出现监控数据不实时更新的问题,这是最常见的配置踩坑点。
- 监控自身局限性:Uptime Kuma 作为单节点监控,当自身所在服务器宕机时无法对外发出告警。建议配合外部探针(如 UptimeRobot 的免费额度监控 Uptime Kuma 本身)或设置两个实例互相监控,规避这一固有局限。
- 推送(Push)监控原理:通过为监控项生成唯一的 HTTP 端点 URL,让定时任务、备份脚本或其他服务定期向该端点发送 HTTP 请求作为心跳信号,若在设定的超时时间内未收到则触发告警,常用于监控 cron 定时任务是否按时正常执行。
典型使用场景
- 监控自建的所有网站、API 接口、数据库、消息队列、容器的可用性与响应时间,第一时间发现故障。
- 对外提供公开状态页,向用户和合作方实时展示各项服务的运行状态,提升服务透明度与用户信任感。
- 监控HTTPS 证书有效期,在证书过期前数天收到提醒,提前完成续期操作避免访问中断。
- 通过 Push 模式反向确认定时脚本、备份任务、数据同步任务是否按计划正常完成。
- 监控域名 DNS 解析是否正确,及时发现 DNS 配置错误、劫持或传播故障。
与同类工具对比
- 对比 UptimeRobot 等 SaaS 服务:Uptime Kuma 完全免费、监控数量无上限、数据完全自主可控,不会因商业政策变化受限;但需要自行运维服务器,且存在单点监控的固有局限(自身宕机无法告警)。
- 对比 Prometheus + Alertmanager 体系:Uptime Kuma 更轻量、面向黑盒可用性检测、上手极快,几乎无学习曲线;Prometheus 体系更适合细粒度的白盒指标采集、时序存储与长期分析,两者关注点不同,在完整的监控体系中常配合互补使用。
- 对比 Healthchecks.io:Uptime Kuma 侧重主动探测外部服务的可用性,Healthchecks 侧重被动接收定时任务心跳信号,两者关注点不同但均可自托管部署。
优缺点小结
优点是界面美观易用、功能全面覆盖日常监控需求、资源占用极低、通知渠道无比丰富、部署门槛几乎为零、深色主题和多语言支持完善。缺点是单节点监控存在自身宕机的盲点问题,历史数据的存储深度与查询能力不如专业时序监控系统,对于需要亚分钟级高精度监控或数千个监控项的重度生产场景有一定局限。对于绝大多数个人用户与小团队的日常服务可用性监控需求,Uptime Kuma 几乎是性价比最高的开源选择。