如何在Zabbix 6.0中监控Windows 10主机的GPU相关指标
如何在Zabbix 6.0中监控Windows 10主机的GPU相关指标
很高兴帮你解决这个问题!在Zabbix 6.0里监控Windows 10的GPU指标,主要分为配置数据源、Agent自定义参数、Zabbix Web端配置这几个步骤,下面我分细节给你讲清楚:
一、先确认基础环境与GPU数据源准备
- 首先确保Zabbix Agent已经在Windows 10上正常运行,不管是主动模式(Active)还是被动模式(Passive),要保证Agent能和Zabbix Server正常通信。
- 根据你的GPU品牌准备对应的监控工具:
- NVIDIA GPU:确保已经安装了官方驱动,打开命令提示符(CMD)输入
"C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe",如果能正常输出GPU信息,说明工具可用。 - AMD GPU:可以使用AMD官方的
amd-smi工具(需安装AMD Radeon Software及配套管理组件),或者直接用Windows自带的性能计数器。 - 通用方案:Windows自带的性能监视器(Performance Monitor)里有现成的GPU相关计数器,比如
GPU Engine、GPU Memory、GPU Temperature等类别,可以先打开性能监视器确认这些指标是否存在。
- NVIDIA GPU:确保已经安装了官方驱动,打开命令提示符(CMD)输入
二、通过UserParameter调用GPU专属工具采集指标(以NVIDIA为例)
这种方式适合获取更精准的GPU细节指标,步骤如下:
- 找到Zabbix Agent的配置文件,默认路径是
C:\Program Files\Zabbix Agent\zabbix_agentd.conf,用记事本或专业编辑器打开。 - 在文件末尾添加自定义的UserParameter,对应不同的GPU指标:
# 获取GPU整体使用率(百分比) UserParameter=gpu.util, "C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe" --query-gpu=utilization.gpu --format=csv,noheader,nounits | findstr /v "^$" # 获取GPU核心温度(摄氏度) UserParameter=gpu.temp, "C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe" --query-gpu=temperature.gpu --format=csv,noheader,nounits | findstr /v "^$" # 获取GPU显存使用率(百分比) UserParameter=gpu.memory.util, "C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe" --query-gpu=utilization.memory --format=csv,noheader,nounits | findstr /v "^$" # 获取GPU显存已用容量(MB) UserParameter=gpu.memory.used, "C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe" --query-gpu=memory.used --format=csv,noheader,nounits | findstr /v "^$"如果有多块GPU,可以在命令里添加
--id=0(0为GPU编号)来指定监控某一块,比如--id=0 --query-gpu=utilization.gpu,然后创建多个UserParameter对应不同GPU。 - 保存配置文件后,重启Zabbix Agent服务:打开
服务面板,找到Zabbix Agent,右键选择重启。
三、利用Windows性能计数器采集通用GPU指标
如果不想用第三方工具,也可以直接通过Zabbix监控Windows性能计数器:
- 登录Zabbix Web界面,找到你的Windows主机,进入
配置→主机→监控项→创建监控项。 - 配置监控项的关键参数:
- 类型:选择
Zabbix agent或Zabbix agent (active)(根据你的Agent模式) - 键值:格式为
perf_counter["\计数器路径","实例名称"],比如:- 监控GPU使用率:
perf_counter["\GPU Engine\Utilization Percentage","GPU 0"] - 监控NVIDIA GPU温度:
perf_counter["\NVIDIA GPU\GPU Temperature","GPU 0"]
- 监控GPU使用率:
- 信息类型:选择
数值(浮点型)或数值(整型),根据指标类型调整
- 类型:选择
- 点击
添加完成监控项创建,重复步骤添加其他GPU指标。
四、在Zabbix Web端配置监控项、触发器与可视化
- 验证监控项:添加完监控项后,等待几分钟,进入
监测→最新数据,筛选对应的主机和指标,确认是否能正常采集到数值。 - 创建触发器:比如设置GPU温度过高的告警,进入
配置→主机→触发器→创建触发器,表达式可以写:
意思是当GPU温度超过80摄氏度时触发告警,你可以根据自己的需求调整阈值。{你的Windows主机名:gpu.temp.last()}>80 - 创建可视化图形:进入
配置→主机→图形→创建图形,把GPU使用率、温度、显存等指标添加进去,这样就能直观查看GPU的运行趋势了。
五、常见问题与验证方法
- 如果用UserParameter采集不到数据,先手动在Windows命令行执行对应的命令,看是否能返回正确数值;同时确保Zabbix Agent的运行账户有足够权限,可以尝试用管理员账户运行Agent。
- 用Zabbix Server的
zabbix_get工具测试(被动模式适用):在Zabbix Server的命令行输入zabbix_get -s 你的Windows主机IP -k gpu.temp,如果能返回温度数值,说明Agent配置正常。 - 对于AMD GPU,把
nvidia-smi替换成amd-smi即可,命令格式类似,比如amd-smi --showtemp来获取温度,根据输出格式调整UserParameter的过滤规则。
备注:内容来源于stack exchange,提问作者biplab
相关产品推荐
相关产品推荐

