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

萌芽监控面板 - 后端服务

概述

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.0
  • PORT: 监听端口,默认 9292

示例:

PORT=8080 ./mengyamonitor-backend

部署到服务器

  1. 将编译好的二进制文件上传到目标服务器
  2. 赋予执行权限:chmod +x mengyamonitor-backend
  3. 运行服务:./mengyamonitor-backend
  4. 可选:使用 systemd 或 supervisor 管理服务进程

注意事项

  • 仅支持 Linux 系统
  • GPU 监控需要安装 nvidia-smi 工具
  • 需要读取 /proc 文件系统的权限