0、编辑监控磁盘io总吞吐量脚本
cat /home/zabbix/disk_io_check.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| sudo bash #安装iostat命令 yum install -y sysstat #创建监控目录及数据文件 mkdir -p /usr/local/zabbix/script touch /usr/local/zabbix/script/iostat_data.txt chown zabbix.zabbix /usr/local/zabbix/script/iostat_data.txt chmod 777 /usr/local/zabbix/script/iostat_data.txt touch /usr/local/zabbix/script/iostat_collect_data.sh chown zabbix.zabbix /usr/local/zabbix/script/iostat_collect_data.sh chmod 777 /usr/local/zabbix/script/iostat_collect_data.sh #编辑收集数据脚本 echo " #!/bin/bash iostat -dxkt 1 2|grep -E '^sd|^xvda|^vd' > /usr/local/zabbix/script/iostat_data.txt" > /usr/local/zabbix/script/iostat_collect_data.sh #添加到定时任务,每分钟收集一次 echo "* * * * * root sh /usr/local/zabbix/script/iostat_collect_data.sh" >> /etc/crontab #添加参数到zabbix配置文件 echo " #每秒进行 merge 的读操作数目。即 rmerge/s UserParameter=disk.status.rmerge,cat /usr/local/zabbix/script/iostat_data.txt|tail -n \`iostat -dxk 1 1|grep -E '^sd|^xvda|^vd'|wc -l\` |awk '{print \$2}'|awk '{sum+=\$1} END {print sum}' #每秒进行 merge 的写操作数目。即 wmerge/s UserParameter=disk.status.wmerge,cat /usr/local/zabbix/script/iostat_data.txt |tail -n \`iostat -dxk 1 1|grep -E '^sd|^xvda|^vd'|wc -l\` |awk '{print \$3}'|awk '{sum+=\$1} END {print sum}' #每秒完成的读 I/O 设备次数。即 rio/s UserParameter=disk.status.rio,cat /usr/local/zabbix/script/iostat_data.txt |tail -n \`iostat -dxk 1 1|grep -E '^sd|^xvda|^vd'|wc -l\` |awk '{print \$4}'|awk '{sum+=\$1} END {print sum}' #每秒完成的写 I/O 设备次数。即 wio/s UserParameter=disk.status.wio,cat /usr/local/zabbix/script/iostat_data.txt |tail -n \`iostat -dxk 1 1|grep -E '^sd|^xvda|^vd'|wc -l\` |awk '{print \$5}'|awk '{sum+=\$1} END {print sum}' #每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。 UserParameter=disk.status.rsect,cat /usr/local/zabbix/script/iostat_data.txt |tail -n \`iostat -dxk 1 1|grep -E '^sd|^xvda|^vd'|wc -l\` |awk '{print \$6}'|awk '{sum+=\$1} END {print sum}' #每秒写K字节数。是 wsect/s 的一半。 UserParameter=disk.status.wsect,cat /usr/local/zabbix/script/iostat_data.txt |tail -n \`iostat -dxk 1 1|grep -E '^sd|^xvda|^vd'|wc -l\` |awk '{print \$7}'|awk '{sum+=\$1} END {print sum}' #平均每次设备I/O操作的数据大小 (扇区)。 UserParameter=disk.status.sectsize,cat /usr/local/zabbix/script/iostat_data.txt |tail -n \`iostat -dxk 1 1|grep -E '^sd|^xvda|^vd'|wc -l\` |awk '{print \$8}'|awk '{sum+=\$1} END {print sum}' #平均I/O队列长度。 UserParameter=disk.status.queuelength,cat /usr/local/zabbix/script/iostat_data.txt |tail -n \`iostat -dxk 1 1|grep -E '^sd|^xvda|^vd'|wc -l\` |awk '{print \$9}'|awk '{sum+=\$1} END {print sum}' #平均每次设备I/O操作的等待时间 (毫秒)。 UserParameter=disk.status.avgiowait,cat /usr/local/zabbix/script/iostat_data.txt |tail -n \`iostat -dxk 1 1|grep -E '^sd|^xvda|^vd'|wc -l\` |awk '{print \$10}'|awk '{sum+=\$1} END {print sum}' #平均每次设备I/O读操作的等待时间 (毫秒)。 UserParameter=disk.status.avgreadiowait,cat /usr/local/zabbix/script/iostat_data.txt |tail -n \`iostat -dxk 1 1|grep -E '^sd|^xvda|^vd'|wc -l\` |awk '{print \$11}'|awk '{sum+=\$1} END {print sum}' #平均每次设备I/O写操作的等待时间 (毫秒)。 UserParameter=disk.status.avgwriteiowait,cat /usr/local/zabbix/script/iostat_data.txt |tail -n \`iostat -dxk 1 1|grep -E '^sd|^xvda|^vd'|wc -l\` |awk '{print \$12}'|awk '{sum+=\$1} END {print sum}' #平均每次设备I/O操作的服务时间 (毫秒)。 UserParameter=disk.status.svctm,cat /usr/local/zabbix/script/iostat_data.txt |tail -n \`iostat -dxk 1 1|grep -E '^sd|^xvda|^vd'|wc -l\` |awk '{print \$13}'|awk '{sum+=\$1} END {print sum}' # 一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比 UserParameter=disk.status.util,cat /usr/local/zabbix/script/iostat_data.txt |tail -n \`iostat -dxk 1 1|grep -E '^sd|^xvda|^vd'|wc -l\` |awk '{print \$14}'|awk '{sum+=\$1} END {print sum}' " > /usr/local/zabbix/etc/zabbix_agentd.conf.d/iostat_data.conf echo " Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d " >> /usr/local/zabbix/etc/zabbix_agentd.conf #重新启动zabbix_agent客户端 /etc/init.d/zabbix_agentd restart #查看监控进程是否启动 netstat -tunlp|grep 10050
|
1、如果需要批量安装,在ansible-server端配置批量上传脚本
cat /etc/ansible/scopy-diskio-zabbix.sh
1 2 3 4 5
| - hosts: test remote_user: centos tasks: - name: scopy zabbix-agent config to all hosts copy: src="/home/zabbix/disk_io_check.sh" dest="/home/zabbix/disk_io_check.sh"
|
执行批量上传脚本
1
| ansible-playbook /etc/ansible/scopy-diskio-zabbix.sh
|
执行脚本批量配置监控磁盘io总吞吐量
1
| ansible test -m command -a 'sudo sh /home/centos/execute-zabbix.sh'
|
2、web端配置监控模板,亦可自行编译,点击此处下载