Files
fnos-resmon/README.md
T

168 lines
6.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 飞牛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` 即可。
### 方式二:Docker Compose 部署
仓库内已带 `docker-compose.yml`(参数与方式一完全一致,开箱即用):
```yaml
services:
fnos-resmon:
image: jpccr.ccs.tencentyun.com/jinghui/fnos-resmon:latest
container_name: fnos-resmon
network_mode: host
pid: host
restart: unless-stopped
environment:
- PORT=7031
- PROCFS_PATH=/host/proc
- SITE_VERSION=1.3.18
- HUB_URL=https://auth.88531.cn/api
- HUB_PROJECT_ID=12
- HUB_KEY_FILE=/run/secrets/hub_key
- PERF_FILE=/run/secrets/perf_mode.json
privileged: true
volumes:
- /proc:/host/proc:rw
- /sys:/host/sys:ro
- /root/.fnos_resmon_hub_key:/run/secrets/hub_key:ro
- /root/.fnos_resmon_perf.json:/run/secrets/perf_mode.json:rw
```
```bash
docker compose up -d
# 更新:docker compose pull && docker compose up -d
```
注意:`network_mode: host`+`pid: host`+`privileged: true`三项不可删,删了就看不到宿主真实数据(详见下方注意事项)。
### ⚠️ 部署注意事项(必看,少一个参数就少一块数据)
- **三个缺一不可**:`--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