2026 Uptime Kuma 自建服务监控:Docker 一键部署,所有服务状态一目了然

2669 字
13 分钟
2026 Uptime Kuma 自建服务监控:Docker 一键部署,所有服务状态一目了然

在 PVE 上跑了七八个 Docker 服务,NPM 反代配好了域名,Tailscale 打通了远程访问——看起来一切正常。但怎么知道这些服务是不是真的在正常运行?Immich 半夜挂了没人知道,Jellyfin 的转码服务悄无声息地停了,AdGuard Home 的 DNS 解析突然不响应了——而你可能要到第二天打开网页要用的时候才发现。这种”我以为服务在跑,其实早就挂了”的情况,跑过自部署的人多少都遇到过。

检查服务状态靠”手动刷新”根本不现实。你不可能每分钟去登录一遍 PVE 看虚拟机状态、去刷新每个服务的网页看能不能打开、去查 DNS 解析正不正常。而且有些问题是你登录了也看不出来的——比如 DNS 解析变慢了但没挂、API 响应超时但页面能打开、SSL 证书快过期了但浏览器还没报错。这些问题不及时处理,等用户或家人来告诉你”服务打不开”的时候就晚了。

Uptime Kuma 就是来解决这些问题的。它是一个开源的服务监控工具,Docker 一键部署后,你只需要填入要监控的服务地址和期望的检查间隔,它就会定时给你的服务发 HTTP 请求或者 Ping,如果服务挂了或者响应太慢,通过 Telegram、邮件、企业微信等方式通知你。而且它自带一个漂亮的状态页,可以公开给朋友或者同事看——“这些服务目前都是正常的”。

部署好之后的效果:你在 PVE 上跑的所有服务——Jellyfin、Immich、AdGuard Home、FreshRSS、n8n——在 Uptime Kuma 的仪表盘上全部显示为绿色。某天半夜 Jellyfin 因为内存泄露挂了,两分钟后你的手机收到企业微信通知:“Jellyfin 宕机了”。你从床上爬起来在 PVE 上重启容器,三分钟后通知又来了:“Jellyfin 已恢复”。继续睡。没有这个工具的话,你第二天早上才会发现,然后不知道它到底挂了多久。


一、Uptime Kuma 能监控什么#

监控类型检测方式适用场景
HTTP(S)发送 HTTP 请求,检查返回码和关键字网站、Web 服务、API 接口
PingICMP 探测目标地址服务器是否在线
TCP 端口尝试建立 TCP 连接数据库、SSH 等端口级服务
DNS查询域名解析是否正常DNS 服务器健康检查
Docker 容器检查容器运行状态监控所有容器是否正常运行
关键字检测HTTP 响应中搜索指定文本确认页面内容正确,非 502 错误页

对自部署用户来说最常用的就是 HTTP 监控和关键字检测。比如监控 Jellyfin 的 8096 端口,Uptime Kuma 每秒请求一次,如果连续 3 次超时就算宕机。


二、Docker 部署#

一个 Compose 文件搞定。Uptime Kuma 使用 SQLite 存储所有监控数据,不需要额外装 MySQL 或者 PostgreSQL,省一个容器,也少一个需要监控的服务。

services:
uptime-kuma:
image: louislam/uptime-kuma:latest
container_name: uptime-kuma
restart: unless-stopped
ports:
- "3001:3001"
volumes:
- ./uptime-kuma/data:/app/data

3001 是管理界面端口。如果你已经在用 NPM 管理域名,可以配个子域名反代到 3001 端口,方便在公网访问管理界面。不过 Uptime Kuma 本身跑在内网、通过 Tailscale 访问也完全可以——监控服务没必要暴露到公网。

Terminal window
docker compose up -d

启动后访问 http://你的IP:3001,注册一个管理员账号。注册信息存在本地的 ./uptime-kuma/data 目录里,不会传到任何外部服务器。登录后会看到一个空白的仪表盘——中间一个大大的加号按钮,点它添加你的第一个监控项。

三、添加第一个监控项#

点「添加监控」,填入服务信息:

字段填写内容说明
名称比如「Jellyfin方便识别的名字,通知里也会用这个名字
监控类型HTTP(s)最常用的方式
URLhttps://jellyfin.你的域名.com你的服务地址
间隔60 秒每隔多久检查一次。普通服务 60 秒够用
超时时间30 秒多久没响应算超时
重试次数3 次连续失败几次才算宕机,避免网络抖动误报

点保存后 Uptime Kuma 就开始监控了。几秒后仪表盘上会显示绿色「运行中」的标签。如果是红色「宕机」——说明服务有问题或者地址填错了。

关键字检测很实用:有些服务虽然返回 200,但页面其实是错误的(比如 Nginx 默认页代替了真实服务)。在高级选项里打开”关键字检测”,搜索你的服务首页上一定会出现的关键词——比如 Jellyfin 搜索”Jellyfin”、Immich 搜索”Immich”。如果响应里没有这个关键词,Uptime Kuma 也会标记为宕机。

四、配置通知#

服务挂了光在仪表盘上显示红色不够——你得第一时间知道。Uptime Kuma 支持几十种通知方式。

点右上角头像 →「设置」→「通知」→「添加通知」:

