# 飞牛NAS必装:进程级资源监控,比自带强10倍,一眼看穿谁在偷吃你的CPU/内存/磁盘/网络全透视,带一键内存回收的监控面板 CPU/内存/磁盘/网络 + 进程排行 + 一键回收 + SMART/连接明细,Docker一键部署 > 飞牛 NAS 专属的轻量级系统资源监控面板 —— 一个 Docker 命令即可拥有媲美专业 NAS 监控的 Web 界面。 --- ## ✨ 为什么选择 fnos-resmon?与飞牛自带的对比 飞牛自带的系统信息只能看到 CPU/内存占用率、存储卷用量等**汇总数字**:哪个进程在吃 CPU?哪块盘 SMART 告警了?哪个端口被谁占用了?一键能回收内存吗?这些它都做不到。fnos-resmon 正好补上这些短板: | 能力 | 飞牛自带 | fnos-resmon | |------|---------|-------------| | CPU/内存占用率 | ✅ 有 | ✅ 有 | | 进程级 CPU/内存排行 | ❌ 无 | ✅ 进程名/PID/用户/状态/线程数 | | 内存 RSS/USS/SWAP 明细 | ❌ 无 | ✅ 三列细分 | | 一键内存回收(drop caches) | ❌ 无 | ✅ 一键释放 | | 一键结束异常进程 | ❌ 无 | ✅ 一键 kill | | 磁盘 SMART/温度/通电时间 | ❌ 需命令行 | ✅ Web 直观展示 | | TCP 连接明细/侦听端口 | ❌ 无 | ✅ 进程+地址+状态 | | 网卡驱动/MTU/双工 | ❌ 无 | ✅ 有 | | 表头排序/箭头指示 | ❌ 无 | ✅ 点击即排序 | - 🚀 **一键部署**:一条 `docker run` 启动,无需额外驱动 - ⚡ **实时刷新**:3 秒自动更新,数据实时 - 📊 **维度全面**:CPU / 内存 / 磁盘 / 网络 四大面板,进程级明细 - 🔍 **进程级洞察**:每个进程 CPU、内存、IO、连接数一目了然 - 🧹 **内存回收**:一键 drop caches 释放可回收内存 - 🔪 **进程管理**:一键结束异常进程 - 📱 **移动适配**:响应式布局,手机也能看 - 🐳 **零侵入**:Docker 容器运行,不修改系统文件 --- ## 📸 功能截图 ![CPU](docs/cpu.png) ![内存](docs/mem.png) ![磁盘](docs/disk.png) ![网络](docs/net.png) --- ## 📋 功能清单 ### CPU 监控 - CPU 型号、架构、物理/逻辑核数 - 实时 CPU 占用率、负载(1/5/15 分钟) - 每核心频率与占用率可视化 - L1/L2/L3 缓存信息 - 进程 CPU 占用排行(TOP N) ### 内存监控 - 内存占用率、已用/总共/可用 - SWAP 使用情况 - 物理内存槽位详情(容量、类型、频率、厂商) - 进程 RSS / USS / SWAP 明细 - 一键回收可回收内存(drop caches) ### 磁盘监控 - 挂载点使用率、读写累计 - 物理硬盘 SMART 健康状态 - 硬盘温度、通电时间、坏道重映射 - 阵列拓扑展示 ### 网络监控 - 实时上传/下载速率、累计收发量 - 连接数统计 - TCP 连接明细表(进程、本地/远程地址、状态) - 侦听端口表 - 网卡信息(IP、MAC、速率、双工、MTU、驱动) --- ## 🚀 快速开始 ### 方式一:Docker 运行(推荐,必须带齐参数,否则数据不准) ```bash docker run -d --name fnos-resmon \ --network host --pid host --privileged --restart unless-stopped \ -e PORT=7031 -e PROCFS_PATH=/host/proc \ -v /proc:/host/proc:rw -v /sys:/host/sys:ro \ jpccr.ccs.tencentyun.com/jinghui/fnos-resmon:latest ``` 启动后浏览器访问 `http://你的NASIP:7031` 即可。 ### ⚠️ 部署注意事项(必看,少一个参数就少一块数据) - **三个缺一不可**:`--network host`(看宿主真实网卡/流量)+ `--pid host`(看宿主全部进程)+ `--privileged`(调频/一键优化/传感器写入)。README 旧版简化命令缺了前两个,照抄会只能看到容器自身,直接用上面这条完整命令。 - **两个挂载不能少**:`-v /proc:/host/proc:rw` + `-v /sys:/host/sys:ro`,并配合 `-e PROCFS_PATH=/host/proc`,CPU/内存/磁盘/温度全靠它们读宿主。 - **`host` 网络下 `-p 7031:7031` 无效**:端口即 `7031`(可用 `-e PORT=` 改),访问 `http://NAS_IP:7031`。 - **缺参数的现象(对照排查)**:进程只有几个/看不到宿主进程=缺 `--pid host`;网速/连接数是容器视角=缺 `--network host`;省电/性能切换报"调频接口不可写"、一键优化失败=缺 `--privileged` 或宿主无 cpufreq(虚拟机/VPS 无此文件属正常,监控不受影响)。 - **CPU 调频前提**:物理机+主板/BIOS 暴露 cpufreq(amd-pstate/intel_pstate/acpi)+ `--privileged`。虚拟机、部分 VPS、只读 `/sys` 会失败开放:提示错误但不影响监控。 - **硬件型号栏是构建时快照**:硬盘型号/序列号/SMART、内存条颗粒、网卡型号/网关是镜像构建那台机器的快照;换机器部署后**实时占用/流量/温度是本机的**,但型号字样还是旧机器的。想要型号也对:在新机器上 `docker build` 一份即可,实时数据不受影响。 - **性能模式记忆(可选)**:想重启后记住上次的省电/上限档,加 `-e PERF_FILE=/run/secrets/perf_mode.json -v /root/.fnos_resmon_perf.json:/run/secrets/perf_mode.json:rw`。 - **更新**:`docker pull jpccr.ccs.tencentyun.com/jinghui/fnos-resmon:latest && docker rm -f fnos-resmon` 后用上面完整命令重建;也可用仓库内 `docker-compose.yml`(已带齐全部参数)`docker compose up -d`。 --- ## 🛠️ 技术栈 | 组件 | 技术选型 | |------|---------| | 后端框架 | Flask (Python) | | 前端 | 纯 HTML/CSS/JS(无额外依赖) | | 数据采集 | psutil、smartctl、/proc 文件系统 | | 容器化 | Docker | --- ## 📦 下载 | 资源 | 地址 | |------|------| | Docker 镜像 | `jpccr.ccs.tencentyun.com/jinghui/fnos-resmon:latest` | | Gitea 仓库 | https://gitea.88531.cn/jinghui/fnos-resmon | 欢迎 Issue 和 PR! --- ## 🔗 链接 - 资享导航站:https://nav.88531.cn - 开源地址:https://gitea.88531.cn/jinghui/fnos-resmon