在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

第 3 步:点击部署并确认成功
点 部署 按钮,Cloudflare 会自动拉取代码、构建、部署。部署成功时,底部会显示 ✨ Success! Build completed.,说明核心部分已经跑起来了。
配置环境变量
部署成功后,还需要配置一个"后台登录密码"用的环境变量。
在当前 Workers & Pages 页面,点击 设置(Settings)。
找到 变量和密钥(Variables and Secrets),添加一个变量
API_SECRET,值填一个你自定义的密码。
这里有个坑要提醒:建议用随机密码,且不要包含 % 这类特殊字符,否则可能在后续解析时出问题。

⚠️ 添加完变量后记得重新部署一次,让环境变量生效。
添加自定义域名
默认的 workers.dev 地址不太方便,建议绑定自己的域名。在当前项目页面点击 域 / 域 和 路由,添加自定义域名即可。

绑定好后,等证书生效,就能通过自己的域名访问后台了。
使用
部署和配置完成,接下来就是正式使用。
1. 登录后台
用自定义域名访问后台,默认用户名是 admin,密码就是你刚在环境变量里设置的 API_SECRET。

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

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

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

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

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

怎么确认监控真的生效了
部署完,按下面几步自检:
能登录后台(admin + API_SECRET)→ 前端部署成功。
能添加服务器并拿到安装命令 → 后端接口正常。
目标服务器跑完安装命令后,后台显示"上线" → 探针链路通了,监控真正生效。
(可选)故意重启一下目标服务器,看后台状态是否变化、通知是否触发。
常见问题与排错
1. 部署失败 / 没看到 Build completed
确认项目名称、构建命令填对(构建命令是
npm run build:frontend)。确认 GitHub 已正确关联授权,重新触发一次部署。
2. 登录后台提示密码错误
确认密码就是
API_SECRET的值。变量添加后有没有重新部署?没有的话新值不生效。
3. 探针装不上 / 服务器不上线
检查目标服务器能否正常访问 Cloudflare 的采集端点(可能要放行对应端口/域名)。
确认安装命令是在要监控的那台服务器上执行的,而不是在别的机器上。
4. 环境变量含特殊字符导致异常
回到配置步骤,把
API_SECRET改成不含%等特殊字符的随机密码,重新部署。
我的结论
这套方案实际用下来,最大的价值就是用 Cloudflare 的稳定去兜底那些不稳定免费服务器的监控——不用自己再养一台机器来盯监控,还免费。把甲骨文那台容易抽风的机器交给它盯着,哪个服务掉了、什么时候掉的,后台看得清清楚楚,再配合通知,基本能做到"机器挂了第一时间知道"。
要说缺点,主要是监控项偏"服务器资源/状态"层面,更复杂的业务级监控(比如某个接口返回异常)它不擅长,得另想办法。但如果你的需求是盯多台 VPS 的存活和基础资源,这套方案非常省心划算。
如果你也在用免费或廉价的 VPS,又总担心它悄悄挂掉,强烈建议按上面的步骤配一套,十几分钟换一个 24 小时值班的"服务器管家"。