Docker 部署 Uptime-Kuma,接入飞书机器人告警

服务挂掉最怕的不是挂,是你不知道它挂了。等用户来反馈,损失已经造成了。Uptime-Kuma 是最省事的自托管监控之一:一条 Docker 命令起服务,界面点几下就能加监控项。

它的工作方式

监控与告警链路

Uptime-Kuma 按你设的间隔探测目标 → 状态变化时触发通知 → 飞书机器人把消息推到群里。

操作步骤速览

监控告警搭建步骤

一、一条命令起服务

步骤 1:启动 Uptime-Kuma

docker run -d --restart=always \
  -p 3001:3001 \
  -v uptime-kuma:/app/data \
  --name uptime-kuma \
  louislam/uptime-kuma:1

-v uptime-kuma:/app/data 这句别省——监控历史和配置都在里面,不挂卷容器一重建就全丢了。起来后访问 http://你的IP:3001,第一次打开会让你设管理员账号。

二、加监控项

步骤 2:添加监控项

点「添加新的监控项」,常用四类:

类型 用途 例子
HTTP(s) 盯网页是否正常 你的博客首页
关键词 页面里是否含某段文字 首页出现「最新文章」
TCP 端口 端口是否在监听 22 / 3306
Ping 主机是否在线 服务器 IP

间隔建议 60 秒起步。

三、接飞书机器人

步骤 3:接入飞书机器人

先在飞书侧:群设置 → 群机器人 → 添加「自定义机器人」→ 复制 Webhook 地址。

再在 Kuma 侧:设置 → 通知 → 添加通知 → 类型选 Feishu (Lark),把 Webhook 地址粘进去 → 点「测试」。测试消息能收到,就说明通了。

四、给站点加一层保护

步骤 4:反代并加访问保护

监控地址别直接暴露公网,前面的 Nginx 加一段反代 + Basic 认证:

location / {
    auth_basic "restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
    proxy_pass http://127.0.0.1:3001;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

用 htpasswd -c /etc/nginx/.htpasswd admin 生成密码文件。(WebSocket 那两行是因为 Kuma 状态页用了长连接,不加会一直转圈。)

小结

从零到「掉线自动通知手机」,这套下来不到十分钟。之后再也不用靠感觉判断服务有没有活着。

常见问题

Uptime-Kuma 占用资源大吗?

很小。单容器常驻内存几十 MB,1 核 1G 的小服务器也能跑,适合和别的服务共用一台机器。

探测间隔设多少合适?

建议 60 秒起步。设太短既没必要,还可能被目标站当成攻击,把你的监控 IP 封掉。

相关阅读

上一篇 用 Cloudflare R2 搭免费图床:10GB 存储 + 零出口费 + 防盗链
下一篇 OpenList 部署实战:Alist 换血之后,自建网盘聚合的正确姿势(2026)