想监控服务器,但不想再买一台服务器
运维监控有个悖论:为了不让服务器挂掉,你得先有一台不会挂的监控服务器。Zabbix、Prometheus 这些工具功能强大,但都需要一台独立的服务器来跑。如果监控服务器自己先挂了,告警也收不到。
CF-Server-Monitor 绕开了这个问题——它把监控后端直接放到 Cloudflare Workers 上,用 D1 做数据库,用 Durable Objects + WebSocket 做实时推送。整个监控系统不需要你维护任何服务器,Cloudflare 的免费额度就足够了。
项目 288 Star,MIT 协议。作者从另一个开源项目 Fork 后做了深度二次开发,一直在持续迭代。
架构
整个系统分为三层:
- 探针(客户端)——运行在被监控的服务器上,采集 CPU、内存、磁盘、网络、进程数等指标,定时上报。支持 Linux(systemd/OpenRC/procd)、Windows
- Workers(后端)——接收上报数据,写入 D1 数据库,通过 Durable Objects 广播给所有连接的浏览器
- Vue 3 前端——单页应用,包含仪表盘卡片视图、表格视图、地图视图、服务器详情页、管理后台
上报即推送——探针发数据上来,浏览器端 WebSocket 实时刷新,不需要轮询。
部署(免费)
前提:有一个 Cloudflare 账号和一个 GitHub 账号。
推荐方式:GitHub 连接部署
- Fork 项目到自己的 GitHub
- Cloudflare Workers & Pages → Create → "Continue with GitHub",选你 Fork 的项目
- Project Name 填
cf-server-monitor - Build command 填
npm run build:frontend - 部署完成后在 Settings → Variables 添加
API_SECRET(你的密码) - 重新部署,等 30 秒
之后通过 你的项目名.你的子域.workers.dev/admin 进入后台,默认密码就是你设的 API_SECRET。
优点:Cloudflare 会自动检测 GitHub 代码变更并重新部署,升级很方便。
替代方式:GitHub Actions
如果有更多自定义需求,可以在 Fork 仓库里配置 Actions Secrets 然后通过 GitHub Actions 自动部署。
添加服务器
在管理后台点击「添加服务器」→ 填写名称 → 复制安装命令 → 在目标服务器上运行:
curl -sL https://你的域名.workers.dev/install.sh | bash -s install \
-id= -secret= -url=
默认 60 秒上报一次。支持自定义上报间隔、Ping 检测方式、流量重置日等参数。
核心功能
仪表盘
访问根路径 workers.dev/ 看到所有服务器概览:
- 卡片视图——每台服务器一张卡片,显示实时网速和本月流量
- 表格视图——详细数据列表,适合多服务器对比
- 地图视图——基于 Leaflet 的世界地图展示服务器分布
- 国家筛选器——按国家过滤服务器
详情页
点击任意服务器,进入详情页:
- 实时 CPU、内存、磁盘、网络、负载
- 1/3/6/12/24 小时历史趋势图(Chart.js)
- 国内三大运营商延迟追踪(电信/联通/移动 + 字节)
离线告警
支持两种渠道:
- Telegram——通过 BotFather 创建机器人,配置 Token 和 Chat ID
- 企业微信——创建群机器人,填入 Webhook URL 即可
管理后台
- 服务器 CRUD + 拖拽排序
- 服务器隐藏(对未登录用户不可见)
- Turnstile 人机验证、JWT 密钥配置
- 月流量统计
- 数据库版本升级
D1 免费额度够用吗?
这是 Cloudflare Workers 方案最常被问到的问题。作者做了大量优化:
| 指标 | 单台/天(60s 间隔) | 免费额度 | 可支持 |
|---|---|---|---|
| 写入行 | ~2.88k | 100k/天 | 约 34 台 |
| 读取行 | ~1.6k(缓存后) | 5M/天 | 非常充裕 |
超出额度不会扣费,只会限制访问,第二天自动重置。个人或小团队使用绰绰有余。
支持哪些系统?
| 系统 | 服务管理 | 安装方式 |
|---|---|---|
| Ubuntu/Debian/CentOS/RHEL/Fedora | systemd | install.sh |
| Alpine Linux | OpenRC | install-alpine.sh |
| OpenWrt / LEDE | procd | install-openwrt.sh |
| Windows | 后台运行 | Python GUI |
和类似工具对比
| CF-Server-Monitor | 哪吒监控 | Zabbix | |
|---|---|---|---|
| 基础设施 | Cloudflare Workers(免费) | 需要 VPS | 需要服务器 |
| 实时性 | WebSocket 实时推送 | 轮询 | 轮询 |
| 国内延迟 | 三网追踪(内置) | 需额外配置 | 需额外配置 |
| 部署复杂度 | 极低(点几下就行) | 中等 | 高 |
我的看法
CF-Server-Monitor 是那种「把 Cloudflare 能力用到极致」的项目。Workers 做后端、D1 做数据库、Durable Objects 做实时推送、Turnstile 做验证——整套 Cloudflare 全家桶用得很到位。
它的最大优势就是零成本。对于有十几台服务器的个人站长或小团队来说,不用买 VPS 跑监控系统,直接在 Cloudflare 上搭一个,每个月账单是 0 元。
另外我对它的客户端支持印象深刻——从 Ubuntu 到 Alpine 到 OpenWrt 到 Windows,全都覆盖了。这在同类开源项目里很少见。
不足之处:没有组织/团队协作功能,告警渠道只有 Telegram 和企微(没有邮件/Slack/飞书),数据库用的是 D1 而不是更通用的方案。但这些对于个人用户来说都不是大问题。
如果你有服务器在跑、用 Cloudflare、不想再为监控多花一份服务器钱——这个项目值得一试。
项目地址:huilang-me/CF-Server-Monitor · 许可:MIT · 🌟 288 Stars(截至 2026-06-16)