# 萌芽监控面板 - 后端服务 ## 概述 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 文件系统的权限