自动化部署 DCGM + dcgm-exporter + Prometheus + Grafana 环境

发布于:2025-05-13 ⋅ 阅读:(12) ⋅ 点赞:(0)

在现代数据中心和高性能计算(HPC)环境中,监控系统非常重要。通过实时监控GPU、CPU、内存、磁盘等硬件资源,可以帮助我们及时发现潜在的问题,优化资源分配。本文将分享如何通过一键脚本自动部署 DCGM(NVIDIA 数据中心 GPU 管理器)、dcgm-exporterPrometheusGrafana 环境,快速搭建一个完备的监控系统。

完整脚本见:hardware-monitor-deploy

环境介绍

  • DCGM (Data Center GPU Manager):NVIDIA 提供的工具,可以帮助用户监控 GPU 状态,包括温度、负载、内存使用率等。
  • dcgm-exporter:一个用于导出 GPU 指标的 Prometheus Exporter,能够将 DCGM 数据转为 Prometheus 可采集的格式。
  • Prometheus:一款开源监控系统,专为时序数据设计,支持通过多种 Exporter 获取系统和应用的监控数据。
  • Grafana:一个开源的可视化工具,能够接收 Prometheus 等数据源的监控数据,并生成漂亮的仪表盘进行展示。

自动化部署流程

我们通过一个 Bash 脚本来完成以下任务:

  1. 安装并配置 Go 环境。
  2. 安装并配置 DCGMdcgm-exporter
  3. 安装并配置 Prometheus 及其相关服务。
  4. 安装并配置 Grafana,并导入预设的仪表盘。

一、安装和配置 Go 环境

首先,脚本会检查系统中是否已经安装了 Go 环境。如果没有安装,脚本会自动下载并安装指定版本的 Go。我们指定安装 Go 1.23.8 版本。

# 检查并安装 Go
GO_VERSION="1.23.8"
GO_TARBALL="go${GO_VERSION}.linux-amd64.tar.gz"

二、安装 DCGM 和 dcgm-exporter

接下来,脚本会检查并安装 DCGM。如果未安装,脚本会自动下载并安装 NVIDIA 官方的 datacenter-gpu-manager 包,保证系统中有 libdcgm.so.4 文件。然后,安装并配置 dcgm-exporter,用于将 DCGM 数据导出给 Prometheus。

# 安装 DCGM
if ! dpkg -l | grep -q datacenter-gpu-manager; then
  # 安装 DCGM
  wget -q https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
  sudo dpkg -i cuda-keyring_1.1-1_all.deb
  sudo apt update
  sudo apt install -y datacenter-gpu-manager
fi

三、安装 Prometheus

脚本会自动安装 Prometheus,并配置其抓取 dcgm-exporter 输出的 GPU 数据。安装完 Prometheus 后,脚本会为其创建 systemd 服务,确保 Prometheus 在系统启动时自动启动。

# 安装 Prometheus
if [[ ! -d /opt/prometheus ]]; then
  # 下载并解压 Prometheus
  PROM_VERSION=2.51.2
  wget -q https://github.com/prometheus/prometheus/releases/download/v${PROM_VERSION}/prometheus-${PROM_VERSION}.linux-amd64.tar.gz
  tar -xzf prometheus-${PROM_VERSION}.linux-amd64.tar.gz
  sudo mv prometheus-${PROM_VERSION}.linux-amd64 /opt/prometheus
  rm -f prometheus-${PROM_VERSION}.linux-amd64.tar.gz
fi

四、安装 Grafana 和仪表盘导入

在安装完 Prometheus 后,脚本将安装 Grafana 并配置其从 Prometheus 中读取数据。我们还提供了自动导入预设的 DCGM 和 Node Exporter 仪表盘(ID:12239 和 ID:1860)。此外,用户可以使用用户名和密码生成 Grafana API Token,并通过它导入仪表盘。

# 安装 Grafana
if ! dpkg -l | grep -q grafana; then
  # 安装 Grafana
  sudo apt-get install -y apt-transport-https software-properties-common gnupg2
  wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
  sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
  sudo apt update
  sudo apt install -y grafana
fi

五、启动和配置服务

所有安装完成后,脚本会启动 PrometheusGrafanadcgm-exporter 的 systemd 服务,确保它们在系统启动时自动运行。

# 启动 Prometheus 和 Grafana 服务
sudo systemctl enable --now prometheus
sudo systemctl enable --now grafana-server

六、访问与验证

在完成安装后,您可以通过以下地址访问 Grafana 和 Prometheus:

通过 Grafana,您可以查看 GPU 性能数据、CPU、内存、磁盘等硬件资源的监控数据,帮助您对系统进行更好的监控和调优。

实际效果展示

  • Node Exporter Full
    系统硬件监控

  • NVIDIA DCGM Exporter Dashboard
    GPU信息监控

总结

通过本文的自动化脚本,您可以轻松地搭建一个高效、可靠的监控系统,实时了解服务器和 GPU 的状态。通过结合 PrometheusGrafana,你可以通过直观的仪表盘展示数据,实时监控硬件资源的使用情况,帮助您优化系统性能和资源管理。

如果您遇到任何问题,可以根据脚本中的输出信息进行排查,或者查阅相关文档获取更多支持。