【30天精通Prometheus:一站式监控实战指南】第20天:dcgm-exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细

亲爱的读者们👋

  欢迎加入【30天精通Prometheus】专栏!📚 在这里,我们将探索Prometheus的强大功能,并将其应用于实际监控中。这个专栏都将为你提供宝贵的实战经验。🚀

  Prometheus是云原生和DevOps的核心监控工具,我们将从基础概念开始,逐步涵盖配置、查询、告警和可视化。💪

  在接下来的30天里,我们将解锁Prometheus的实战技巧,通过案例和分享,助你深入理解其工作原理。📆

  目标:30天后,你将熟练掌握Prometheus,为未来的项目挑战做好准备!💯

  这是一段精彩旅程,期待你的加入!🎉


文章目录

  • 一、dcgm-exporter概述📘
  • 二、安装dcgm-exporter💾
    • 2.1 访问dcgm-exporter官方网站 🌐
    • 2.2 选择适合的版本🔍
    • 2.3 下载dcgm-exporter⬇️
    • 2.4 解压安装包📂
    • 2.5 安装GO环境
    • 2.6 运行dcgm-exporter🚀
  • 三、dcgm-exporter指标和配置详解📖
    • 3.1 dcgm-exporter.service
  • 四、实战演练:生产环境搭建指南🔨
    • 4.1 创建普通用户管理dcgm-exporter👤
    • 4.2 解压dcgm-exporter.tar.gz📦
    • 4.3 将dcgm-exporter集成到Prometheus配置中✂️
    • 4.4 编辑dcgm-exporter.service文件📝
    • 4.5 启动dcgm-exporter.service🔌
    • 4.6 查看服务是否正常启动🔍
  • 相关资料下载地址📚

一、dcgm-exporter概述📘

定义
  dcgm-exporter是一个用于将NVIDIA GPU监控数据导出为Prometheus格式的工具。它能够实时地收集GPU相关的各种指标数据,如温度、功耗、显存使用率等,并将其转换为Prometheus可以理解的格式,以便进行进一步的可视化和告警设置。

功能
  实时数据收集:dcgm-exporter能够实时地收集NVIDIA GPU的各项指标数据,包括但不限于温度、功耗、显存使用率、运算性能等。

  数据格式化:收集到的数据会被格式化为Prometheus所需的格式,这使得数据可以轻松地集成到现有的监控系统中。

  自定义指标:用户可以根据自己的需求,通过CSV文件配置自定义收集的GPU指标,满足特定的监控需求。

  安全性保障:支持TLS加密和基本身份验证,确保监控数据在传输和存储过程中的安全性。

应用场景
  云环境监控:在Kubernetes或OpenStack等云环境中,dcgm-exporter可以帮助运维人员实时监测GPU资源的使用情况,从而实现资源的智能调度和优化配置。

  深度学习训练监控:在进行深度学习训练时,dcgm-exporter可以持续监控GPU的负载、温度和其他关键指标,帮助研究人员预防GPU过热,优化训练效率。

  高性能计算(HPC)环境:对于需要进行大量GPU计算的任务,如气象模拟或物理仿真,dcgm-exporter能够提供实时的性能反馈,有助于及时发现潜在问题、进行故障排查和性能调优。

二、安装dcgm-exporter💾

注意事项和常见问题
  1.环境配置:确保系统已安装NVIDIA GPU驱动和CUDA工具包,因为dcgm-exporter依赖于这些组件来访问GPU信息。检查操作系统是否兼容,并确保满足dcgm-exporter运行的最低要求。

  2.依赖安装:在安装dcgm-exporter之前,需要先安装NVIDIA Data Center GPU Manager (DCGM),因为它是dcgm-exporter的基础。如果计划将dcgm-exporter与Prometheus集成,确保Prometheus服务器已正确配置并运行。

  3.版本兼容性:选择与您的GPU驱动和CUDA版本兼容的dcgm-exporter版本。定期检查并应用官方发布的更新,以确保系统的安全性和性能。

2.1 访问dcgm-exporter官方网站 🌐

  • 打开浏览器,访问dcgm-exporter的官方下载页面,通常位于Github官方网站的dcgm-exporter下:https://github.com/NVIDIA/dcgm-exporter/releases

2.2 选择适合的版本🔍

  • 在下载页面,你将看到不同操作系统的dcgm-exporter二进制包。根据你的操作系统选择适合的版本。例如,如果你使用的是Linux 64位系统,就选择dcgm-exporter-3.3.5-3.4.1.tar.gz(其中x.x.x是版本号)。

