关于磁盘读写速度相关的知识点在此 关于zabbix配置磁盘读写速度监控(详解篇)
发送disk_scan.sh给客户机(扫描磁盘)(disk_scan.sh在文末)
ansible live -m copy -a 'src=/etc/zabbix/zabbix_agentd.d/disk_scan.sh dest=/etc/zabbix/zabbix_agentd.d/' -u yff -s -K -k
给disk_scan.sh赋权限
ansible live -m shell -a 'chmod +x /etc/zabbix/zabbix_agentd.d/disk_scan.sh' -u yff -s -K -k
发送io.conf给客户机(自定义键值)(io.conf在文末)
ansible live -m copy -a 'src=/etc/zabbix/zabbix_agentd.d/io.conf dest=/etc/zabbix/zabbix_agentd.d/' -u yff -s -K -k
关闭selinux
ansible live -m shell -a 'setenforce 0' -u yff -s -K -k
查看是否关闭
ansible live -m shell -a 'getenforce' -u yff -s -K -k
修改文件永久关闭selinux
ansible live -m shell -a "sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config" -u yff -s -K -k
允许使用自定义键值
ansible live -m shell -a "sed -i 's/# UnsafeUserParameters=0/UnsafeUserParameters=1/g' /etc/zabbix/zabbix_agentd.conf" -u yff -s -K -k----------------------------------------------------------我是分隔符----------------------------------------------------------------
[disk_scan.sh] #!/bin/bash diskarray=(`cat /proc/diskstats |grep -E "\bsd[abcdefg]\b|\bvd[abcdefg]\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 "\"{#DISKNAME}\":\"${diskarray[$i]}\"}" if [ $i -lt $[$length-1] ];then printf ',' fi done printf "\n\t]\n" printf "}\n" [io.conf] #auto discovery disk UserParameter=io.scandisk,/etc/zabbix/zabbix_agentd.d/disk_scan.sh #磁盘读的次数 UserParameter=custom.vfs.dev.read.ops[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$4}' #磁盘读的毫秒数 UserParameter=custom.vfs.dev.read.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$7}' #磁盘写的次数 UserParameter=custom.vfs.dev.write.ops[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$8}' #磁盘写的毫秒数 UserParameter=custom.vfs.dev.write.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$11}' UserParameter=custom.vfs.dev.io.active[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$12}' #花费在IO操作上的毫秒数 UserParameter=custom.vfs.dev.io.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$13}' #读扇区的次数(一个扇区的等于512B) UserParameter=custom.vfs.dev.read.sectors[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$6}' #写扇区的次数(一个扇区的等于512B) UserParameter=custom.vfs.dev.write.sectors[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$10}'web端配置
监控项原型 Disk:$1:磁盘读的毫秒数:ms custom.vfs.dev.read.ms[{#DISKNAME}] 浮点数 ms
Disk:$1:磁盘读扇区的次数:ops per second(512B一个扇区) custom.vfs.dev.read.ops[{#DISKNAME}] 浮点数 ops/second
Disk:$1:磁盘读扇区的速度:Bytes/sec custom.vfs.dev.read.sectors[{#DISKNAME}] 浮点数 Bytes/sec
Disk:$1:磁盘写的毫秒数:ms custom.vfs.dev.write.ms[{#DISKNAME}] 浮点数 ms
Disk:$1:磁盘写扇区的次数:ops per second(512B一个扇区) Disk:{#DISKNAME}:磁盘写扇区的次数:ops per second(512B一个扇区) custom.vfs.dev.write.ops[{#DISKNAME}] 浮点数 ops/second
Disk:$1:磁盘写扇区的速度:Bytes/sec custom.vfs.dev.write.sectors[{#DISKNAME}] 浮点数 ops/second
# #
