zabbix 监控磁盘IO状态
1.1 导入模板
1.2 添加脚本,配置文件
#!/bin/bashsh_file=/data/shagent_file=/usr/local/zabbix/etc/zabbix_agentd.conf.d/disk_io.conf#zabbix_bin="/usr/local/zabbix"#nohupsoftinstallrpm-qacoreutils>>/dev/null&&[$?=0]||yum-yinstallcoreutilsrpm-qasysstat>>/dev/null&&[$?=0]||yum-yinstallsysstatzabbix_bin=`echo${agent_file%/*}`echo$zabbix_binif[!-e"${zabbix_bin}"];thenexit2fi#發現腳本if[!-f"${sh_file}/disk_discovery.sh"];thencat>>${sh_file}/disk_discovery.sh<<"EOF"#!/bin/bashdiskarray=(`cat/proc/diskstats|grep-E"\bsd[a-z]\b|\bxvd[a-z]\b|\bvd[a-z]\b"|awk'{print$3}'|sort|uniq2>/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"EOFfi#磁盤狀態監控腳本if[!-f"${sh_file}/disk_status.sh"];thencat>>${sh_file}/disk_status.sh<<"EOF"#/bin/shdevice=$1item=$2case$iteminrrqm)/usr/bin/tail-n20/tmp/iostat_output|grep"\b$device\b"|tail-1|awk'{print$2}';;wrqm)/usr/bin/tail-n20/tmp/iostat_output|grep"\b$device\b"|tail-1|awk'{print$3}';;rps)/usr/bin/tail-n20/tmp/iostat_output|grep"\b$device\b"|tail-1|awk'{print$4}';;wps)/usr/bin/tail-n20/tmp/iostat_output|grep"\b$device\b"|tail-1|awk'{print$5}';;rKBps)/usr/bin/tail-n20/tmp/iostat_output|grep"\b$device\b"|tail-1|awk'{print$6}';;wKBps)/usr/bin/tail-n20/tmp/iostat_output|grep"\b$device\b"|tail-1|awk'{print$7}';;avgrq-sz)/usr/bin/tail-n20/tmp/iostat_output|grep"\b$device\b"|tail-1|awk'{print$8}';;avgqu-sz)/usr/bin/tail-n20/tmp/iostat_output|grep"\b$device\b"|tail-1|awk'{print$9}';;await)/usr/bin/tail-n20/tmp/iostat_output|grep"\b$device\b"|tail-1|awk'{print$10}';;svctm)/usr/bin/tail-n20/tmp/iostat_output|grep"\b$device\b"|tail-1|awk'{print$11}';;util)/usr/bin/tail-n20/tmp/iostat_output|grep"\b$device\b"|tail-1|awk'{print$12}';;esacEOFfi#添加配置文件if[!-f"${agent_file}"];thencat>>${agent_file}<<"EOF"UserParameter=disk.discovery,/bin/bash${sh_file}/discovery.shUserParameter=disk.status[*],${sh_file}/disk_status.sh$1$2EOF#添加清空iostat产生的日志文件if[!-f${sh_file}/clean_output.sh];thencat>>${sh_file}/clean_output.sh<<"EOF"#!/bin/bash#清空/tmp/iostat_output文件,重启进程Num=`psaux|grepiostat|grep-vgrep|awk'{print$2}'|wc-l`file='/tmp/iostat_output'echo$Numif[$Num-ne1];thenpkilliostatsleep1nohup/usr/bin/iostat-dxkt1>$file2>/dev/null&fiPid=`psaux|grepiostat|grep-vgrep|awk'{print$2}'`if[$Pid-gt1];thenecho$Pidelsenohup/usr/bin/iostat-dxkt1>$file2>/dev/null&ficount=`cd/tmp/&&ls-lh|grepiostat_output|awk'{print$5}'`if[[$count>100K]];thenkill-9$Pidsleep1\mv$file/optrm-f/opt/iostat_outputnohup/usr/bin/iostat-dxkt1>$file2>/dev/null&fiEOFfi[-e/etc/init.d/zabbix-agentd]&&/etc/init.d/zabbix-agentdreload
1.3 模板请查看附件
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。