# 萌芽监控面板 一个简洁高效的 Linux 服务器监控面板,采用前后端分离架构。 ## 项目概述 ### 功能 - 实时监控 Linux 服务器的 CPU、内存、存储、GPU 使用情况 - 支持同时监控多个服务器 - 卡片式展示,直观清晰 - 详情弹窗查看完整信息 ### 技术栈 - **前端**: React 19 + TypeScript + Vite - **后端**: Go (原生 net/http 库) - **风格**: 白色柔和风格界面 ## 快速开始 ### 后端部署 1. 进入后端目录 ```bash cd mengyamonitor-backend ``` 2. 编译(在 Linux 服务器上) ```bash go build -o mengyamonitor-backend ``` 3. 运行 ```bash ./mengyamonitor-backend ``` 默认监听端口: 9292 4. 可选:配置环境变量 ```bash PORT=8080 ./mengyamonitor-backend ``` ### 前端开发 1. 进入前端目录 ```bash cd mengyamonitor-frontend ``` 2. 安装依赖 ```bash npm install ``` 3. 启动开发服务器 ```bash npm run dev ``` 默认访问端口: 2929 4. 构建生产版本 ```bash npm run build ``` ## 使用说明 ### 1. 部署后端到服务器 将编译好的 `mengyamonitor-backend` 二进制文件上传到需要监控的 Linux 服务器并运行。 ### 2. 配置前端 在前端界面点击"添加服务器",输入: - 服务器名称:例如"生产服务器1" - 服务器地址:例如"http://192.168.1.100:9292" ### 3. 查看监控数据 - 主界面显示所有服务器的基本信息(CPU、内存使用率) - 点击"查看详情"可查看完整的系统信息 - 数据每2秒自动刷新 ## 项目结构 ``` 萌芽监控面板/ ├── mengyamonitor-backend/ # 后端服务 │ ├── main.go # 主程序和HTTP服务器 │ ├── systeminfo.go # 系统信息采集 │ ├── go.mod # Go模块配置 │ └── README.md # 后端文档 │ ├── mengyamonitor-frontend/ # 前端应用 │ ├── src/ │ │ ├── api/ # API调用层 │ │ ├── components/ # React组件 │ │ ├── hooks/ # 自定义Hooks │ │ ├── types/ # TypeScript类型 │ │ ├── utils/ # 工具函数 │ │ ├── App.tsx # 主应用 │ │ └── main.tsx # 入口文件 │ ├── package.json │ ├── vite.config.ts │ └── README.md # 前端文档 │ └── 需求.txt # 需求文档 ``` ## API 接口 ### GET /api/health 健康检查 ### GET /api/metrics 获取系统监控指标 ```json { "data": { "hostname": "server1", "timestamp": "2025-12-10T10:00:00Z", "cpu": { "usagePercent": 23.45, ... }, "memory": { "usedPercent": 50.0, ... }, "storage": [...], "gpu": [...], "os": { ... }, "uptimeSeconds": 864000.5 } } ``` ## 注意事项 1. **系统支持**: 后端仅支持 Linux 系统 2. **权限要求**: 需要读取 `/proc` 文件系统的权限 3. **GPU 监控**: 需要安装 `nvidia-smi` 工具(可选) 4. **网络访问**: 确保前端可以访问后端的 9292 端口 5. **CORS**: 后端已配置允许跨域访问 ## 常见问题 **Q: 前端无法连接后端?** A: 检查服务器防火墙是否开放 9292 端口,确保后端服务正在运行。 **Q: GPU 信息显示不可用?** A: 如果服务器没有 NVIDIA GPU 或未安装 nvidia-smi,GPU 信息会显示为"不可用",这是正常的。 **Q: 如何将前端打包成桌面应用?** A: 可以使用 Electron 或 Tauri 框架将前端打包成桌面应用,详见前端 README。 ## 开发者 - 前后端分离架构,代码结构清晰 - 符合企业级开发规范 - 易于扩展和维护 ## License MIT