网站宕机了你可能都不知道,直到客户发来一句:“你的网站是不是打不开了?”
如果你管理着多个站点、API 服务、Docker 容器或远程服务器,实时掌握它们是否在线、延迟是否波动,就非常关键。
与其依赖第三方监控服务,不如自建一个轻量、可定制、界面友好且支持多种告警方式的监控系统。
这正是 Uptime Kuma 的强项。它不仅开源免费,而且部署非常简单,几分钟就能运行,还支持 Telegram、企业微信、钉钉、邮件等多种告警。
一、什么是 Uptime Kuma?
Uptime Kuma 是一个基于 Node.js 的自托管可用性监控平台,被誉为 “开源版的 Uptime Robot”,但功能更丰富、更灵活。
✅ 核心功能包括:
- HTTP(s)、TCP、Ping、DNS、推送监控等多协议支持
- 丰富的图表界面(响应时间、宕机记录、可用率)
- 多语言支持(含简体中文)
- 支持多用户、多端同步访问
- Telegram、邮箱、微信、钉钉等告警方式
- Webhooks、自定义脚本、SSL证书监控
二、快速部署 Uptime Kuma(推荐 Docker 方式)
Uptime Kuma 的部署方式有两种:Docker(推荐) 和 Node.js。
✅ 使用 Docker 快速部署:
bashdocker run -d \
--restart=always \
--name uptime-kuma \
-p 3001:3001 \
-v /root/uptime-kuma:/app/data \
louislam/uptime-kuma
启动后访问
http://服务器IP:3001
进入Web界面初始化设置。
创建管理员账号 → 登录 → 即可添加你的第一个监控项目。
三、添加你的第一个监控项
点击【添加监控】,填写以下信息:
字段 | 示例 |
---|---|
类型 | HTTP(s) / TCP / Ping 等 |
名称 | 我的官网 |
URL/IP | https://yourdomain.com |
检查间隔 | 30 秒 / 1分钟 / 5分钟 |
超时时间 | 默认5秒,根据站点性能调整 |
关键词匹配(可选) | 页面中必须包含指定文字 |
可以同时配置 SSL 证书有效性检查,非常适合检测 HTTPS 是否快过期。
四、配置告警通知(以 Telegram 为例)
✅ Telegram 告警设置步骤:
- 创建一个 Bot:@BotFather
- 获取 Token,并添加到 Kuma 通知设置中
- 发送
/start
给 Bot 后复制 Chat ID - 在 Uptime Kuma 设置 → 通知 → Telegram → 填入 Token + Chat ID
之后任何站点宕机或恢复,都会自动推送通知到 Telegram。
📌 支持告警渠道还有:
- 邮件SMTP(如QQ邮箱、Mailgun)
- 企业微信机器人
- 钉钉Webhook
- Webhooks(自定义)
- Bark(iOS通知)
- Discord / Slack
五、常见监控场景推荐
监控类型 | 示例 |
---|---|
网站可访问性 | 检测首页状态码+关键词匹配 |
接口服务监控 | 检测 API 返回是否异常 |
端口可达性 | TCP 检测 SSH、数据库、Redis 等 |
SSL证书检查 | 提前提醒证书到期 |
多节点 Ping | 比较不同地区对目标服务器延迟 |
本地服务存活 | 使用推送模式(push monitor)检测脚本或定时心跳 |
六、进阶用法:Webhook + 自定义脚本
- 当监控项宕机时,可触发你自己的 Webhook 脚本
- 实现自动重启服务、打日志、发短信、触发 Ansible 脚本等自动化行为
- 适用于高可用场景中,自动容灾处理
例如调用 Cloudflare API 更换解析记录、触发Docker重启容器。
七、部署建议与安全性说明
- 建议部署在公网不暴露的端口(如 3001),通过反代或 Cloudflare Tunnel 加密访问
- 开启密码登录,并定期更新后台账号密码
- 可以配合 Traefik/Nginx 实现 HTTPS + 域名访问
- 数据默认存储在容器挂载目录中,建议定期备份
/app/data
目录
监控不是“宕了之后再补救”,而是提前发现风险、及时响应故障的第一步。
Uptime Kuma 的轻量与灵活,让它既适合个人博客,也适用于中小企业级服务监控。如果你还在用 Excel 表格记录网站状态,是时候升级你的监控体系了。