Uptime Kuma:开源易用的网站服务监控神器,7x24小时保障服务可用性
Uptime Kuma开源易用的网站服务监控神器7x24小时保障服务可用性背景作为开发者或运维人员你是否遇到过这些场景网站宕机了好几个小时才发现被用户投诉服务器挂了但不知道等到用户反馈才去处理需要监控多个服务的状态却没有一个统一的平台商业监控工具价格昂贵中小企业难以承受今天介绍一款开源的自托管监控工具——Uptime Kuma它专注于服务可用性监控在 GitHub 上已获得57K Star。什么是 Uptime KumaUptime Kuma 是一个易于使用的自托管监控工具用于监测网站和服务的可用性。核心理念“Fancy, Reactive, Fast UI/UX”——美观、响应式、快速的用户体验。核心特性特性说明多种监控类型HTTP(s)、TCP、DNS、ping、端口等90 告警渠道邮件、Telegram、Slack、企业微信等状态页面自定义品牌状态展示页证书监控SSL/TLS 证书到期提醒多语言支持 20 种语言实时响应20 秒检测间隔开源免费MIT 许可证轻量部署Docker 一键部署GitHub 地址https://github.com/louislam/uptime-kuma官网https://uptime.kuma.pet在线体验https://demo.kuma.pet/start-demo核心功能详解1. 监控类型Uptime Kuma 支持多种监控方式监控类型说明HTTP(s)监测网站 HTTP 状态码和响应时间TCP监测 TCP 端口是否开放HTTP(s) 关键字监测页面是否包含特定关键字HTTP(s) Json Query监测 API 返回的 JSON 数据WebSocket监测 WebSocket 连接DNS监测 DNS 记录和解析时间Ping监测服务器 ping 延迟Push主动推送型监控AgentSteam Game Server游戏服务器监控Docker 容器监测容器状态2. 告警渠道Uptime Kuma 支持 90 种告警通知方式常用通知渠道渠道说明Email (SMTP)邮件通知Telegram即时消息DiscordDiscord 频道SlackSlack 工作区企业微信企业微信机器人钉钉钉钉群机器人飞书飞书群机器人Pushover移动推送Gotify自托管通知WebHook自定义 HTTP 回调BarkiOS 推送LineLine 消息3. 状态页面Uptime Kuma 提供自定义状态页面功能状态页面特性自定义品牌和 logo显示所有监控服务状态显示历史正常运行时间支持暗色/亮色主题公开或私密访问按域名分组展示状态页示例┌─────────────────────────────────────────────┐ │ My Infrastructure Status │ │ │ │ ✅ API Server (响应时间: 45ms) │ │ ✅ Web Frontend (响应时间: 23ms) │ │ ✅ Database (响应时间: 12ms) │ │ ⚠️ Storage Service (超时) │ │ │ │ 正常运行时间: 99.95% │ │ 最后更新: 2 分钟前 │ └─────────────────────────────────────────────┘4. 证书监控Uptime Kuma 内置 SSL/TLS 证书监控证书信息显示证书有效期颁发机构证书链信息剩余天数提醒自动告警证书到期前 7/30/60 天提醒证书配置错误提醒中间证书缺失提醒快速上手方式一Docker 部署推荐# 创建目录mkdiruptime-kumacduptime-kuma# 下载 docker-compose 文件curl-ocompose.yaml https://raw.githubusercontent.com/louislam/uptime-kuma/master/compose.yaml# 启动服务dockercompose up-d# 访问管理后台# http://localhost:3001方式二Docker 命令直接启动dockerrun-d\--restartalways\-p3001:3001\-vuptime-kuma:/app/data\--nameuptime-kuma\louislam/uptime-kuma:2方式三非 Docker 安装Node.js 环境# 克隆仓库gitclone https://github.com/louislam/uptime-kuma.gitcduptime-kuma# 安装依赖npmrun setup# 启动服务nodeserver/server.js# 或使用 PM2 后台运行npminstall-gpm2 pm2 start server/server.js--nameuptime-kuma pm2 save pm2 startup添加第一个监控步骤1访问管理后台http://localhost:3001 首次访问需要创建管理员账号步骤2添加监控点击 “Add New Monitor”选择监控类型如 HTTP(s)填写配置信息HTTP(s) 监控配置监控名称:My Website监控类型:HTTP(s)主机地址:https://example.com# 高级选项可选检测间隔:60 秒超时时间:30 秒重试次数:3期待关键字:200步骤3配置告警点击监控项的设置图标选择 “Notifications”点击 “Setup Notification”选择告警渠道并配置Telegram 告警配置渠道:TelegramBot Token:你的Bot TokenChat ID:你的Chat ID企业微信告警配置渠道:企业微信Webhook URL:企业微信机器人Webhook地址步骤4查看状态返回监控列表查看响应时间图表查看正常运行时间统计Docker 容器监控Uptime Kuma 支持监控 Docker 容器配置步骤确保 Docker Socket 挂载到 Uptime Kuma 容器dockerrun-d\--restartalways\-p3001:3001\-v/var/run/docker.sock:/var/run/docker.sock\-vuptime-kuma:/app/data\--nameuptime-kuma\louislam/uptime-kuma:2添加监控时选择 “Docker Container” 类型选择要监控的容器监控类型:Docker Container容器名称:my-app容器ID:abc123def456配置告警通知状态页面配置创建状态页进入 “Status Pages”点击 “Create Status Page”填写页面信息页面名称:My Services Statusslug:my-services主题:自动跟随系统添加监控到状态页编辑状态页点击 “Add Monitor”选择要展示的监控项自定义域名# Nginx 反向代理配置 server { listen 80; server_name status.example.com; location / { proxy_pass http://localhost:3001; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }高级配置反向代理配置Nginxserver { listen 443 ssl http2; server_name监控.example.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location / { proxy_pass http://localhost:3001; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }Traefiklabels:-traefik.enabletrue-traefik.http.routers.uptime-kuma.ruleHost(监控.example.com)-traefik.http.routers.uptime-kuma.tlstrue-traefik.http.services.uptime-kuma.loadbalancer.server.port3001开启 2FA 认证进入用户设置找到 “Two-Factor Authentication”扫描二维码保存备份码多语言配置Uptime Kuma 支持 20 种语言# 设置语言Settings → Appearance → Language → 选择语言# 支持的语言English,中文,日本語,한국어,Deutsch,Français Español,Português,Русский,Italiano,Nederlands 等 20 种语言实战场景场景1监控网站 API监控名称:API Health Check监控类型:HTTP(s)URL:https://api.example.com/health期待关键字:status:ok检测间隔:30 秒超时时间:10 秒告警配置触发条件: 关键字不存在 或 HTTP 状态码 ! 200 通知渠道: 企业微信机器人 告警模板: 【告警】API 服务异常请及时处理场景2监控 SSL 证书监控名称:SSL Certificate Expiry监控类型:HTTP(s)URL:https://example.com自动检测证书:✅ 启用到期提醒:30 天前,7 天前,1 天前场景3多服务器监控服务器列表:-名称:Production API主机:api.example.com类型:HTTP(s) Port 443-名称:Database主机:db.example.com类型:TCP Port端口:3306-名称:Redis Cache主机:cache.example.com类型:TCP Port端口:6379场景4Ping 延迟监控监控名称:Server Latency监控类型:Ping主机:8.8.8.8检测间隔:60 秒告警条件:延迟100ms常见问题Q检测间隔最短可以设置多少A最短 20 秒检测间隔适合对实时性要求高的场景。Q支持多少个监控项A官方测试可支持数百个监控项主要取决于服务器性能。Q数据存储在哪里A数据存储在本地 SQLite 数据库docker 部署在挂载的 volume 中。Q如何备份数据A# 备份 volumedockercpuptime-kuma:/app/data ./backup# 或直接备份整个目录cp-r/path/to/uptime-kuma/data ./backupQ如何升级 Uptime KumaA# Docker 部署dockerpull louislam/uptime-kuma:2dockercompose downdockercompose up-d# 非 Dockercduptime-kumagitpullnpmrun setup pm2 restart uptime-kuma适用场景推荐使用网站和 API 监控服务器和端口监控SSL 证书到期提醒Docker 容器监控团队状态页面展示中小企业内部监控不推荐使用需要复杂指标监控建议 Prometheus Grafana需要应用级监控建议 Datadog/New Relic超大规模分布式监控总结Uptime Kuma 用简单 美观 开源的组合成为了自托管监控的最佳选择。核心优势回顾多种监控HTTP/TCP/DNS/Ping/Docker 等90 告警渠道邮件、Telegram、企业微信等状态页面自定义品牌展示页证书监控SSL 到期自动提醒Docker 部署一键启动美观界面现代化响应式 UI对于需要简单、免费、自托管监控解决方案的团队Uptime Kuma 是最佳选择。本文由无边界科技技术团队分享专注软件开发与技术解决方案。官网wubianj.com© 版权归无边界科技所有版权所有。