banner
约 1,500 字
5 分钟

在Cloudflare上免费搭建多服务器监控系统

摘要

最近甲骨云的免费服务器总是不太稳定,有些服务像是域名反代如果停掉会很麻烦,所以需要一个 24 小时运行的服务器监控系统,这个部署在 Cloudflare 上的项目就很合适。

前言

玩免费服务器的朋友应该都有体会:"免费"往往意味着"不稳定"。我最近在用甲骨文的免费云服务器(Oracle Cloud 的 Always Free 套餐),跑着域名反代、一些自托管服务。问题来了——这家的免费机器偶尔会抽风,如果某个关键服务(比如域名反代)悄悄挂掉,我可能很久才发现,那就很麻烦了。

所以我需要一个能 7×24 小时盯着服务器的监控系统:谁挂了、什么时候挂的、CPU/内存/流量什么情况,都能一眼看到,最好还能主动通知我。

找了一圈,发现有个部署在 Cloudflare 上的开源项目很合适——它利用 Cloudflare Workers 免费额度,搭一个多服务器监控(探针)系统,不用自己养服务器,而且 Cloudflare 的稳定性比那些免费 VPS 强太多。本文就完整记录部署和配置过程。

这个监控系统能做什么

先明确它能帮你解决什么:

  • 多服务器监控:可以同时监控多台服务器(不管是不是甲骨文,自己买的 VPS 也行)。

  • 实时探针:在每台目标服务器上装一个探针,把服务器状态实时上报。

  • 可视化状态:在后台看服务器在线状态、运行时长、价格、流量等信息。

  • 通知提醒:支持开启通知,服务器异常时能第一时间告诉你。

  • 零服务器成本:前端和探针采集都跑在 Cloudflare 上,个人用基本免费。

部署

整体流程:Fork 项目 → Cloudflare 关联 GitHub 部署 → 配环境变量 → 加域名 → 登录装探针

第 1 步:Fork 项目

先把项目 Fork 到你的 GitHub 账户,方便 Cloudflare 关联部署。

项目地址:https://github.com/huilang-me/CF-Server-Monitor

打开后点右上角 Fork,等它复制到你的账号下。

第 2 步:在 Cloudflare 里关联 GitHub 部署

登录 Cloudflare 控制台,进入 Workers & Pages,选择 Continue with GitHub(关联你的 GitHub 仓库)。

关键配置如下:

  • 项目名称:填写 cf-server-monitor

  • 构建命令:填写 npm run build:frontend

  • 部署命令:保留默认值 npx wrangler deploy

Cloudflare 关联 GitHub 部署配置

第 3 步:点击部署并确认成功

部署 按钮,Cloudflare 会自动拉取代码、构建、部署。部署成功时,底部会显示 ✨ Success! Build completed.,说明核心部分已经跑起来了。

配置环境变量

部署成功后,还需要配置一个"后台登录密码"用的环境变量。

  1. 在当前 Workers & Pages 页面,点击 设置(Settings)。

  2. 找到 变量和密钥(Variables and Secrets),添加一个变量 API_SECRET,值填一个你自定义的密码

这里有个坑要提醒:建议用随机密码,且不要包含 % 这类特殊字符,否则可能在后续解析时出问题。

配置 API_SECRET 环境变量

⚠️ 添加完变量后记得重新部署一次,让环境变量生效。

添加自定义域名

默认的 workers.dev 地址不太方便,建议绑定自己的域名。在当前项目页面点击 域 / 域 和 路由,添加自定义域名即可。

添加自定义域名

绑定好后,等证书生效,就能通过自己的域名访问后台了。

使用

部署和配置完成,接下来就是正式使用。

1. 登录后台

用自定义域名访问后台,默认用户名是 admin,密码就是你刚在环境变量里设置的 API_SECRET

登录监控系统后台

2. 添加要监控的服务器

登录后,在后台添加一台需要监控的服务器。添加时系统会生成一条安装命令(探针的安装脚本),复制它。

后台添加服务器并获取安装命令

3. 在目标服务器上执行探针安装

SSH 登录到你要监控的那台目标服务器,把刚才复制的安装命令粘贴执行。执行完成后,探针就装好并在后台注册了。

在目标服务器上执行探针部署

4. 确认服务器上线

回到监控后台,如果看到这台服务器已经上线,就说明探针和目标服务器连接成功了。

后台看到服务器上线即连接成功

5. 查看服务器状态

服务器上线后,就可以在后台实时查看它的各项状态了。你可以根据需求,监控服务器的运行时长、价格、流量等信息。

查看服务器运行时长/价格/流量等状态

6. 个性化设置

后台还支持自定义外观、主题,以及开启通知提醒——建议打开通知,这样服务器异常时能第一时间收到提醒,不用天天自己盯。

后台设置外观、主题、开启通知

怎么确认监控真的生效了

部署完,按下面几步自检:

  1. 能登录后台(admin + API_SECRET)→ 前端部署成功。

  2. 能添加服务器并拿到安装命令 → 后端接口正常。

  3. 目标服务器跑完安装命令后,后台显示"上线" → 探针链路通了,监控真正生效。

  4. (可选)故意重启一下目标服务器,看后台状态是否变化、通知是否触发。

常见问题与排错

1. 部署失败 / 没看到 Build completed

  • 确认项目名称、构建命令填对(构建命令是 npm run build:frontend)。

  • 确认 GitHub 已正确关联授权,重新触发一次部署。

2. 登录后台提示密码错误

  • 确认密码就是 API_SECRET 的值。

  • 变量添加后有没有重新部署?没有的话新值不生效。

3. 探针装不上 / 服务器不上线

  • 检查目标服务器能否正常访问 Cloudflare 的采集端点(可能要放行对应端口/域名)。

  • 确认安装命令是在要监控的那台服务器上执行的,而不是在别的机器上。

4. 环境变量含特殊字符导致异常

  • 回到配置步骤,把 API_SECRET 改成不含 % 等特殊字符的随机密码,重新部署。

我的结论

这套方案实际用下来,最大的价值就是用 Cloudflare 的稳定去兜底那些不稳定免费服务器的监控——不用自己再养一台机器来盯监控,还免费。把甲骨文那台容易抽风的机器交给它盯着,哪个服务掉了、什么时候掉的,后台看得清清楚楚,再配合通知,基本能做到"机器挂了第一时间知道"。

要说缺点,主要是监控项偏"服务器资源/状态"层面,更复杂的业务级监控(比如某个接口返回异常)它不擅长,得另想办法。但如果你的需求是盯多台 VPS 的存活和基础资源,这套方案非常省心划算。

如果你也在用免费或廉价的 VPS,又总担心它悄悄挂掉,强烈建议按上面的步骤配一套,十几分钟换一个 24 小时值班的"服务器管家"。

END