部署开源gpu_exporter

  • 这里在宿主机上部署exporter,在vmware虚机上的prometheus抓数据
#下载解压二进制包
#https://github.com/utkuozdemir/nvidia_gpu_exporter/releases/tag/v1.2.1
wget https://github.com/utkuozdemir/nvidia_gpu_exporter/releases/download/v1.2.1/nvidia_gpu_exporter_1.2.1_linux_x86_64.tar.gz
tar zxvf nvidia_gpu_exporter_1.2.1_linux_x86_64.tar.gz
#创建systemd服务启动文件
sudo cp nvidia_gpu_exporter /usr/bin/nvidia_gpu_exporter 
sudo tee /etc/systemd/system/nvidia-gpu-exporter.service <<'EOF'
[Unit]
Description=NVIDIA GPU Exporter

[Service]
ExecStart=/usr/bin/nvidia_gpu_exporter
Restart=always
RestartSec=15

[Install]
WantedBy=multi-user.target
EOF
#启动 Exporter 
systemctl daemon-reload
systemctl enable nvidia-gpu-exporter.service --now
systemctl restart nvidia-gpu-exporter.service
#检查指标
curl localhost:9835/metrics

prometheus抓取数据

  • 添加job
- job_name: "gpu-exporter"  
  static_configs:
  - targets: 
    - '10.12.0.247:9835'
    labels:
      gpu: nvidia-rtx2000-ada
      app: gpu-exporter

有个问题是宿主机内网IP会变,用hostname的话prometheus会报解析失败。我的思路:建一个pushgateway,宿主机推送到上面,prometheus去上面拉数据。

grafana数据展示

时间同步

Prometheus 抓取的数据非常依赖于系统时间准确,Grafana server 需要同步时间。