萌芽监控面板 - 后端服务
概述
Linux 服务器监控后端服务,使用 Go 原生 net/http 库实现。
功能
- CPU 使用率和负载监控
- 内存使用情况
- 磁盘存储监控
- GPU 监控(支持 NVIDIA)
- 操作系统信息
- 系统运行时间
API 端点
GET /api/health
健康检查端点
{
"status": "ok",
"timestamp": "2025-12-10T10:00:00Z"
}
GET /api/metrics
获取系统监控指标
{
"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
}
}
运行方式
开发环境
go run .
生产环境
标准编译
# 编译
go build -o mengyamonitor-backend
# 运行
./mengyamonitor-backend
兼容旧版本系统编译(推荐)
如果需要在 Debian 11 或其他旧版本系统上运行,使用静态链接编译:
# 禁用 CGO,静态链接(不依赖系统 GLIBC 版本)
export CGO_ENABLED=0
go build -ldflags="-s -w" -o mengyamonitor-backend .
# 或使用提供的脚本
chmod +x build.sh
./build.sh
这样可以避免 GLIBC 版本兼容性问题。详细说明请参考 BUILD.md。
环境变量
HOST: 监听地址,默认0.0.0.0PORT: 监听端口,默认9292
示例:
PORT=8080 ./mengyamonitor-backend
部署到服务器
- 将编译好的二进制文件上传到目标服务器
- 赋予执行权限:
chmod +x mengyamonitor-backend - 运行服务:
./mengyamonitor-backend - 可选:使用 systemd 或 supervisor 管理服务进程
注意事项
- 仅支持 Linux 系统
- GPU 监控需要安装 nvidia-smi 工具
- 需要读取 /proc 文件系统的权限