多机之后,最需要的不是「再装一套完整监控栈」,而是:
- 一眼看到 谁在线;
- CPU / 内存 / 磁盘是否异常;
- SSH 怎么登(可复制命令);
- 页面能分享给自己,而不是只在 SSH 里
htop。
在控制中枢内存紧张时,我选择了:定时脚本采集 → 写 JSON → 静态页读取。
数据流
[各节点]
Linux: SSH 执行只读命令 (/proc、df 等)
Windows: OpenSSH + PowerShell 汇总
仅端口探测: TCP connect 作为保底
│ 定时任务(约每分钟)
▼
[控制中枢] publish 脚本
│ 写入 vps-status.json
▼
[Web] 静态总控台(同源或固定 JSON URL)
│ 30s 前端刷新
▼
浏览器 / Telegram /vps 摘要
为什么不用「每台装 Agent」
| 方案 | 优点 | 缺点 |
|---|---|---|
| 中心式面板 + Agent | 功能全 | 内存、维护、多机安装成本 |
| 纯云监控 API | 适合云主机流量账单 | 对非云机器、NAT 机无能为力 |
| 中枢 SSH 拉取 | 无 Agent、实现快 | 依赖密钥与网络;Windows 要额外打通 OpenSSH |
个人规模(十来台量级)时,SSH 拉取通常够用。
Linux 与 Windows
- Linux:标准输出解析即可,注意 NAT 机 SSH 端口与业务端口可能不同,元数据里要写清「登录端口」。
- Windows:优先系统自带 OpenSSH Server,用编码后的 PowerShell 一次取回 CPU/内存/磁盘/开机时间;失败时再降级到「仅端口在线」或云监控 API(若有权限)。
采集命令应保持 只读,避免在监控路径里做变更操作。
前端总控台
静态页职责:
- 拉 JSON,渲染卡片(在线、用途、资源、SSH)。
- 快捷入口:博客、网盘、面板、邮箱等。
- 可选:架构示意图(给未来的自己看)。
部署上可以:
- 与 JSON 同源(最简单,无 CORS 烦恼);
- 或 Pages 静态站 + 固定 JSON 地址(注意跨域与缓存头)。
重复的两个几乎一样的前端入口没有意义,最终应 只保留一个主站,另一个 301 过去。
与 Telegram 联动
机器人 /vps 不必再依赖已下线的旧面板 API,直接读同一份 JSON 即可。文案与链接指向状态页,避免两套数据源互相打架。
踩过的坑(脱敏表述)
- 对象存储上的 JSON 副本过期:上传链路断了以后,页面若指向旧副本会「能打开但数据旧」。主路径应指向中枢实时文件。
- 「R2 挂了所以页面不能读」是错误归因:若页面本来就读 Caddy/本机 JSON,对象存储只是旁路。
- Windows 节点长期显示横杠:不是前端坏了,是采集通道(SSH)没打通。
小结
轻量看板的核心是 一份权威 JSON + 一个静态前端。下一篇讲订阅:如何用域名作为节点地址做自动切换,以及 Clash 规则里如何避免「访问自己的域名还绕代理」。
系列导航:上一篇 · SNI · 下一篇 · 订阅 DNS