168 lines
6.8 KiB
Markdown
168 lines
6.8 KiB
Markdown
# 飞牛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 监控
|
||
- 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
|