Uptime Kuma:自托管服务监控工具
louislam/uptime-kuma
开源自托管的服务监控平台,支持HTTP/TCP/Docker等多种协议监控,提供美观的状态页面和90+种通知渠道
成熟度:维护活跃,最近提交0天前,8.8万stars,但有760个open issues
项目体检
部署 · Docker Compose一键部署或docker run启动,默认监听3001端口,支持volume持久化数据,不支持NFS文件系统
成本 · 开箱即用无需外部依赖,非Docker部署需Node.js 20.4+和PM2进程管理器
技术 · JavaScript + Node.js + Vue 3 + Socket.IO + Bootstrap 5,采用WebSocket实现实时通信的单页应用
许可 · MIT协议,可自由商用、修改和分发
活跃 · 最新版本2.4.0发布于27天前,1084位贡献者参与,今日仍有代码提交,活跃度极高
解决什么
Uptime Kuma 解决了企业和个人对服务可用性监控的刚需。当你运营网站、API服务或Docker容器时,需要7×24小时掌握服务状态、及时收到宕机告警。传统商业方案如Uptime Robot按监控点收费且数据托管在第三方,Uptime Kuma提供完全自主可控的开源替代:支持HTTP(S)、TCP、Ping、DNS记录、Docker容器等十余种监控类型,通过Telegram、企业微信、邮件等90+种渠道推送告警,还能生成公开状态页面向客户展示服务健康度。
为何火
该项目在GitHub获得8.8万stars,成为自托管监控领域的头部选择。核心原因有三:一是部署极简,Docker一行命令即可运行,无需复杂配置数据库;二是界面现代化,基于Vue 3和Bootstrap 5构建的响应式UI远超同类开源工具的朴素界面;三是功能完备,20秒监控间隔、证书过期提醒、多状态页面、二次验证等企业级特性一应俱全,且持续高频更新(最近一次提交在今天)。作者louislam明确表示开发动机是找不到稳定维护的statping替代品,最终自己造轮子并成为事实标准。
核心功能
- 多协议监控:覆盖HTTP关键词检测、JSON查询、WebSocket、Steam游戏服务器、Docker容器健康检查等场景
- 状态页面系统:可创建多个独立状态页并绑定自定义域名,支持浅色/深色主题
- 通知矩阵:内置90+种通知集成(含钉钉、飞书、Bark等国内服务),支持通知分组和条件触发
- 数据可视化:Ping延迟图表、证书有效期倒计时、历史可用率统计
- 代理与安全:支持HTTP代理访问内网服务,提供双因素认证保护管理后台
安装
Docker方式(推荐):
docker run -d --restart=always -p 3001:3001 \
-v uptime-kuma:/app/data \
--name uptime-kuma louislam/uptime-kuma:2
访问 http://服务器IP:3001 完成初始化。若需限制仅本地访问,端口映射改为 127.0.0.1:3001:3001。
非Docker方式:
需Node.js 20.4+和PM2,克隆仓库后执行 npm run setup 安装依赖,用 pm2 start server/server.js 后台运行。注意Windows需Server 2012 R2以上版本,不支持BSD系列和Replit/Heroku等PaaS平台。
适合谁
- 中小团队DevOps:替代New Relic等昂贵商业监控,数据完全自主掌控
- 个人站长/博主:监控博客和API可用性,生成状态页增强用户信任
- 企业内网运维:通过代理监控内部服务,避免数据外传合规风险
- 开源项目维护者:公开展示服务健康状态(如demo.kuma.pet的10分钟临时演示)
中文用户特别注意:Telegram/Discord等国际通知渠道需科学上网,建议优先配置SMTP邮件、企业微信或钉钉机器人。
社区评价
暂无足量社区公开讨论,以下为基于项目本身的中立评估:从技术指标看,该项目展现出罕见的活跃度——1084位贡献者、今日仍有提交、Docker镜像下载量巨大,说明用户基数庞大且开发团队响应积极。但760个未关闭issue也暴露潜在问题:可能存在功能请求积压或边缘场景bug。README中作者明确拒绝邮件支持,要求通过GitHub Issues或Reddit求助,显示出个人维护者的精力边界。整体而言,这是一个生产可用但需自行承担社区支持成本的成熟项目。
选型对比
vs Uptime Robot(商业):
- Uptime Kuma优势:数据自主、无监控点数量限制、可定制状态页域名、MIT协议免费商用
- Uptime Robot优势:SaaS开箱即用、全球多节点监控、专业客服支持
vs Prometheus+Grafana(开源):
- Uptime Kuma优势:零配置快速上手、内置美观UI、非技术人员可操作
- Prometheus优势:指标采集更灵活、适合复杂微服务架构、可扩展性更强
vs Zabbix(开源):
- Uptime Kuma优势:部署轻量(单容器vs多组件)、现代化界面、学习曲线平缓
- Zabbix优势:企业级功能完整、支持SNMP等传统协议、历史数据分析能力强
已知坑
- 文件系统限制:官方明确警告不支持NFS等网络文件系统,Docker volume必须映射到本地磁盘,否则可能导致数据库损坏
- 反向代理配置:需正确传递WebSocket头(Upgrade/Connection),Nginx需额外配置
proxy_set_header,否则实时推送失效 - 监控间隔下限:最小20秒间隔,无法实现秒级监控,不适合对延迟极敏感的金融交易类场景
- 多语言翻译:虽支持20+语言但部分新功能中文翻译滞后,可能出现英文界面
- 通知测试:部分通知渠道(如Bark)在国内网络环境下测试可能超时,需逐一验证可达性
来源:GitHub louislam/uptime-kuma + HN社区信号
安装方式:docker