导读:本站介绍过Prometheus + Grafana的服务器指标监控,那是“看内部”的重型方案:多组件、要学查询语言、占几百兆内存。但很多站长真正需要的只是“看外部”:网站还活着吗?挂了几分钟?恢复了吗?Uptime Kuma就是为这个场景生的:单容器部署、内存占用几十兆、自带美观状态页、宕机推送到微信/Telegram/邮件等几十种渠道。这篇从部署到告警配通,五分钟收工。
一、先想清楚你要哪类监控
两类监控解决的问题完全不同:
指标监控(Prometheus系):盯着CPU、内存、带宽、磁盘这些“机器内部”的数字,用来做容量规划和性能排查;
可用性监控(Uptime Kuma):从外部持续探测“服务能不能访问”,回答“我的站挂没挂”。
个人站长常见误区是拿着指标监控当可用性用:CPU曲线一切正常,但Nginx配置改崩了网站早就是502——指标没异常,站已经挂了半小时。两类各干各的活,小站先用可用性监控,指标监控等业务复杂了再上。
二、Docker部署:两条命令
Uptime Kuma官方推荐Docker方式,机器上有Docker环境的直接跑:
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
参数说明:
--restart=always:宿主机重启后容器自动拉起,监控服务自己必须先活着;
-p 3001:3001:Web界面端口,建议改成不常见的端口减少扫描面;
-v uptime-kuma:/app/data:数据持久化,监控历史和配置全在volumes里,换机器迁移就是搬这个卷。
没装Docker的,先装:
curl -fsSL https://get.docker.com | bash
浏览器打开 http://你的IP:3001,首次进入设置管理员账号密码,进入主界面即完成部署。
三、添加监控项:不只是HTTP
点“添加监控”,最常用的几种类型:
HTTP(s):填网站URL,可配置关键字匹配——比如要求页面必须包含登录按钮的文字,防止“返回200但内容是错误页”的假活;
TCP Port:监控数据库、SSH这类纯端口服务,填IP+端口即可;
Ping:盯一台机器的网络可达性;
DNS:监控域名解析是否正常。
实用配置项:
间隔建议60秒(默认),关键业务可到20秒;
重试次数建议2-3次:探测失败先重试再告警,避免网络抖动误报;
确认证书有效期:HTTPS监控勾上后,证书临期也会提醒,续证书忘掉的惨案提前预防。
四、告警推送:微信怎么配
“通知”菜单里内置几十种渠道:Telegram、Discord、邮件、企业微信、钉钉、Server酱等。
以最常用的两个为例:
Telegram Bot:找 @BotFather 创建bot拿token → 拉bot进群或私聊拿chat id → 填入Uptime Kuma通知设置 → 点测试,手机马上收到消息;
邮件渠道:填SMTP服务器、账号、授权码(注意各大邮箱用的是授权码不是登录密码),发件测试通过即生效。
配置完成后回到监控项,把通知渠道勾选上,从此宕机30秒内手机就响。
五、状态页:给访客看的透明看板
“状态页”菜单新建一个,把监控项勾进去,就能生成一个公开访问页:当前服务在线状态、最近90天的可用率柱状图、历史故障记录。
对个人项目来说这是加分项:挂了的时候访客自己能看到“站长知道且在处理”,而不是对着超时页面猜测。状态页支持自定义标题和logo,挂在 status.你的域名 下很体面。
六、进阶玩法与避坑
1. 监控机别和被监控机放同一商家:商家整体故障时监控也瞎了,等于没监控。一台小鸡专职跑Uptime Kuma盯其他机器,互为犄角;
2. 资源占用:单容器常驻内存50M上下,几十个监控项毫无压力,512M小鸡轻松跑;
3. 数据备份:docker volume里的数据定期打包即可,配合本站讲过的restic方案把docker的volumes目录加入备份清单;
4. 想监控多地域视角:可以部署两个实例(比如一台国内一台海外),同时盯同一个站,还能顺带对比出“是站挂了还是某段线路不通”;
5. 升级方式:docker pull新镜像后删容器重建,注意保留同一个volume,历史数据不丢。
结语
可用性监控是所有运维动作里性价比最高的投入:部署成本五分钟,内存成本几十兆,换来的是故障第一时间知道——而不是三天后收到用户私信说你的站打不开了。
推荐的最小组合:一台便宜小鸡跑Uptime Kuma + Telegram或微信推送 + 状态页公开。部署完成后记得人为制造一次故障(停掉Nginx几十秒)验证推送链路真的通了,监控系统的可用性同样需要被验证。



