你的网站挂了多久你才发现?大多数人是用户反馈”打不开”才知道。Uptime Kuma是一个开源免费的监控工具,装在VPS上帮你盯着所有网站和服务器,挂了第一时间推送通知到你微信、钉钉或Telegram。
Uptime Kuma能监控什么
不只是”网站能不能打开”:HTTP/HTTPS网页状态码(200就正常,5xx就告警);TCP端口是否在监听(SSH的22端口、MySQL的3306、Redis的6379);DNS记录是否解析正常;SSL证书还剩几天过期(提前30天提醒);ICMP Ping看服务器还活着没。还能监控Docker容器、Steam游戏服务器、MQTT等。
告警通知支持十几种渠道:Telegram、钉钉、企业微信、飞书、邮件、Slack、Webhook、PushDeer、Gotify等。国内用户推荐用PushDeer(免费、iOS/Android都有)或者钉钉/企业微信机器人。
Docker一条命令部署
docker run -d --restart=always -p 3001:3001
-v uptime-kuma:/app/data
--name uptime-kuma
louislam/uptime-kuma:latest
# 访问 http://你的VPS公网IP:3001 进初始化向导首次访问创建管理员账号。数据默认存在Docker volume里(/var/lib/docker/volumes/uptime-kuma),要备份的话把这个目录拷走就行。
雨云入门VPS月付几块钱跑Uptime Kuma绰绰有余——监控服务本身不吃资源。优惠码 admin01 首月五折。注意:监控别人网站的延迟要从VPS出发,所以VPS机房位置影响延迟数据——用国内机房的VPS监控国内网站延迟低,用海外机房监控海外网站更准。
添加第一个监控项
登录后点「添加监控」,几个常用配置:
- 监控类型选HTTP(s)→URL填 https://你的域名→报错条件默认(状态码非2xx就告警)→心跳间隔建议60秒(太频繁浪费资源,超过60秒发现问题太慢)
- 监控端口:类型选TCP Port→Hostname填服务器IP→Port填端口号→用来监控数据库、Redis这些不开HTTP的服务
- SSL证书过期提醒:类型选HTTP(s)→勾选”证书过期提醒”→提前30天通知
建完后主页面会显示所有监控项的实时状态——绿色对勾正常、红色叉号挂了、黄色感叹号不稳定(偶尔超时)。右上角的图表能看到最近一段时间的响应时间曲线。
配置告警通知——挂了第一时间知道
设置了监控但没配通知等于没监控。点「设置→通知」→添加通知方式:
钉钉机器人(推荐国内用户):建一个钉钉群→群设置→智能群助手→添加机器人→选Webhook→复制Webhook地址。在Uptime Kuma里选DingTalk→粘贴Webhook地址→可以自定义告警文案。网站挂了群里机器人会发消息,所有人能看到。
Telegram:和@BotFather创建一个机器人→拿到token→在@userinfobot拿自己的chat ID。Uptime Kuma里选Telegram→填入token和chat ID。
然后在监控项编辑页面→「通知」栏勾选刚配置的通知方式→保存。可以给不同监控项设不同的通知渠道——核心业务网站用钉钉+邮件双保险、非核心服务只用邮件。
创建状态页面——给用户看的
如果你管着好几个网站,可以做公开状态页让用户自己查看服务是否正常。点「状态页面」→新建→起个名字(比如”XX服务状态”)→选要展示的监控项→生成一个公开链接。用户打开这个链接就能看到各服务当前是否正常。
这个状态页可以自定义品牌Logo和颜色,嵌入到你自己网站的/status页面。也可以用Uptime Kuma官方提供的大盘Dashboard看所有监控项的统计。
避免自己监控自己被误判
如果Uptime Kuma和被监控的网站跑在同一台VPS上,监控的是localhost——能检测到进程挂了、但检测不到公网不可达的问题。建议把监控服务放在另一台VPS上,从公网角度检测。最便宜的方案:一台VPS跑你的网站、一台低配VPS跑Uptime Kuma专门做监控。两台月总成本不到20元。
常见问题
Uptime Kuma的内存占用会越来越大?
默认数据库SQLite,监控历史数据多了体积会涨。在设置里调”保留历史天数”,建议90天——太短没历史曲线可看、太长数据库太大。或者定期手动清理docker exec uptime-kuma rm /app/data/kuma.db再做compact。
怎么监控带登录态的页面?
HTTP监控默认不带Cookie。需要登录的页面选”HTTP(s)-Keyword”类型,或者用脚本方式:写一个curl命令定时执行并判断返回内容,然后把结果传到Uptime Kuma的Push监控类型(被动接收心跳)。
监控频率设多少合适?
60秒对大多数场景足够。付费商业服务(比如Pingdom、UptimeRobot)通常也是60秒。频率小于30秒对VPS和被监控网站都会造成额外负担,反而可能导致超时误报。






