Zabbix添加自定義監控項(一)


前言:由於Zabbix提供的項目和模板有限,有時我們需要自定義監控項,下面以監控磁盤I/O使用率為例,創建自動發現規則,並配置圖形。

 

(1)Zabbix_agentd端自動發現腳本,zabbix要求返回的數據為json格式。

自動發現磁盤,這里有sd和md開頭的,根據需求修改腳本去過濾出磁盤:

運行:/usr/local/etc/disk_io_check.sh disk_count

腳本摘自網絡,可自行修改,或用其他語言編寫也可以。

# vim /usr/local/etc/disk_io_check.sh
#!/bin/sh
#disk_io monitor
disk=$2
function disk_count {
diskarray=(`cat /proc/diskstats | grep -E "\b[s|m]d[a-z|0]\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|md" | awk '{if(NR==2)print $NF}')
echo $qps
}
$1

exit 0

 

(2)采集數據腳本:

也是上面的腳本/usr/local/etc/disk_io_check.sh qps

(3)配置zabbix_agentd.conf

# cat /etc/zabbix/zabbix_agentd.d/disk_io.conf

UserParameter=iostat.count,/usr/local/etc/disk_io_check.sh disk_count

UserParameter=iostat.util[*],/usr/local/etc/disk_io_check.sh qps $1

(4)重啟zabbix_agentd

killall zabbix_agentd;./zabbix_agentd

 

(5)Zabbix_server端測試:返回預知的數據,則腳本和配置OK

# /usr/local/zabbix-2.2.2/bin/zabbix_get -s XXX.XXX.XXX.XXX -p 10050 -k 'iostat.count'

{

       "data":[

              {"{#DISK_NAME}":"md0"},

              {"{#DISK_NAME}":"sda"},

              {"{#DISK_NAME}":"sdb"},

              {"{#DISK_NAME}":"sdc"},

              {"{#DISK_NAME}":"sdd"}

       ]

}

 

# /usr/local/zabbix-2.2.2/bin/zabbix_get -s xxx.xxx.xxx.xxx -p 10050 -k 'iostat.util[sdc]'

2.50

(6)在模板中配置自動發現:

配置項目原型:

(7)在主機或模板中配置圖形:

 

下面是數據采集一段時間后的圖形:

 

至此,自動發現配置完畢。

注意點:(1)鍵值要對應起來(2)自動發現返回的數據為json格式

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM