zabbix自動發現硬盤並監控其IO

   在使用zabbix監控Linux主機的時候,我們希望zabbix能夠自動發現Linux主機上有多少塊硬盤,而不是我們手動去添加。


實驗目的:

  讓zabbix能夠自動發現Linux服務器的磁盤,並能夠監控磁盤IO且繪出圖形

實驗設備:

  zabbix-server: 172.17.5.230

  zabbix-client:  172.17.5.219

實驗環境:

 linux centos 6.6

 zabbix-2.4.6

實驗步驟

 1. 在zabbix客戶端的安裝目錄,如/usr/local/zabbix/bin/目錄下添加名爲diskiocheck.sh的腳本

 2. 進入/usr/local/zabbix/bin/目錄

 3. 創建新文件touch diskiocheck.sh

 4. 編寫vim diskiocheck.sh

#!/bin/sh
#disk_io monitor
disk=$2
function disk_count {
diskarray=(`cat /proc/diskstats | grep -E "\bsd[a-z]\b| \
\bxvd[a-z]\b|cciss/c[0-9]d[0-9]\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"
}
function qps {
qps=$(iostat $disk -x 1 2 | grep -E "^sd|^cciss" | awk '{if(NR==2)print $NF}')
echo $qps
}
$1


爲了zabbix能夠讀取執行結果,需要把它輸出爲json格式。如下所示執行腳本里函數disk_count

sh /usr/local/zabbix/bin/disk_io_check.sh disk_count

輸出如下:

{
"data":[
    {"{#DISK_NAME}":"sda"},
    {"{#DISK_NAME}":"sdb"},
    {"{#DISK_NAME}":"sdc"},
    {"{#DISK_NAME}":"sdd"}
    ]
}

腳本執行驗證通過,我們還需要修改zabbix-client端,修改zabbix_agentd.conf配置文件

vim /usr/local/zabbix/etc/zabbix_agentd.conf

添加(沒有註銷的是新增的,把註銷的也寫出來主要是爲了方便查看在什麼位置添加)如下所示

# Include=/usr/local/etc/zabbix_agentd.userparams.conf
# Include=/usr/local/etc/zabbix_agentd.conf.d/
# Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/

然後在/usr/local/zabbix/etc/zabbix_agentd.conf.d/目錄底下創建文件,名字可以隨便起個,在這裏文件名爲:zabbixd.conf 編輯文件

cd /usr/local/zabbix/etc/zabbix_agentd.conf.d/
vim zabbixd.conf

在文件中添加zabbix監控項目的key值,文件內容如下

UserParameter=iostat.count[*],/usr/local/zabbix/bin/disk_io_check.sh disk_count $1
UserParameter=iostat.util[*],/usr/local/zabbix/bin/disk_io_check.sh qps $1


添加完畢後重啓 zabbix_agentd

/etc/init.d/zabbix_agentd

到此在服務器端配置完成,接下來需要打開zabbix服務器端web頁面進行配置在瀏覽器中打開點configuration--->templates----->create tempalte如果有現有的模版也可以直接編輯現有的模版,這裏我們直接編輯一個現有的模版如下圖所示:

wKiom1cPZNOQYXXeAADTpkiYfMs236.png

然後再點擊右上角的create item prototype

wKioL1cPZfDxv5OPAABiahnY0xw306.png

這個key值寫iostat.count,填寫完這個後保存,然後點擊item prototypes 如下圖所示

wKioL1cPZYyDlfLRAAB0zqwHCw4731.png

然後再點擊右上角的create item prototype



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章