通知方式配置难度推荐指数说明
Telegram⭐⭐ 中等⭐⭐⭐⭐⭐需要创建 Bot,国内网络需要梯子
邮件 (SMTP)⭐⭐ 中等⭐⭐⭐⭐自建邮箱或 QQ/163 邮箱的 SMTP
企业微信机器人⭐ 简单⭐⭐⭐⭐⭐最推荐。创建群聊→添加机器人→复制 Webhook URL
Webhook⭐ 简单⭐⭐⭐⭐可以接入 n8n 等自动化平台
Bark (iOS)⭐ 简单⭐⭐⭐iPhone 推送通知

国内用户最推荐企业微信机器人——不需要搭梯子、配置简单、推送及时。在微信群里添加一个机器人,复制 Webhook 地址,粘贴到 Uptime Kuma 里就可以。服务挂了微信群直接弹出消息。而且可以建一个单独的”服务监控群”,把运维相关的通知都集中到这一个群里,不干扰其他工作群的聊天。

Telegram 也很好用,Bot API 稳定可靠,但需要国内服务器能访问 Telegram 的 API 地址——可能需要给服务器配代理。邮件是兜底方案,配置 SMTP 后任何能收邮件的设备都能收到通知,但时效性不如即时通讯工具。

建议配置至少两种通知方式——主要用企业微信或 Telegram,再加一个邮件做备份。万一主要通知渠道出了问题(比如微信挂了),邮件还能补上。配置好后点「测试」按钮,收不到通知就检查配置。

五、配置状态页#

Uptime Kuma 可以生成一个公开的状态页,朋友或者同事能看到你的服务是否正常。

点「状态页」→「添加状态页」:

  1. 起个名字,比如「我的服务状态」
  2. 选一个好看的域名(或者就用 Uptime Kuma 的地址)
  3. 勾选要展示哪些监控项——不想公开的可以不开
  4. 可以选择是否需要密码保护

保存后你会得到一个链接,打开就能看到所有服务的实时状态。绿色=正常,红色=宕机,黄色=响应缓慢。这个状态页对展示给朋友或者同事看很实用——你不用每次都去确认服务是否正常运行,打开状态页扫一眼就全知道了。也可以把状态页嵌入到自己的个人网站或者导航页里,访客能直接看到你看的各项服务运行状态。

六、进阶配置#

监控 Docker 容器: 在 Uptime Kuma 的服务器上装 Docker 后,可以选”Docker”监控类型,直接监控本机或远程 Docker 主机的容器状态。需要配置 Docker Socket 连接。

SSL 证书到期提醒: 添加一个 HTTP 监控,URL 填你的域名,在高级设置里勾选”检查 SSL 证书有效期”。证书到期前 30 天会自动通知你——这样就再也不会忘了续期导致网站打不开了。之前用 Let’s Encrypt 证书的人应该都有过”啊证书过期了”的尴尬时刻,Uptime Kuma 直接帮你排掉这个雷。

Uptime Kuma 配合 PVE: 如果把 Uptime Kuma 部署在 PVE 的虚拟机上,建议顺便监控 PVE 宿主机的 8006 端口。宿主机宕机了直接收到通知,能第一时间处理。

七、常见问题#

Q:监控项一直显示”宕机”但服务明明能打开? 检查 URL 是不是填了 localhost 或者 127.0.0.1——Uptime Kuma 运行在容器里,localhost 指向容器自己,不是你的服务。填你的内网 IP 或者域名地址。

Q:通知收不到? 检查通知方式的配置。企业微信机器人最常见的问题是 Webhook 地址填错了。可以在 Uptime Kuma 里测试通知——设置页面点「测试」,工具会发一条测试消息。

Q:Uptime Kuma 本身需要监控吗? 好问题。Uptime Kuma 如果挂了,你就收不到任何通知了。建议搭配一个第三方的免费监控服务(比如 Better Uptime 的免费版)专门盯着 Uptime Kuma 的地址。或者在 PVE 上设置一个定时任务,每分钟 curl 一下 Uptime Kuma 的页面,页面打不开就发邮件。不过对小规模自部署用户来说,Uptime Kuma 本身宕机的概率很低——它自己就一个容器,不依赖其他服务。

Q:监控太多会不会占用资源? 不会。Uptime Kuma 本身非常轻量,即使监控 50 个服务,每 60 秒检查一次,CPU 占用也基本在 1% 以下。内存占用不到 200MB。跟其他服务放在同一台机器上毫无压力。

延伸阅读#


Uptime Kuma 部署一次后基本不用管,它默默在后台每分钟检查你的所有服务。服务正常时你几乎感觉不到它的存在——仪表盘上全是绿色,安安静静。出问题了它第一时间通知你,不用你整天盯着甚至半夜惊醒去查服务状态。自部署全家桶的最后一块拼图——搭了的服务你心里有数,不用猜它是不是还在跑。

推荐指数:⭐⭐⭐⭐⭐(自部署用户必备)

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
2026 Uptime Kuma 自建服务监控:Docker 一键部署,所有服务状态一目了然
https://www.kshare.top/posts/2026-uptime-kuma-自建服务监控docker-一键部署所有服务状态一目了然/
作者
Kshare
发布于
2026-05-30
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Kshare
Hello, I'm Kshare.
公告
站点已开启广告(类型:弹窗广告),给您带来的不便敬请谅解。如有更好的广告建议,欢迎发送邮件至 t9uzrz6u@anonaddy.me,感谢您的支持!
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
187
分类
9
标签
190
总字数
490,175
运行时长
0
最后活动
0 天前

文章目录