SM
Sys Monitor Cloudflare 控制面 + Rust 实时数据面 + Agent 边缘采集
Runtime Visibility For Real Machines

不是只看在线离线。是把机器真正纳入控制平面。

Sys Monitor 把主机监控、安装发布、实时指标、终端桥接、节点控制和升级中心放进同一套系统里。 Worker 负责公网入口与权限,Rust 服务负责高频实时数据,Agent 则在边缘主机上稳定采集和执行。

3 Agent / Worker / Rust Server 三层协同,职责明确,不把所有路径挤进一个进程。 全局接入机器数
HTTP + TCP 低频状态靠 HTTP 保底刷新,高频实时指标和终端走 TCP,不互相拖垮。 当前在线机器数
API Key 用户自己的机器、安装脚本和机器列表读取都能直接走用户级 API key。 累计 reports 写入数

三层架构,不混边界

项目不是单体“面板”。它把安装、权限、上报、实时数据、命令和终端拆成清晰的系统边界,线上排障和版本演进不会互相缠死。

Edge

Sys Monitor Agent

Rust Agent 运行在被监控主机上,负责采集 CPU、内存、磁盘、网络、GPU 等数据,同时执行安全受控的命令和终端桥接。

  • 启动后先走 HTTP 首报,再切 TCP 实时通道。
  • 文件扫描带有超时、边界保护和挂载类型避让。
  • 升级、SD-WAN、控制任务都沿同一上报链路下发。
Open-source Fallback

Cloudflare Worker

Worker 版本保留为开源项目和兼容参考;我们自己的生产入口、仪表盘、安装脚本和 MCP 都迁到 RS Server。

  • 适合社区自托管、学习部署和旧入口过渡。
  • 生产主路径不再依赖 Worker 写入和页面视图。
  • 开源文档会标清与 RS 生产版的边界。
Production Plane

Rust Server

Axum + SQLite 承接登录后的仪表盘、安装下载、API key、MCP、高频数据写入、心跳缓存、终端代理和 WebSocket 推送。

  • 实时指标、命令状态和终端会话都能直接从本地缓存读。
  • Worker 可把 /api/v1/rs/* 代理到 Rust 数据面。
  • 当 RS 抖动时,Worker 的机器列表不应被误覆盖为离线。

从接入到控制的一条链

这套系统不是只展示卡片。它覆盖了真实运维动作里的高频路径:安装、实时状态、升级、控制命令、API 拉取和多租户隔离。

关键能力

安装与首报 用户登录后拿到 API key,通过 install.sh 一键落盘配置、启动服务并完成首报验证。
主列表与实时覆盖 Dashboard 先读 Worker 的高可用机器快照,再用 Rust 实时数据做覆盖,不把 RS 故障传播成“全离线”。
远程任务与终端 控制平面可下发命令,Agent 在本地按白名单策略执行;终端通过桥接通道落到具体机器,而不是暴露直接 SSH。
发布与升级 Agent 版本、下载制品、Worker fallback、Rust /version 和升级中心保持同一版本源,降低“脚本已发但产物没对齐”的概率。

设计偏向

  • 对危险路径保守,比如文件扫描默认安全优先,宁可少报也不碰高风险挂载。
  • 多租户边界明确,用户 API key 只能看自己名下机器,不把 agent ingest token 当管理员凭证。
  • 控制平面与数据平面分离,让发布和实时吞吐可以分别演进。
  • 上线验证看真实证据,不只看源码或单元测试通过。

对外方式足够直接

如果你不想只靠浏览器,也可以直接用用户 API key 拉状态。公开安装入口和下载中心保持稳定,适合脚本化接入和后续自动化平台对接。

安装 Agent

登录后拿到用户 API key,就能用这一条命令把新机器接入系统。脚本会自动写配置、启服务并等待首次上报完成。

curl -fsSL "https://serverstatus.myfastools.com/install.sh?key=YOUR_API_KEY" | sudo bash

拉取当前用户机器列表

使用 view=summary、view=simple 或默认 full,可以按场景控制返回体大小。适合面板、脚本和外部控制层集成。

curl -H "Authorization: Bearer YOUR_API_KEY" "https://serverstatus.myfastools.com/api/v1/me/agents?view=summary"

为什么不是传统 server-status 面板

它当然能看机器在线和资源指标,但目标不止于“展示”。这套系统从一开始就是围绕真实接入、真实发布和真实控制链路设计的。

传统面板

更偏向被动展示。重点是把 CPU、内存、网络速度画出来,适合快速看状态,但安装、升级、控制、权限和运行时边界往往散落在系统外。

  • 看得到状态,不一定能继续完成接入、升级和控制。
  • 常把实时、控制、安装和身份边界混在一起。
  • 出了线上问题,排障路径容易跨多个独立工具。

Sys Monitor

把“看到机器”继续延伸为“纳入控制平面”。同一套系统里处理安装命令、用户 API key、Dashboard、升级中心、节点任务、终端桥接和高频实时数据。

  • 接入、鉴权、状态读取、终端和任务控制都走清晰边界。
  • Worker 和 Rust Server 分层,线上抖动不会把所有路径一起打穿。
  • 默认对高风险路径保守,优先保证用户机器稳定运行。

想接入机器,就从登录开始。

登录后你会获得自己的 API key、安装命令、控制台和机器状态接口。后续安装、升级、终端和状态拉取都会沿同一套身份边界运行。