Uptime Kuma + Server酱:微信实时接收服务器告警

2 阅读2分钟

背景 服务器上跑了几个服务,平时没人盯着。有天半夜 Nginx 挂了,第二天早上才发现,网站挂了 8 小时。

想做到:服务一挂,微信立刻收到通知。

原因 服务器不会主动告诉你它病了。

要让它"会说话",需要两个东西:

角色工具作用
监控Uptime Kuma定期检查服务状态
通知Server酱把告警推到微信
Uptime Kuma 负责"发现异常",Server酱负责"送达消息"。
解决
第一步:部署 Uptime Kuma
用 Docker Compose:
services:
  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:
      - TZ=Asia/Shanghai

volumes:
  uptime-kuma:
docker compose up -d

浏览器通过 SSH 隧道访问 http://localhost:3001,首次进入创建管理员账号。 第二步:注册 Server酱 访问 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 次才发告警(防止网络抖动误报) 第五步:验证 手动触发一次告警:

# 停掉大屏容器
docker stop dashboard-dashboard_a-1
[监控告警] 大屏健康检查 已宕机
时间: 2026-10-07 15:30:00

等 3 分钟(60 秒 × 3 次重试),微信应该收到:

[监控告警] 大屏健康检查 已宕机
时间: 2026-10-07 15:30:00

恢复:

docker start dashboard-dashboard_a-1

再过 1 分钟,微信收到"恢复"通知。

三个坑 坑 1:Uptime Kuma 端口直接暴露公网

默认端口 3001,如果绑 0.0.0.0:3001,全世界都能访问你的监控面板。改成 127.0.0.1:3001,通过 SSH 隧道访问:

ssh -L 3001:127.0.0.1:3001 YOUR_USER@YOUR_SERVER_IP

然后本地浏览器打开 http://localhost:3001。

坑 2:重试次数设成 0

网络抖动是常态。设成 0 会导致"一闪断就报警",微信被轰炸。至少设 2-3 次重试。

坑 3:只监控了 HTTP,忘了服务器本身

Uptime Kuma 可以监控:

HTTP(s):网站能不能访问

TCP 端口:服务端口通不通

Ping:服务器活不活

建议至少三条:

Ping 服务器

HTTP 大屏

TCP 数据库端口

阅读分享:今天给大家分享一本神作《Wireshark网络分析就这么简单》,读完你会手痒,想亲手抓一段自己的网络流量看看。