2.3 下载dcgm-exporter⬇️

  • 点击所选版本的下载链接,将dcgm-exporter的二进制包下载到你的本地计算机。

2.4 解压安装包📂

  • 将下载的dcgm-exporter压缩包解压到你想要安装的目录。你可以使用命令行工具(如tar)来完成这个步骤。解压后,你将看到一个名为dcgm-exporter-3.3.5-3.4.1的目录,其中包含dcgm-exporter的二进制文件和其他相关文件。
tar -xzf dcgm-exporter-3.3.5-3.4.1.tar.gz

2.5 安装GO环境

  • 可访问go官网下载源码包:https://go.dev/dl/
wget https://golang.google.cn/dl/go1.21.1.linux-amd64.tar.gz

tar xvf go1.21.1.linux-amd64.tar.gz -C /usr/local/

mkdir /usr/local/gopath

cat >> /etc/profile <<EOF
export GOROOT=/usr/local/go
export GOPATH=/usr/local/gopath
export PATH=\$PATH:\$GOROOT/bin
export GO111MODULE="on" # 开启 Go moudles 特性
export GOPROXY=https://goproxy.cn,direct # 安装 Go 模块时,国内代理服务器设置
EOF

2.6 运行dcgm-exporter🚀

  • 进入解压后的目录,并运行dcgm-exporter服务器。在Linux下,你可以使用如下命令。如果一切正常,你应该能在终端看到dcgm-exporter的启动日志。
cd dcgm-exporter-3.3.5-3.4.1

make binary

make install


./dcgm-exporter --address 0.0.0.0:9400 -f etc/default-counters.csv

三、dcgm-exporter指标和配置详解📖

  • 黑色:作为默认文本颜色。
  • 绿色:表示常规配置项
  • 橙色:表示具有互斥参数的配置项 / 建议开启(根据自己的场景确定需求)
  • 蓝色:不重要的配置项 / 建议不开启
  • 红色:表示关键信息和警告 / 最好开启

注意:

  • 1.相关参数配置建议仅供参考,具体要以自己生产的实际需要自行配置。
  • 2.以下配置参数介绍是基于dcgm-exporter-3.3.5-3.4.1版本说明的,其它版本会有不同。

3.1 dcgm-exporter.service

  • - -collectors value, -f value
      指定dcgm-exporter需要收集的指标类型。可以通过这个参数来定义他们想要监控和收集哪些特定的NVIDIA GPU指标。例如,可以指定收集GPU利用率、内存使用情况、温度等具体指标。通过传递一个或多个收集器的名称,dcgm-exporter将仅限于导出这些指定收集器的指标。如果不设置此参数,dcgm-exporter会默认收集所有可用的指标
  • - -address value, -a value
      指定dcgm-exporter监听的地址
  • - -collect-interval value, -c value
      定义dcgm-exporter从NVIDIA GPU设备收集指标的频率。它是以秒为单位的时间间隔,指定dcgm-exporter多久查询一次GPU状态并更新其内部指标数据
  • - -kubernetes, -k
      此参数表示dcgm-exporter运行在Kubernetes环境中,并会启用与Kubernetes相关的特性和集成。当在Kubernetes集群中部署dcgm-exporter时,通常会设置此标志
  • - -use-old-namespace, -o
      如果在旧版本的Kubernetes或某些特定配置下运行,并且需要兼容旧的命名空间格式,可以使用此参数
  • - -cpu-devices value, -p value
      通过此参数,可以指定要监控的CPU设备。在多CPU或多核系统的环境中特别有用,可以更精确地监控和收集特定CPU或CPU核心的性能数据
  • - -configmap-data value
      当dcgm-exporter在Kubernetes环境中运行时,用于从ConfigMap中加载配置数据。ConfigMap是Kubernetes中用于存储配置信息的资源对象,通过此参数,dcgm-exporter可以灵活地从ConfigMap中读取配置,无需硬编码或手动设置
  • - -remote-hostengine-info value, -r value
      允许dcgm-exporter从远程主机引擎获取信息。在某些分布式或集群环境中,GPU资源可能分布在多个物理或虚拟节点上,此参数使得dcgm-exporter能够跨节点收集GPU信息
  • - -kubernetes-gpu-id-type value
      GPU可以以不同的方式标识,例如UUID、索引或其他唯一标识符。此参数允许指定Kubernetes中GPU的ID类型,以确保dcgm-exporter能够正确地识别和关联GPU资源
  • - -devices value, -d value
      允许指定要监控的GPU设备。可以提供一个或多个GPU设备的标识符,这样dcgm-exporter就只会收集这些指定设备的指标数据。在多GPU系统中特别有用,当只对某些特定的GPU设备感兴趣时,可以通过此参数进行精确监控
  • - -no-hostname, -n
      设置此参数后,dcgm-exporter在导出指标时将不会包含主机名。默认情况下,dcgm-exporter可能会将主机名作为标签添加到导出的指标中,以便更好地识别和区分不同主机的数据。但在某些场景下,可能希望隐藏或省略主机名信息,此时可以使用此参数
  • - -switch-devices value, -s value
      允许用户指定一个设备切换策略。在某些复杂的系统中,可能存在多个GPU设备,并且这些设备可能在不同的时间或条件下需要被切换或选择。通过设置此参数,用户可以定义如何在这些设备之间进行切换,以满足特定的监控需求
  • - -fake-gpus
      当设置此参数时,dcgm-exporter将模拟GPU设备的存在和指标数据。通常用于测试或开发环境,在没有实际GPU硬件的情况下模拟GPU监控数据的生成和导出。这样开发者可以在没有物理GPU的情况下进行开发和测试
  • - -web-config-file value
      允许用户指定一个Web配置文件,该文件包含dcgm-exporter的Web界面相关配置。通过此配置文件,用户可以自定义Web界面的外观、功能以及行为等。对于需要自定义或扩展dcgm-exporter Web界面来说非常有用
  • - -xid-count-window-size value, -x value
      设置XID错误计数的窗口大小。XID错误是NVIDIA GPU的一种特定错误类型,该参数定义在一个时间窗口内记录和报告的XID错误数量。通过调整这个窗口大小,用户可以更精细地控制对XID错误的监控和报告
  • - -replace-blanks-in-model-name, --rbmn
      当GPU的模型名称中包含空格时,启用此选项将会替换掉这些空格。有助于在处理和报告GPU信息时避免潜在的格式问题或解析错误,确保数据的准确性和一致性
  • - -clock-events-count-window-size value
      用于设置时钟事件计数的窗口大小。时钟事件可能与GPU的时钟频率调整相关,这个窗口大小决定了在一段时间内记录和报告的时钟事件数量,帮助大家更好地理解和分析GPU的时钟行为
  • - -enable-dcgm-log
      启用此参数将开启DCGM的日志记录功能
  • - -dcgm-log-level value
      设置DCGM日志的记录级别。用户可以根据需要选择不同级别的日志详细程度,例如DEBUG、INFO、WARNING、ERROR等。有助于控制日志输出的内容量和详细程度,便于用户根据需要查看和分析日志信息
  • - -pod-resources-kubelet-socket value
      在Kubernetes环境中,此参数用于指定kubelet的Pod资源套接字的路径。dcgm-exporter通过这个套接字与kubelet进行通信,以获取分配给Pod的GPU设备信息
  • - -web-systemd-socket
      当dcgm-exporter作为systemd服务运行时,启用此参数将使其通过systemd的套接字激活功能来提供Web界面。这意味着当外部请求访问dcgm-exporter的Web界面时,systemd会自动启动相应的服务来处理这些请求

四、实战演练:生产环境搭建指南🔨

4.1 创建普通用户管理dcgm-exporter👤

useradd deploy

4.2 解压dcgm-exporter.tar.gz📦

注意:
  我的是x86,所以使用dcgm-exporter-3.3.5-3.4.1.tar.gz,您可以使用uname -a命令查看系统架构

mkdir /home/deploy/dcgm-exporter

tar xvf dcgm-exporter-3.3.5-3.4.1.tar.gz 

cd dcgm-exporter-3.3.5-3.4.1

make binary

make install

cp -a dcgm-exporter /home/deploy/dcgm-exporter/
cp -a etc/default-counters.csv /home/deploy/dcgm-exporter/

4.3 将dcgm-exporter集成到Prometheus配置中✂️

  将dcgm-exporter集成到Prometheus配置中,确保数据能够正常采集。编辑Prometheus的配置文件(通常是prometheus.yml),在scrape_configs部分添加dcgm-exporter的配置。告诉Prometheus将采集dcgm-exporter:9400 的数据。

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

4.4 编辑dcgm-exporter.service文件📝

cat > /etc/systemd/system/dcgm-exporter.service <<EOF
[Unit]
Description=Dcgm exporter
After=network.target

[Service]
Type=simple
User=deploy
Group=deploy
ExecStart=/home/deploy/dcgm-exporter/dcgm-exporter \
-f /home/deploy/dcgm-exporter/default-counters.csv \
--address 0.0.0.0:9400
ExecReload=/bin/kill -HUP
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

