Files
mengyamonitor/README.md
2025-12-14 15:25:31 +08:00

157 lines
3.7 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.
# 萌芽监控面板
一个简洁高效的 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-smiGPU 信息会显示为"不可用",这是正常的。
**Q: 如何将前端打包成桌面应用?**
A: 可以使用 Electron 或 Tauri 框架将前端打包成桌面应用,详见前端 README。
## 开发者
- 前后端分离架构,代码结构清晰
- 符合企业级开发规范
- 易于扩展和维护
## License
MIT