ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

5 步搞定 nvidia_gpu_exporter:GPU 监控从部署到 Grafana 告警

2026/8/22 17:29:53 拓冰建站 浏览量
5 步搞定 nvidia_gpu_exporter:GPU 监控从部署到 Grafana 告警 5 步搞定 nvidia_gpu_exporterGPU 监控从部署到 Grafana 告警【免费下载链接】nvidia_gpu_exporterNvidia GPU exporter for prometheus using nvidia-smi binary OR using NVML项目地址: https://gitcode.com/gh_mirrors/nv/nvidia_gpu_exporternvidia_gpu_exporter 是面向 Prometheus 的 GPU 监控 exporter它在装有 NVIDIA 驱动的机器上运行把nvidia-smi的查询结果翻译成标准 Prometheus 指标Prometheus 负责抓取Grafana 负责呈现。适合想在游戏主机、家用服务器、边缘盒子或 Kubernetes 集群里做 GPU 指标采集又不想上 DCGM exporter 整套重装备的人。它的特点就三点只依赖nvidia-smi(.exe)二进制——不需要 C 绑定和编译环境Windows、Linux、macOS 都能跑可以不在被监控机器上运行——通过一条远程命令就能 SSH 到别的机器上执行nvidia-smi字段自动发现——nvidia-smi能报什么指标它就读什么新驱动加字段不用改代码仓库自带官方 Grafana 仪表盘 JSON导入即用Windows 一键部署 GPU exporter不同平台最短路径一览平台最短路径验证方式WindowsPowerShell 一键脚本含 Prometheus Grafana浏览器访问 9090 / 3000Debian / Ubuntu官方.deb包systemctl statusRHEL / CentOS官方.rpm包systemctl statusDocker一条docker run需 NVIDIA Container Toolkit容器日志无报错KubernetesHelm chart 部署 DaemonSet每节点多一个 PodWindows 一键脚本⚡ 目标一台机器上同时跑起 exporter、Prometheus 和 Grafana全程只需要一个 PowerShell 脚本。以管理员身份打开 PowerShell执行仓库里的 windows-all-in-one.ps1# 用管理员 PowerShell 执行脚本会装齐三件套 powershell -NoProfile -ExecutionPolicy Bypass -File C:\...\windows-all-in-one.ps1✅ 验证浏览器打开http://localhost:9090能看到 Prometheus 的 targets 页面nvidia_gpu_exporter目标为UP打开http://localhost:3000用初始账号admin/admin登录Dashboards 列表里已经预置了 Nvidia GPU Metrics 和 Nvidia GPU Overview 两块盘Debian / Ubuntu 或 RHEL 装系统包包方式装好后 systemd 服务自动注册不用手写 unit 文件# Debian/Ubuntu sudo dpkg -i nvidia-gpu-exporter_version_linux_amd64.deb # RHEL/CentOS sudo rpm -i nvidia-gpu-exporter_version_linux_amd64.rpm✅ 验证systemctl status nvidia_gpu_exporter显示 active然后浏览器或 curl 访问本机http://主机:9835/metrics应看到大量nvidia_smi_开头的指标行。Docker 跑容器⚠️ 前提宿主机已装 NVIDIA 驱动且配好了 [NVIDIA Container Toolkit]——容器镜像本身不含任何 NVIDIA 组件GPU 访问、驱动库和nvidia-smi都是容器运行时在启动时注入的docker run -d --name nvidia_gpu_exporter --restart unless-stopped \ --gpus all -e NVIDIA_DRIVER_CAPABILITIESutility -p 9835:9835 \ utkuozdemir/nvidia_gpu_exporter:latest✅ 验证docker exec nvidia_gpu_exporter nvidia-smi能输出 GPU 信息说明驱动注入成功再访问http://主机:9835/metrics确认指标已出。生产环境请把latest换成固定版本 tag。Kubernetes 上更省事用仓库内置的 charts/nvidia-gpu-exporter Helm chart 装 DaemonSet加--set runtimeClassNamenvidia每个 GPU 节点自动起一个 exporter Pod注意不要给它申请nvidia.com/gpu资源否则调度器会把整卡从业务负载手里扣走。注册为系统服务Linuxsystemd把二进制放进/usr/bin建一个专用系统用户再放入仓库自带的 systemd 服务文件sudo useradd --system --no-create-home --shell /usr/sbin/nologin nvidia_gpu_exporter # 把 nvidia_gpu_exporter.service 放入 /etc/systemd/system/ 后 sudo systemctl daemon-reload sudo systemctl enable --now nvidia_gpu_exporterWindowsexporter 原生对接服务控制管理器不需要 NSSM 之类的第三方包装——winget install --scope machine utkuozdemir.nvidia_gpu_exporter装好后直接nvidia_gpu_exporter install注册服务给install传的任意参数都会写进服务命令行比如install --web.listen-address:9836。日志落在 Windows 事件查看器的 Application 日志来源为nvidia_gpu_exporter。自定义监听端口、查询字段与日志部署完先确认两件事--web.listen-address默认:9835没被占用--web.telemetry-path默认/metrics是你想暴露的路径。换端口或换路径都只需对应改这两个参数。用 SSH 远程监控 GPU目标exporter 跑在一台常开的机器比如树莓派上GPU 却在别处。--nvidia-smi-command接受任意能输出 nvidia-smi 格式的命令nvidia_gpu_exporter --nvidia-smi-command \ ssh -o StrictHostKeyCheckingno -o UserKnownHostsFile/dev/null USERHOST nvidia-smi⚠️ 注意官方容器镜像是 distroless 的没有 ssh 和 shell所以远程采集只适用于二进制部署。--nvidia-smi-command也用来处理本地 nvidia-smi 不在 PATH、或需要 sudo 的情况。精简查询字段、降低采集开销--query-field-names默认AUTO会拉nvidia-smi能报的全部字段。只关心温度、利用率、显存时可以显式指定保留AUTO又想砍掉个别慢字段时用--query-field-names-exclude支持*通配如remapped_rows.histogram.*nvidia_gpu_exporter --query-field-names name,uuid,temperature.gpu,utilization.gpu,memory.used字段名不确定时跑一下nvidia-smi --help-query-gpu就能查全。另外两个降低开销的开关--collect.interval 15snvidia-smi 改为后台每 15 秒跑一次Prometheus 抓到的是最近一份缓存。适合高抓频或多台 Prometheus 共享同一个 exporter 的场景--collect.compute-apps额外导出按进程的显存占用哪个进程吃了多少显存。容器里要看全部进程得共享宿主 PID 命名空间--pidhost或hostPID: true日志级别与格式--log.level支持 debug / info / warn / error--log.format支持 logfmt 或 json。排障时临时开 debug 看每次 nvidia-smi 到底执行了什么生产环境建议 json 方便日志系统解析。✅ 每次改完参数重启服务验证方式都一样Prometheus 的 targets 页该目标仍是 UP/metrics里nvidia_smi_指标齐全。用 Grafana 仪表盘看懂 GPU 指标数据进了 Prometheus还要能看。仓库的 docs/grafana 下放着两份官方仪表盘 JSON互相有跳转链接dashboard.json单卡详情盘——健康状态、利用率、温度、显存、功耗、风扇、时钟、XID 错误dashboard-overview.json多卡总览盘——节点上所有 GPU 并排对比可下钻到详情盘导入方式Grafana → Dashboards → Import → 上传 JSON也可以在 grafana.com 按 ID 搜14574和25547。前提是本机的 Prometheus 数据源已配好。注意用默认exec后端时MIG、XID、能耗这类 NVML 专属面板会显示为空属正常现象。排障指标缺失、权限与端口问题 排障的核心思路先看采集状态指标再动手查环境。症状先查什么/metrics没有 GPU 指标看nvidia_smi_last_collect_success0 最近一次采集失败和nvidia_smi_command_exit_codenvidia-smi 退出码再手动跑一遍nvidia-smi确认驱动本身是否正常SSH 远程采集失败目标机能否无交互执行nvidia-smiSSH 密钥或密码认证没配好exporter 一样采不到Windows 下指定 nvidia-smi 路径报找不到路径含空格时引号必须是参数值的一部分--nvidia-smi-command C:\Program Files\...\nvidia-smi.exePrometheus 抓不到 exporter确认 9835 端口放通sudo ufw allow 9835/tcpsystemd 下确认服务是 active采集超时、进程被杀驱动卡死时会拖死整轮采集--collect.timeout默认 10s控制上限--shutdown-on-error决定致命错误时是退出还是继续报错两点提醒/-/healthy和/-/ready只表示 exporter 进程活着不代表 GPU 采集正常别拿它们当业务健康判据指标名和字段映射的完整清单见 docs/METRICS.md参数全集见 docs/CONFIGURE.md——对不上号时先翻这两份文档【免费下载链接】nvidia_gpu_exporterNvidia GPU exporter for prometheus using nvidia-smi binary OR using NVML项目地址: https://gitcode.com/gh_mirrors/nv/nvidia_gpu_exporter创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考