4.5 启动dcgm-exporter.service🔌

sudo systemctl daemon-reload

sudo systemctl enable --now dcgm-exporter.service

4.6 查看服务是否正常启动🔍

# 查看service服务是否启动
sudo systemctl status dcgm-exporter.service

# 查看端口是否存在
sudo ss -ntulp | grep 9400

相关资料下载地址📚

  • 官方文档:https://prometheus.io/docs/introduction/overview/
  • 下载地址:https://github.com/prometheus/prometheus/releases/tag/v2.52.0
  • 文档地址:https://prometheus.io/docs/prometheus/latest/installation/
  • 离线包下载链接:https://pan.baidu.com/s/1ANF_AlFnM5_FMIbKBuzBmg 提取码:yqpt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/685078.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

U-Mail:企业邮箱系统安全解决方案

在数字化浪潮的推动下&#xff0c;互联网技术正日新月异&#xff0c;企业的信息通信需求亦随之升华。作为企业沟通的重要媒介&#xff0c;企业邮箱已被广泛应用&#xff0c;然而随着其应用范围的不断扩展&#xff0c;也给企业带来了一系列挑战&#xff1a; 一、统一身份认证管…

JavaSE基础语法合集

随着不断学习&#xff0c;我们已经走完了JavaSE基础语法的所有内容&#xff0c;博主的单独语法篇共十二篇&#xff0c;感兴趣的也可以去看看&#xff0c;内容基本一致&#xff0c;目录是重新排布的&#xff0c;数组和方法都在初识Java章节。 适合&#xff1a;老手复习和新手从零…

搜索与图论:八皇后问题

搜索与图论&#xff1a;八皇后问题 题目描述参考代码 题目描述 输入样例 4输出样例 .Q.. ...Q Q... ..Q...Q. Q... ...Q .Q..参考代码 #include <iostream>using namespace std;const int N 20;int n; char g[N][N]; bool col[N], dg[N], udg[N];void dfs(int u) {//…

T-Rex2: Towards Generic Object Detection via Text-Visual Prompt Synergy论文解读

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、引言二、文献综述1. Text-prompted Object Detection2. Visual-prompted Object Detection3. Interactive Object Detection 三、模型方法1. Visual-Text P…

【网络编程开发】6.UDP通信

6.UDP通信 UDP实现框架 send 函数 原型&#xff1a; #include <sys/socket.h> ssize_t send(int sockfd, const void *buf, size_t len, int flags);功能&#xff1a; send 函数的主要功能是向指定的套接字发送数据。 参数&#xff1a; sockfd&#xff1a;一个有效的套…

FreeModBusRtu移植 --stm32L431RCT6(小熊派)

文章目录 前言一、移植前需要的工作二、修改点讲解1.串口中断2.定时器3.保持寄存器4.测试 总结 前言 最近需要做一个modbus485的传感器&#xff0c;主要是用来做从机。之前做过主机的是stm标准库&#xff0c;那这次做一个HAL的从机协议栈&#xff0c;方便大家直接获取数据。 移…

Linux驱动开发笔记(四)设备树进阶及GPIO、Pinctrl子系统

文章目录 前言一、设备树的进阶知识1. 追加/修改节点内容2.chosen子节点3. 获取设备树节点信息3.1 of_find_node_by_path( )函数3.2 of_find_node_by_name( )函数3.3 of_find_node_by_type( )函数3.4 of_find_compatible_node( )函数3.5 of_find_matching_node_and_match( )函数…

前端_调试工具_Chrome Devtools

目录 一、上左侧菜单功能 1.选择功能 2.手机/电脑 显示切换功能 3.内存 4.元素 5.控制台 6.源代码/来源 7.网络 8.应用 9.性能 10.安全 11.Lighthouse 12.记录器 13.性能数据分析 二、上右侧菜单功能 1.警告 2.设置 3....更多功能 谷歌浏览器自带了调试工具C…

TPC-H建表语句(MySQL语法)

TPC-H测试集介绍 TPC-H&#xff08;Transaction Processing Performance Council, Standard Specification, Decision Support Benchmark, 简称TPC-H&#xff09;是一个非常权威数据库基准测试程序&#xff0c;由TPC组织制定。 TPC-H定义了一个包含8个表的模式&#xff08;Sc…

亮数据代理IP助力高效数据采集

