logo NodeSeekbeta

极简探针,它终于开源发布了!

设计哲学:安全、极简、高效

https://www.nodeseek.com/post-899364-1

继这个帖子之后,又继续打磨测试了两周,我认为它可以发布了

一、官方文档:

https://monitor-document.pages.dev/

image

image

  • rust 构建,功能刻意收敛到极致,安全设计近乎苛刻,才换来了这个又小,又快,又准的针

  • 适合追求安全、极简、高效,认为探针就是探针,干好探针该干的事就行的人

  • 目前为止不会再加入什么功能,就算真要加入功能,我也会反复、仔细、斟酌,加入那些最最最必要的功能,在此承诺不会越来越臃肿,因为这不符合我的审美和哲学

二、长什么样?

https://m.3301921.xyz/

image

image

三、能干什么?

只能看服务器基础信息、网络延迟、流量统计,没有了

流量统计中也包含我的一个痛点:vps 重启后,vps 的总流量也不会从 0 开始,持续累加,你甚至可以手动设置,把历史流量设置进去

四、安全吗?

安全

  • 为了安全,连 agent 自动更新功能都不提供,agent 更新频率不高,除非安全性更新,但它的代码几乎不会存在安全性问题

  • 禁止 ip + port 访问面板,强制配置反代之后使用,你应该会吧?不会也没关系,文档这里有:反向代理

  • 服务都降权运行,systemd 单元带 DynamicUser、NoNewPrivileges、ProtectSystem=strict、ProtectHome、PrivateTmp、PrivateDevices,并限死地址族与内存上限

  • 测试用例覆盖到位

  • 砍到大出血剩下的这点儿代码......我认为即使黑入了你的面板,也只能一怒之下把你节点全删除了(好像也挺严重的)

五、ai 友好

文档针对 ai 优化,直接提供提示词,还有 纯文本版 供 ai 阅读,本站任意页面全部是预渲染的静态 HTML,curl 直接拿得到正文,不用执行 JavaScript,可直接把文档地址甩给 ai 直接帮你部署

image

六、支持自定义主题

我会陆续更新其它主题,当然你也可以自己做自己的主题

image

七、要不尝试下?

https://github.com/monitor-probe

  • 支持!

  • 不错 用gemini总了下

    AI版权声明

    monitor-probe 是一个极简主义的轻量级服务器探针项目(包含 Rust + axum + SQLite 构成的 Hub,以及纯 Rust 编写的 Linux Agent)。

    以下是该项目的核心特点、CPU 监测方法的深度解析,以及它与同类工具(Komari、NodeGet)的差异对比。

    monitor-probe 的项目特点

    1. 极度轻量与极简依赖:Agent 端采用 Rust 编写,编译为静态链接的单文件(musl),无任何运行时依赖,常驻内存仅需几 MB。
    2. 完全无状态设计:Agent 纯粹作为数据采集器,不写文件,不保存跨重启的任何数据。像“网卡总流量累加”这类需要记录状态的工作,全部交由服务端的 Hub 负责。这极大减少了受监控机器的磁盘 I/O,尤其适合在寿命有限的 SD 卡(如树莓派)上运行。
    3. 安全性优化:
    • Token 通过 HTTP 的 Authorization 头传递,不会进入 Nginx/Caddy 等反向代理的 access.log,防止 Token 泄露。
    • 强制安全策略:在非回环地址(非 localhost)下,直接拒绝明文的 ws:// WebSocket 连接,强制要求加密。
    1. 对齐原生命令:内存占用算法严格对齐原生 free(1) 的 used 列,磁盘统计严格对齐 df(1) 的 Used 列,避免出现面板数据与终端命令数据不一致的困扰。

    CPU 及资源占用监测方法

    大多数 Rust 探针会直接引入第三方重量级系统库(如 sysinfo)来获取数据。但 monitor-probe 为了极致的性能和极小的体积,直接抛弃了 sysinfo,采用了“手撸内核接口”的方法:

    • CPU 监测(读取 /proc):
      Agent 直接读取并解析 Linux 的虚拟文件系统 /proc/stat。该文件记录了 CPU 从开机以来的时间片分配(如 user、system、idle、iowait 等)。Agent 通过在两次上报间隔中读取这些累计值,计算出 Delta(差值),从而得出极度精确且开销极低的 CPU 实际使用率。
    • 磁盘与内存监测:
      不依赖外部工具扫描,直接读取 /proc/meminfo(内存)和系统底层调用 statvfs(磁盘),用最少的系统调用完成数据采集。

    对比 Komari 与 NodeGet

    在同类探针和服务器状态面板中,这三者有着完全不同的设计哲学与应用场景:

    特性 / 项目 monitor-probe Komari NodeGet (NodeGet-StatusShow)
    开发语言 (Agent) Rust (极低开销、内存安全) Go (轻量,但略重于纯 Rust) TypeScript/Node.js (资源开销相对最高)
    核心定位 极致安全的纯数据遥测探针 带反向 shell 的全功能管理探针 侧重于前端展示的公共状态聚合页
    CPU/系统交互 直读 /proc,无状态、零 I/O 会频繁扫描连接,曾在低配机型引发过 CPU 100% 的性能 Bug 依赖宿主 Node 运行环境或第三方系统库
    安全性与控制权 纯只读。无任何远程执行能力,安全级别最高。 高危双刃剑。出厂默认开启反向 PTY shell 和 exec 命令执行。 主要为纯静态或前端展示,Agent 端多依赖开源社区现成方案。
    monitor-probe 的核心优化与区别所在:
    1. 安全性断层领先 ( vs Komari )
      根据安全厂商 Huntress 在 2026 年的报告,Komari 曾被黑客组织滥用为 C2(命令与控制)通道。原因在于 Komari 在设计上不仅仅是个探针,它默认开启了双向控制通道,包含 exec 和 terminal(交互式反向 Shell)功能。这意味着如果 Komari 服务端被黑,所有受控主机的最高权限(SYSTEM/root)将全部沦陷。
      优化点:monitor-probe 在设计上彻底砍掉了“远程控制”功能,仅做单向的数据上报(只读),从根本上杜绝了被当作后门勒索的可能。
    2. 资源调度更科学
      Komari 的旧版本曾因为在扫描 /proc 获取网络连接数时缺乏限制,导致在 1C/2C 机器上 Agent 自身吃掉了 50%~100% 的 CPU 性能。
      优化点:monitor-probe 通过无状态化和避免暴力扫描高频变更的 /proc 节点,将性能损耗降到了微秒级别。
    3. 展示侧重不同 ( vs NodeGet )
      NodeGet(StatusShow 及其衍生)通常聚焦在如何让公开的“服务器探针面板”更美观,重在前端构建(React/Next.js 生态)。而 monitor-probe 把主要精力花在了“如何让 Agent 在底层系统里做到真正的隐形与无感”。
  • 为啥感觉和komari 这么像,UI上,还是探针都是这个样子

  • 这也太简了吧,对UI界面还是要有一点要求

  • komari坚定支持者

  • 前排

  • 支持

  • 支持

  • komari用得好好的懒得换

  • 前排

  • 我自己用哪吒改的。

  • 大佬终于发布了 xhj010

  • 支持 周一用

  • bd,看看后续别人用的反馈,懒得折腾

  • 太棒了

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有72188位seeker

🎉欢迎新用户🎉