Files
2025-12-14 15:25:31 +08:00

122 lines
2.4 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 服务器监控后端服务,使用 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 文件系统的权限