文章目录 &#x1f4d1;前言一、爬虫数据采集痛点二、代理IP解决爬虫痛点2.1 为什么可以2.2 本篇采用的代理IP 四、零代码获取数据4.1 前置背景4.2 亮数据浏览器自动抓取数据4.3 使用步骤&#xff1a; 五、数据集5.1 免费样本5.2 定制数据集 &#x1f324;️个人小结 &#x1f…

力扣 503. 下一个更大元素 II

题目来源&#xff1a;https://leetcode.cn/problems/next-greater-element-ii/description/ C题解&#xff1a;因为是循环数组&#xff0c;所以对数组进行了两次遍历&#xff0c;相当于循环。使用了栈&#xff0c;一个存放元素&#xff0c;一个存放索引&#xff0c;用来更新res…

龙迅LT8712X TYPE-C或者DP转HDMI加VGA输出,内置MCU,只是IIS以及4K60HZ分辨率

龙迅LT8712X描述&#xff1a; LT8712X是一种高性能的Type-C/DP1.2到HDMI2.0和VGA转换器&#xff0c;设计用于将USB Type-C源或DP1.2源连接到HDMI2.0和VGA接收器。LT8712X集成了一个DP1.2兼容的接收器&#xff0c;一个HDMI2.0兼容的发射机和一个高速三角机窝视频DAC。此外&…

AppInventor2有没有删除后的撤销功能?

问&#xff1a;不小心删除了组件&#xff0c;能撤回吗&#xff1f; 答&#xff1a;界面&#xff08;组件&#xff09;设计界面&#xff0c;没有撤销功能。代码&#xff08;逻辑&#xff09;设计视图&#xff0c;可以使用 CtrlZ 撤销&#xff0c;CtrlY 反撤销。 界面设计没有撤…

关于2024中国海洋装备博览会(福州)的参展通知

2024中国航洋装备博览会 2024世界航海装备大会 2024中国船舶供应链大会 2024中国航洋装备博览会2024世界航海装备大会 时间地点、规模、主题、定位 1.时间&#xff1a;2024年11月15日至18日 2.地点&#xff1a;福州海峡国际会展中心、冠城大通游艇码头 3.规模&#xff1…

【ROS2大白话】三、给turtlebot3安装realsense深度相机

系列文章目录 【ROS2大白话】一、ROS2 humble及cartorgrapher安装 【ROS2大白话】二、turtlebot3安装 【ROS2大白话】三、给turtlebot3安装realsense深度相机 【ROS2大白话】四、ROS2非常简单的传参方式 文章目录 系列文章目录效果展示一、修改model.sdf文件1. 路径位置2. 修改…

Day25 首页待办事项及备忘录添加功能

​ 本章节,完成首页待办事项及备忘录添加功能 一.修改待办事项和备忘录逻辑处理类,即AddMemoViewModel和AddTodoViewModel 在 AddMemoViewModel逻辑处理类中,为了支持与其关联的View视图文件的数据绑定,需要定义一个与视图文件相匹配的实体类 Model。这个Model将包含 View中…

冯喜运:6.6外汇黄金原油晚间行情预测及独家操作建议

【黄金消息面分析】&#xff1a;周三&#xff08;6月5日&#xff09;&#xff0c;黄金价格继续区间波动并上涨&#xff0c;与周二的价格走势形成鲜明对比&#xff0c;此前美国公布的经济数据好坏参半&#xff0c;可能促使美联储降低借贷成本。美国国债收益率下降&#xff0c;美…

支付宝小众玩法 爱溜达的人不容错过

创建一个简单的程序来帮助用户管理他们的图片&#xff0c;例如筛选分辨率合适、尺寸适中的图片来准备上传&#xff0c;这是一个技术上合理且有益的方向。例如&#xff0c;一个Python脚本使用Pillow库来检查文件夹中图片的尺寸&#xff1a; from PIL import Image import os# 根…

深圳比创达EMC|EMC电磁兼容性行业:技术前沿与市场挑战

在当今高度信息化的社会&#xff0c;电磁兼容性&#xff08;EMC&#xff09;技术已成为各行各业不可或缺的一部分。随着电子设备的日益增多和复杂化&#xff0c;电磁环境日益复杂&#xff0c;电磁兼容性行业面临着前所未有的挑战和机遇。 一、EMC电磁兼容性行业的技术基础 电…

Qt图像处理技术十一:得到QImage图像的马赛克图像

效果图 指数5 指数15 指数40 原理 马赛克的原理很简单&#xff0c;就是取一个值&#xff0c;让这个值作为一个方格子的长宽&#xff0c;如40*40px的格子&#xff0c;取这个区域的平均R G B值&#xff0c;然后这个区域的所有像素点都是这个RGB值即可 源码 QImage applyM…