huilang-me / CF-Server-Monitor
git clone https://github.com/huilang-me/CF-Server-Monitor.git
一个基于 Cloudflare Workers + D1 + Durable Objects 的免费多服务器监控探针系统,支持实时监控、离线告警,到期通知,历史数据查看、延迟追踪、地图展示等功能。兼容主流Linux系统,Alpine Linux,OpenWrt,macOS,群晖 DSM、飞牛 fnOS、Windows系统。
+41
stars, 24h · #939
+~187
stars, 7 days · #1,200
+~800
stars, 30 days · #1,057
2.7k
★ total · +8% this week
2.6k
forks · 3 open issues
Star history (as recorded here)
LanguageJavaScript
LicenseMIT
Created2026-05-26 (5mo ago)
Last pushtoday
Watchers2
OwnerUser
Links
- GitHub: github.com/huilang-me/CF-Server-Monitor
- Homepage: https://demo.huilang.me/
- Releases · Issues · Hacker News mentions
README excerpt
# CF-Server-Monitor 基于 Cloudflare Workers、D1 和 Durable Objects 的轻量级多服务器监控面板。 简体中文 | English 在线演示 · API 文档 · Go 探针文档 · 主题开发 · 主题开发 AI 提示词 ## 项目简介 CF-Server-Monitor 是一个部署在 Cloudflare Workers 上的服务器监控系统。服务器端安装 Agent 后会单向上报指标到 Worker,数据写入 D1,并通过 Durable Objects + WebSocket 推送到前端,实现免费托管、低维护的实时监控。 支持主流 Linux 发行版、Alpine Linux、OpenWrt、macOS、群晖 DSM、飞牛 fnOS、Windows 等系统,并提供 Docker 镜像部署方式。 高安全性:Agent 仅单向上报指标,不提供 WebSSH、远程命令下发或主控通道;支持非 root 运行,可降低监控组件被利用后的影响范围。 ## 目录 - 对比优势 - 特性 - 系统架构 - 版本说明 - 快速部署 - 首次使用 - Agent 参数与安全建议 - 配置说明 - 通知与告警 - 安全建议 - 主题与外观 - 升级与维护 - 本地开发 - 项目结构 - 常见问题 - 界面预览 - 支持项目 ## 对比优势 相比传统主控式探针,CF-Server-Monitor 更适合低成本、低维护和安全优先的监控场景: - 免费托管:面板、API、数据库和实时推送都运行在 Cloudflare 上,按免费额度友好设计;默认 60 秒上报间隔可支持约 60 台服务器,改为 120 秒后理论上可翻倍。 - 单向上报更安全:没有 WebSSH、没有远程命令下发、没有主控通道;Agent 只向 Worker 上报指标。 - 功能覆盖完整:实时指标、历史图表、地图展示、离线通知、资源告警、到期提醒、主题商店、多语言和移动端适配都已内置。 - 参数动态下发:后台可修改 Ping 节点、采集间隔、HTTP 上报间隔、WSS 上报间隔、统计网卡、流量重置日、上下行流量校正等参数,Agent 后续自动拉取并生效;Worker 地址、`API_SECRET` 和自动更新开关变更需要重新执行安装命令。 - 支持非 root 安装:支持 `systemd --user` 的 Linux 可使用普通用户安装,探针文件写入 `~/.cf-probe/`。 - 上报时间自动校准:Go Agent 会使用 Worker 响应中的 HTTP `Date` 头校正样本时间和 `boot_time`,降低服务器本地时间错误对历史图表的影响;不会修改系统时间。 ## 特性 | 模块 | 能力 | | --------- | -------------------------------------------------------------------------------- | | 实时监控 | CPU、GPU、内存、交换分区、磁盘、磁盘 IO、网络、连接数、进程数、负载、运行时间 | | 历史数据 | 7 天历史图表、长时段采样、实时网速、月流量统计与校正 | | 网络质量 | 电信、联通、移动、BGP 节点延迟与丢包率追踪;三网详情开启时首页从 D1 最近 2 小时抽样最多 20 个真实点并缓存 5 分钟 | | 多视图前台 | 条形图、环形图、表格、地图视图,支持桌面端和移动端 | | 管理后台 | 服务器增删改查、拖拽排序、隐藏服务器、导入导出、批量删除、数据库维护 | | 多系统 Agent | 主流 Linux、Alpine Linux、OpenWrt、群晖 DSM、飞牛 fnOS、FreeBSD、macOS、Windows,支持 Docker 镜像部署;默认 Go 版本,保留 Shell/PowerShell 版本 | | 实时推送 | Durable Objects + WebSocket,Agent 上报后前端即时刷新 | | 告警通知 | 离线告警、恢复通知、到期提醒、资源负载告警 | | 多语言 | 前端内置中文、英文和西班牙语(拉美)切换;通知消息支持中文、英文和西班牙语;文档提供中文与英文入口 | | 多站点 | 支持 GitHub Pages 静态前台和多个 Worker API 聚合展示 | | 小组件 | 提供 iOS Scriptable 小组件脚本,适合移动端快速查看 | | 安全控制 | API Secret、管理员密码、JWT、Turnstile、CORS、CSP 白名单 | | 主题生态 | 内置主题、Mikus 模式、主题商店、第三方主题反代与预览 | | 额度友好 | 按月表轮换、历史查询采样、缓存与限流设计,适配 Cloudflare 免费额度 | ## 系统架构 [code] 核心数据流: 1. 在管理后台添加服务器,复制安装命令。 2. 目标服务器安装 Agent,按上报间隔向 Worker 发送指标。 3. Worker 校验 `API_SECRET`,写入 D1,并通过 Durable Object 广播实时数据。 4. 前台大盘、详情页、管理后台和 iOS 小组件读取同一套 API。 近期变化: - `2.8.7`:优化定时任务逻辑,降低CPU负载,避免超出免费额度限制;`/update` 增加 512KB 请求体上限,超限直接返回 413;服务器被删除后,其 Agent 的 WSS 连接会在 2 分钟内自动断开;WSS 上报增加帧大小校验,D1 抖动时不再中断已认证会话;批量样本只保留最新 300 条。 - `2.8.6`:WSS前端订阅采用250毫秒批量上报,新增SMTP通知渠道,新增月度流量阈值告警,移除旧版数据库兼容性,新增Docker安装方式。 - `2.8.5`:支持自定义 Ping 节点名称;增加ICMP模式;优化WSS响应逻辑;API接口优化;原皮前端优化;新增4个ping节点。 - `2.8.4`:新增 Agent WSS 上报和 WSS 开启时段,提升实时数据推送及时性,并允许非目标时段自动改用 POST 降低 Do 时长消耗;该能力要求 Agent 升级到 `v1.0.10+`。新增账户Do用量展示,优化无前端订阅时的 Do 实时广播请求,降低空闲额度消耗。通知设置新增自定义 Webhook 渠道, 新增前端wss超时配置。 - `2.8.3`:新增磁盘 IO 统计,默认 Agent 切换为 Go 版本,新增服务器延迟与丢包率实时窗口。 - `2.8.2`:引入 Go Agent 支持。 - `2.8.1`:优化长时间历史查询 D1 读行,增加资源负载通知和主题商店接口优化。 - `2.8.0`:新增主题商店,支持一键切换第三方主题。 - `2.7.x`:重构数据库写入、月表轮换、通知模块、安全策略、服务器计费字段、导入导出和多项后台能力。 Go Agent 的完整更新记录见 cfsm-agent releases。 ## 快速部署 ### 前置要求 - Cloudflare