自动发现规则
创建模板
老生常谈,创建模版,模板名为“” ,
然后创建应用集,自动发现规则;
- 名称:自定义,我们设置 discover gpu
- 类型:zabbix 客户端(主动式),PS:“became not supported: Timeout while executing a shell script.”此报错怀疑是服务端主动采集造成
- 键值:gpu.discovery,该值要和下面服务器上配置的自动发现脚本的键值相同
- 更新间隔:根据实际需求来,因为 GPU 的变化非常小,我们可以选择 1h 这样的间隔
创建监控项原形:
重复上述操作,根据实际情况添加 GPU 指标参数
触发器创建
GPU 服务器配置
创建自动发现脚本
root@ucloud-wlcb-gpu-022:~# cat /etc/zabbix/externalscripts/gpu_discovery.sh
#!/bin/bash
GPUS=(`nvidia-smi -L | awk -F ' |:' '{print $2}'`)
LENGTH=${#GPUS[*]}
printf "{\n"
printf '\t'"\"data\":["
for ((i=0;i<$LENGTH;i++))
do
printf '\n\t\t{'
printf "\"{#GPU_ID}\":\"${GPUS[$i]}\"}"
if [ $i -lt $[$LENGTH-1] ];then
printf ','
fi
done
printf "\n\t]\n"
printf "}\n"
脚本执行输出如下:
root@ucloud-wlcb-gpu-022:~# bash /etc/zabbix/externalscripts/gpu_discovery.sh
{
"data":[
{"{#GPU_ID}":"0"},
{"{#GPU_ID}":"1"},
{"{#GPU_ID}":"2"},
{"{#GPU_ID}":"3"},
{"{#GPU_ID}":"4"},
{"{#GPU_ID}":"5"},
{"{#GPU_ID}":"6"},
{"{#GPU_ID}":"7"}
]
}
配置自动发现以及采集项
root@ucloud-wlcb-gpu-022:~# cat /etc/zabbix/zabbix_agentd.conf.d/userparameter_gpus.conf
UserParameter=gpu.discovery,/etc/zabbix/externalscripts/gpu_discovery.sh
UserParameter=gpu.name[*],nvidia-smi -i $1 --query-gpu=name --format=csv,noheader,nounits
UserParameter=gpu.temp[*],nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits -i $1
UserParameter=gpu.memtotal[*],nvidia-smi --query-gpu=memory.total --format=csv,noheader,nounits -i $1
UserParameter=gpu.used[*],nvidia-smi --query-gpu=memory.used --format=csv,noheader,nounits -i $1
UserParameter=gpu.free[*],nvidia-smi --query-gpu=memory.free --format=csv,noheader,nounits -i $1
UserParameter=gpu.fanspeed[*],nvidia-smi --query-gpu=fan.speed --format=csv,noheader,nounits -i $1
UserParameter=gpu.utilisation[*],nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader,nounits -i $1
UserParameter=gpu.power[*],nvidia-smi --query-gpu=power.draw --format=csv,noheader,nounits -i $1
UserParameter=gpu.Volatile_SRAM_ECC[*],nvidia-smi -q -d ECC -i $1 | grep Uncorrectable | awk 'NR==1{print $$4}'
UserParameter=gpu.Volatile_DRAM_ECC[*],nvidia-smi -q -d ECC -i $1 | grep Uncorrectable | awk 'NR==2{print $$4}'
UserParameter=gpu.Aggregate_SRAM_ECC[*],nvidia-smi -q -d ECC -i $1 | grep Uncorrectable | awk 'NR==3{print $$4}'
UserParameter=gpu.Aggregate_DRAM_ECC[*],nvidia-smi -q -d ECC -i $1 | grep Uncorrectable | awk 'NR==4{print $$4}'
UserParameter=gpu.Remapping[*],nvidia-smi -q -i $1 | grep Remapping | awk {'print $$5'}
zabbix-agent 必须是 root 用户允许启动,脚本执行需要此权限;
模板可以参考这里:
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于