標籤:zabbix自動探索硬碟並監控其io
在使用zabbix監控Linux主機的時候,我們希望zabbix能夠自動探索Linux主機上有多少塊硬碟,而不是我們手動去添加。
實驗目的:
讓zabbix能夠自動探索Linux伺服器的磁碟,並能夠監控磁碟IO且繪出圖形
實驗裝置:
zabbix-server: 172.17.5.230
zabbix-client: 182.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 monitordisk=$2function 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++));doprintf ‘\n\t\t{‘printf "\"{#DISK_NAME}\":\"${diskarray[$i]}\"}"if [ $i -lt $[$length-1] ];thenprintf ‘,‘fidoneprintf "\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/*.confInclude=/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 $1UserParameter=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如果有現有的模版也可以直接編輯現有的模版,這裡我們直接編輯一個現有的模版如所示:
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M02/7F/02/wKiom1cPZNOQYXXeAADTpkiYfMs236.png" style="float:none;" title="11.png" alt="wKiom1cPZNOQYXXeAADTpkiYfMs236.png" />
然後再點擊右上方的create item prototype
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/7E/FF/wKioL1cPZfDxv5OPAABiahnY0xw306.png" title="12.png" alt="wKioL1cPZfDxv5OPAABiahnY0xw306.png" />
這個key值寫iostat.count,填寫完這個後儲存,然後點擊item prototypes 如所示
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/7E/FF/wKioL1cPZYyDlfLRAAB0zqwHCw4731.png" style="float:none;" title="13.png" alt="wKioL1cPZYyDlfLRAAB0zqwHCw4731.png" />
然後再點擊右上方的create item prototype
本文出自 “杜雲龍” 部落格,請務必保留此出處http://duyunlong.blog.51cto.com/1054716/1763863
zabbix自動探索硬碟並監控其IO