Zabbix 监控 GPU服务器

in 默认分类 with 0 comment

2025-09-05T01:20:51.png

Zabbix 官方中没有监控GPU模板。在GitHub上有大神制作了关于GPU状态的模板,其原理为监控NVidia-smi的状态。通过自动发现规则发现服务器中的显卡,并通过监控NVidia-smi的状态后输出至zabbix中。

环境:
1)Centos9安装zabbix 7.0;
2)GPU服务器为8*4090显卡,系统ubuntu 22.0,已安装CAUD及显卡驱动;

GPU服务器中的配置


安装zabbix-agent

此处下载的是Ubuntu 22版本的zabbix7.0版本的zabbix agent

root@yorick:~#wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-1+ubuntu22.04_all.deb
root@yorick:~#sudo dpkg -i zabbix-release_7.0-1+ubuntu22.04_all.deb
root@yorick:~#sudo apt update -y
root@yorick:~#sudo apt install -y zabbix-agent

在GPU服务器中安装jd

root@yorick:~#apt install -y jq 

修改zabbix_agentd.conf配置文件

root@yorick:~#vim /etc/zabbix/zabbix_agentd.conf

将下列复制在zabbix_agentd.conf最末端即可

/*获取GPU数量*/
UserParameter=gpu.number,nvidia-smi -L | wc -l

/*自动发现GPU(生成类似 {"data": [{"{#GPUINDEX}":"0"}, {"{#GPUINDEX}":"1"}, ...]} 的JSON)*/
UserParameter=gpu.discovery,nvidia-smi -L | awk '{print "{ \"{#GPUINDEX}\":" NR-1 "}"}' | jq -s '{ "data": . }'

/*方法一:使用 -i 参数直接指定GPU设备ID(推荐,更直接,避免行号问题)*/
UserParameter=gpu.memfree[*],nvidia-smi -i $1 --query-gpu=memory.free --format=csv,noheader,nounits
UserParameter=gpu.memtotal[*],nvidia-smi -i $1 --query-gpu=memory.total --format=csv,noheader,nounits
UserParameter=gpu.memused[*],nvidia-smi -i $1 --query-gpu=memory.used --format=csv,noheader,nounits
UserParameter=gpu.temp[*],nvidia-smi -i $1 --query-gpu=temperature.gpu --format=csv,noheader,nounits
UserParameter=gpu.utilization[*],nvidia-smi -i $1 --query-gpu=utilization.gpu --format=csv,noheader,nounits

2025-09-05T01:21:05.png

重启zabbix-agent.service并设置为开机启动

root@yorick:~#systemctl restart zabbix-agent.service
root@yorick:~#systemctl enable zabbix-agent.service

Github模板下载


如Zabbix版本为7.0或以上,下载【zbx_nvidia-smi-multi-gpu.yaml】;zabbix 7.0以下,下载【zbx_nvidia-smi-multi-gpu.xml】
模板下载地址:zabbix-nvidia-smi-multi-gpu

将下载模板导入zabbix中


Zabbix 页面中,【数据采集】->【模板】->【导入】->将下载好的【zbx_nvidia-smi-multi-gpu.yaml】导入
2025-09-05T01:35:11.png

创建主机并将模板绑定在该主机上;
2025-09-05T02:36:54.png

PS:【Number of GPUs】一定要通,如出现【Unsupported item key】则要修改【zabbix_agentd.conf】新添加的配置文件;
2025-09-05T02:42:49.png

此时出现数值8,为该服务器有8块显卡;
2025-09-05T02:45:12.png

等待一段时间,当自动发现规则完成后,将出现以下信息:
2025-09-05T02:39:05.png

此时测试【GPU [0] Memory Used】,即第一块显卡显存使用率,出现数值:
2025-09-05T02:39:31.png

与服务器上的NVidia-smi中的数值一致,至此结束。(除使用率外,还可检测GPU温度,GPU空闲显存及GPU在线状态等信息)
2025-09-05T02:40:57.png

Responses