122 lines
2.4 KiB
Markdown
122 lines
2.4 KiB
Markdown
# 萌芽监控面板 - 后端服务
|
||
|
||
## 概述
|
||
Linux 服务器监控后端服务,使用 Go 原生 net/http 库实现。
|
||
|
||
## 功能
|
||
- CPU 使用率和负载监控
|
||
- 内存使用情况
|
||
- 磁盘存储监控
|
||
- GPU 监控(支持 NVIDIA)
|
||
- 操作系统信息
|
||
- 系统运行时间
|
||
|
||
## API 端点
|
||
|
||
### `GET /api/health`
|
||
健康检查端点
|
||
```json
|
||
{
|
||
"status": "ok",
|
||
"timestamp": "2025-12-10T10:00:00Z"
|
||
}
|
||
```
|
||
|
||
### `GET /api/metrics`
|
||
获取系统监控指标
|
||
```json
|
||
{
|
||
"data": {
|
||
"hostname": "server1",
|
||
"timestamp": "2025-12-10T10:00:00Z",
|
||
"cpu": {
|
||
"model": "Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz",
|
||
"cores": 8,
|
||
"usagePercent": 23.45,
|
||
"loadAverages": [1.2, 1.5, 1.8]
|
||
},
|
||
"memory": {
|
||
"totalBytes": 16777216000,
|
||
"usedBytes": 8388608000,
|
||
"freeBytes": 8388608000,
|
||
"usedPercent": 50.0
|
||
},
|
||
"storage": [{
|
||
"mount": "/",
|
||
"totalBytes": 107374182400,
|
||
"usedBytes": 53687091200,
|
||
"freeBytes": 53687091200,
|
||
"usedPercent": 50.0
|
||
}],
|
||
"gpu": [{
|
||
"name": "Tesla T4",
|
||
"memoryTotalMB": 15360,
|
||
"memoryUsedMB": 512,
|
||
"utilizationPercent": 15.0,
|
||
"status": "ok"
|
||
}],
|
||
"os": {
|
||
"kernel": "Linux version 5.15.0",
|
||
"distro": "Ubuntu 22.04 LTS",
|
||
"architecture": "amd64"
|
||
},
|
||
"uptimeSeconds": 864000.5
|
||
}
|
||
}
|
||
```
|
||
|
||
## 运行方式
|
||
|
||
### 开发环境
|
||
```bash
|
||
go run .
|
||
```
|
||
|
||
### 生产环境
|
||
|
||
#### 标准编译
|
||
```bash
|
||
# 编译
|
||
go build -o mengyamonitor-backend
|
||
|
||
# 运行
|
||
./mengyamonitor-backend
|
||
```
|
||
|
||
#### 兼容旧版本系统编译(推荐)
|
||
|
||
如果需要在 Debian 11 或其他旧版本系统上运行,使用静态链接编译:
|
||
|
||
```bash
|
||
# 禁用 CGO,静态链接(不依赖系统 GLIBC 版本)
|
||
export CGO_ENABLED=0
|
||
go build -ldflags="-s -w" -o mengyamonitor-backend .
|
||
|
||
# 或使用提供的脚本
|
||
chmod +x build.sh
|
||
./build.sh
|
||
```
|
||
|
||
这样可以避免 GLIBC 版本兼容性问题。详细说明请参考 [BUILD.md](./BUILD.md)。
|
||
|
||
### 环境变量
|
||
- `HOST`: 监听地址,默认 `0.0.0.0`
|
||
- `PORT`: 监听端口,默认 `9292`
|
||
|
||
示例:
|
||
```bash
|
||
PORT=8080 ./mengyamonitor-backend
|
||
```
|
||
|
||
## 部署到服务器
|
||
|
||
1. 将编译好的二进制文件上传到目标服务器
|
||
2. 赋予执行权限:`chmod +x mengyamonitor-backend`
|
||
3. 运行服务:`./mengyamonitor-backend`
|
||
4. 可选:使用 systemd 或 supervisor 管理服务进程
|
||
|
||
## 注意事项
|
||
- 仅支持 Linux 系统
|
||
- GPU 监控需要安装 nvidia-smi 工具
|
||
- 需要读取 /proc 文件系统的权限
|