云计算百科
云计算领域专业知识百科平台

服务器GPU集群硬件资源监控完整部署指南

Grafana + Prometheus + DCGM:GPU监控完整部署指南

概述:

NVIDIA DCGM (Data Center GPU Manager) 提供了一套强大的工具来监控和管理数据中心的GPU。结合Prometheus采集数据和Grafana进行可视化,可以构建一个全面的GPU集群监控系统。本指南将从零开始,详细介绍如何部署这套监控方案。

前置条件:

  • 安装了NVIDIA驱动的Linux服务器
  • 具有root或sudo权限
  • Docker和Docker Compose (推荐使用容器化部署)
  • 基本的Linux命令行知识

第一步:安装NVIDIA驱动和DCGM

首先确保您的系统已正确安装NVIDIA驱动:

nvidia-smi

如果显示GPU信息,说明驱动已安装。接下来安装DCGM:

对于Ubuntu/Debian系统:

# 添加NVIDIA仓库
distribution=$(. /etc/os-release;echo $ID$VERSION_ID | sed -e 's/\\.//g')
wget https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb

# 更新并安装DCGM
sudo apt-get update
sudo apt-get install -y datacenter-gpu-manager

对于CentOS/RHEL系统:

# 添加NVIDIA仓库
distribution=$(. /etc/os-release;echo $ID$VERSION_ID | sed -e 's/\\.//g')
sudo dnf config-manager –add-repo https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/cuda-$distribution.repo

# 安装DCGM
sudo dnf install -y datacenter-gpu-manager

启动DCGM服务:

sudo systemctl start nvidia-dcgm
sudo systemctl enable nvidia-dcgm

验证DCGM安装:

dcgmi discovery -l

第二步:部署DCGM Exporter

DCGM Exporter是连接DCGM和Prometheus的桥梁,它将DCGM收集的GPU指标转换为Prometheus可以抓取的格式。

使用Docker部署DCGM Exporter(推荐方式):

docker run -d –gpus all –restart always \\
-p 9400:9400 \\
–name dcgm-exporter \\
nvcr.io/nvidia/k8s/dcgm-exporter:2.4.6-2.6.10

验证DCGM Exporter是否正常工作:

curl localhost:9400/metrics

您应该能看到大量的GPU指标数据。

第三步:安装和配置Prometheus

创建Prometheus配置文件:

mkdir -p /opt/prometheus

创建配置文件/opt/prometheus/prometheus.yml:

global:
scrape_interval: 15s
evaluation_interval: 15s

scrape_configs:
job_name: 'dcgm-exporter'
static_configs:
targets: ['localhost:9400']

job_name: 'prometheus'
static_configs:
targets: ['localhost:9090']

使用Docker部署Prometheus:

docker run -d –restart always \\
-p 9090:9090 \\
–name prometheus \\
-v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \\
prom/prometheus

验证Prometheus是否正常工作:访问http://your-server-ip:9090,您应该能看到Prometheus的Web界面。

检查目标是否正常:在Prometheus界面导航到Status > Targets,确认dcgm-exporter目标状态为UP。

第四步:安装和配置Grafana

使用Docker部署Grafana:

docker run -d –restart always \\
-p 3000:3000 \\
–name grafana \\
grafana/grafana

访问Grafana:打开浏览器访问http://your-server-ip:3000,默认用户名和密码都是admin。

配置Prometheus数据源:

  • 登录后,点击左侧菜单的"Configuration"(齿轮图标)
  • 选择"Data Sources"
  • 点击"Add data source"
  • 选择"Prometheus"
  • 在URL字段中输入http://prometheus:9090(如果Prometheus和Grafana不在同一网络,使用服务器IP)
  • 点击"Save & Test"确认连接成功
  • 第五步:导入NVIDIA GPU监控面板

    Grafana有很多现成的NVIDIA GPU监控面板,我们可以导入使用:

  • 在Grafana左侧菜单点击"+“图标,选择"Import”
  • 输入面板ID 12239(这是一个优秀的NVIDIA GPU监控面板)
  • 点击"Load"
  • 选择之前创建的Prometheus数据源
  • 点击"Import"完成导入
  • 您也可以尝试其他面板ID,如14574或15117,它们提供不同风格的GPU监控视图。

    监控的GPU指标说明:

    导入的面板将显示以下关键GPU指标:

    • GPU利用率:显示GPU计算核心的使用百分比
    • GPU内存使用:显示GPU显存的使用情况
    • 温度:GPU核心温度
    • 功耗:GPU的功耗消耗
    • PCIe带宽:通过PCIe总线的数据传输速率
    • SM Clock:GPU流处理器的时钟频率
    • Memory Clock:GPU内存的时钟频率
    • Encoder/Decoder利用率:视频编解码器的使用情况

    使用Docker Compose实现一键部署

    为了简化部署,创建docker-compose.yml文件:

    version: '3'

    services:
    dcgm-exporter:
    image: nvcr.io/nvidia/k8s/dcgmexporter:2.4.62.6.10
    restart: always
    ports:
    "9400:9400"
    deploy:
    resources:
    reservations:
    devices:
    driver: nvidia
    count: all
    capabilities: [gpu]

    prometheus:
    image: prom/prometheus
    restart: always
    ports:
    "9090:9090"
    volumes:
    ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
    depends_on:
    dcgmexporter

    grafana:
    image: grafana/grafana
    restart: always
    ports:
    "3000:3000"
    volumes:
    grafanastorage:/var/lib/grafana
    depends_on:
    prometheus

    volumes:
    grafana-storage:

    在同一目录下创建Prometheus配置:

    mkdir -p prometheus

    创建prometheus/prometheus.yml:

    global:
    scrape_interval: 15s
    evaluation_interval: 15s

    scrape_configs:
    job_name: 'dcgm-exporter'
    static_configs:
    targets: ['dcgm-exporter:9400']

    job_name: 'prometheus'
    static_configs:
    targets: ['prometheus:9090']

    启动整个监控栈:

    docker-compose up -d

    故障排除:

  • DCGM Exporter无法启动:
    • 检查NVIDIA驱动是否正确安装:nvidia-smi
    • 确保DCGM服务正在运行:systemctl status nvidia-dcgm
  • Prometheus无法抓取DCGM指标:
    • 检查网络连接:curl localhost:9400/metrics
    • 检查Prometheus配置中的目标地址是否正确
  • Grafana无法连接Prometheus:
    • 确保Prometheus正在运行:docker ps | grep prometheus
    • 检查Grafana中配置的Prometheus URL是否正确
  • 导入的面板无数据:
    • 在Prometheus界面中检查查询是否返回数据
    • 检查时间范围设置是否合适
  • 扩展和优化:

  • 添加告警:
    • 在Grafana中为关键指标设置告警,如高温或内存使用过高
    • 配置Prometheus AlertManager进行更复杂的告警管理
  • 添加更多监控目标:
    • 修改Prometheus配置以监控多台服务器的GPU
    • 使用服务发现自动添加新的GPU节点
  • 持久化数据:
    • 配置Prometheus的存储目录以持久化历史数据
    • 考虑使用远程存储解决方案用于长期数据保留
  • 安全加固:
    • 为Prometheus和Grafana配置身份验证
    • 使用反向代理和HTTPS加密访问
  • 通过以上步骤,您已经成功部署了一个基于DCGM、Prometheus和Grafana的GPU监控系统,可以实时监控GPU的各项关键指标,为GPU资源管理和优化提供有力支持。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 服务器GPU集群硬件资源监控完整部署指南
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!