[Zabbix] zabbix监控磁盘io总吞吐量批量安装配置


本文总阅读量

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端配置监控模板,亦可自行编译,点击此处下载

目录
  1. 1. 0、编辑监控磁盘io总吞吐量脚本
  2. 2. 1、如果需要批量安装,在ansible-server端配置批量上传脚本
  3. 3. 2、web端配置监控模板,亦可自行编译,点击此处下载

Proudly powered by Hexo and Theme by Lap
本站访客数人次
© 2020 zeven0707's blog