由於每臺服務器的磁盤數量會不同,在zabbix配置一個模版來自動發現磁盤並監控其性能,思路同自定義監控模版。ios
1,設置自動發現磁盤腳本
cd /etc/zabbix/zabbix_agentd
vi disk_discovery.shweb
#!/bin/bash
diskarray=(`cat /proc/diskstats |grep -E "\bsd[abcdefg]\b|\bxvd[abcdefg]\b"|grep -i "\b$1\b"|awk '{print $3}'|sort|uniq 2>/dev/null`)
length=${#diskarray[@]}
printf "{\n"
printf '\t'"\"data\":["
for ((i=0;i<$length;i++))
do
printf '\n\t\t{'
printf "\"{#DISK_NAME}\":\"${diskarray[$i]}\"}"
if [ $i -lt $[$length-1] ];then
printf ','
fi
done
printf "\n\t]\n"
printf "}\n"
chmod +x disk_discovery.shbash
2,修改zabbix agent配置文件
vi /etc/zabbix/zabbix_agentd.conf在尾部添加一下內容
# UserParameter=
UserParameter=io.scandisk[*],/etc/zabbix/zabbix_agentd.d/disk_discovery.sh $1
#每秒讀操做數
UserParameter=io.rps[*],/usr/bin/iostat -m -x -d |grep "$1"|tail -1|awk '{print $$4}'
#每秒寫操做數
UserParameter=io.wps[*],/usr/bin/iostat -m -x -d |grep "$1" |tail -1|awk '{print $$5}'
#平均每次設備IO操做數據大小
UserParameter=io.avgrq-sz[*],/usr/bin/iostat -m -x -d |grep "$1" |tail -1|awk '{print $$8}'
#平均IO隊列長度
UserParameter=io.avgqu-sz[*],/usr/bin/iostat -m -x -d |grep "$1" |tail -1|awk '{print $$9}'
#平均每次IO操做等待時間
UserParameter=io.await[*],/usr/bin/iostat -m -x -d |grep "$1" |tail -1|awk '{print $$10}'
#平均每次IO操做的服務時間
UserParameter=io.svctm[*],/usr/bin/iostat -m -x -d |grep "$1" |tail -1|awk '{print $$11}'
#一秒內用於IO操做的百分比
UserParameter=io.util[*],/usr/bin/iostat -m -x -d |grep "$1" |tail -1|awk '{print $$12}'服務器
3,在zabbix web端:配置---模版---建立模版
新建自動發現規則
輸入規則名稱,鍵值輸入剛剛在zabbix agent配置文件裏設置的key:io.scandisk
建好發現規則後,如圖
單擊 監控項原型---建立監控項原型
根據zabbix agent配置文件裏設置的key,同上逐一添加監控原型。隨後仍在改規則下添加‘圖形原型’
單擊上圖最下方的‘添加原型’,將各個監控項加入到該圖形中,以便查當作果。
4,驗證
在配置--主機--選擇一臺主機關聯到該模版;可在zabbix server 端用zabbix_get命令獲取監控項的值,若正常獲取成功便可畫出對應的圖
以上是監控物理機用到的,若用的是雲主機、VPS,監控磁盤空間使用率較有意義:性能