
背景服务器上跑了几个服务平时没人盯着。有天半夜 Nginx 挂了第二天早上才发现网站挂了 8 小时。想做到服务一挂微信立刻收到通知。原因服务器不会主动告诉你它病了。要让它会说话需要两个东西角色工具作用监控Uptime Kuma定期检查服务状态通知Server酱把告警推到微信Uptime Kuma 负责发现异常Server酱负责送达消息。解决第一步部署 Uptime Kuma用 Docker Composeservices: uptime-kuma: image: louislam/uptime-kuma:1 container_name: uptime-kuma restart: always ports: - 127.0.0.1:3001:3001 volumes: - uptime-kuma:/app/data environment: - TZAsia/Shanghai volumes: uptime-kuma:dockercompose up-d浏览器通过 SSH 隧道访问 http://localhost:3001首次进入创建管理员账号。第二步注册 Server酱访问 https://sct.ftqq.com/用微信扫码登录。进入SendKey页面复制你的 SendKey。免费版每天 5 条消息够用。第三步在 Uptime Kuma 里配置通知右上角 → 设置 → 通知点 设置通知通知类型选 Server酱填入 SendKey点 测试微信立刻收到测试消息第四步添加监控项点 添加新建监控项字段填什么监控类型HTTP(s)名称大屏健康检查URLhttp://127.0.0.1:8081/api/health心跳间隔60 秒重试次数3通知勾选刚才配的 Server酱含义每 60 秒访问一次 /api/health连续失败 3 次才发告警防止网络抖动误报第五步验证手动触发一次告警# 停掉大屏容器dockerstop dashboard-dashboard_a-1[监控告警] 大屏健康检查 已宕机 时间: 2026-10-07 15:30:00等 3 分钟60 秒 × 3 次重试微信应该收到[监控告警] 大屏健康检查 已宕机 时间: 2026-10-07 15:30:00恢复dockerstart dashboard-dashboard_a-1再过 1 分钟微信收到恢复通知。三个坑坑 1Uptime Kuma 端口直接暴露公网默认端口 3001如果绑 0.0.0.0:3001全世界都能访问你的监控面板。改成 127.0.0.1:3001通过 SSH 隧道访问ssh-L3001:127.0.0.1:3001 YOUR_USERYOUR_SERVER_IP然后本地浏览器打开 http://localhost:3001。坑 2重试次数设成 0网络抖动是常态。设成 0 会导致一闪断就报警微信被轰炸。至少设 2-3 次重试。坑 3只监控了 HTTP忘了服务器本身Uptime Kuma 可以监控HTTP(s)网站能不能访问TCP 端口服务端口通不通Ping服务器活不活建议至少三条Ping 服务器HTTP 大屏TCP 数据库端口阅读分享今天给大家分享一本神作《Wireshark网络分析就这么简单》读完你会手痒想亲手抓一段自己的网络流量看看。