zabbix监控磁盘_小水玩转监控---Zabbix监控磁盘io之一

6015ace62405644c71f95552ae024635.png

1.拷贝脚本(discover_disk.pl在末尾)至zabbix安装目录的bin目录下(/main/server/zabbix/bin/)并赋予权限

chmod +x /main/server/zabbix/bin/discover_disk.plchown zabbix.zabbix /main/server/zabbix/bin/discover_disk.pl#脚本运行需要perl,若没有安装则使用yum安装yum install perl -y

2.设置agentd

拷贝以下内容至zabbix_agentd.conf末尾,重启zabbix_agentd# diskio discoveryUserParameter=discovery.disks.iostats,/main/server/zabbix/bin/discover_disk.pl#读扇区的次数UserParameter=custom.vfs.dev.read.sectors[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$6}'#写扇区次数UserParameter=custom.vfs.dev.write.sectors[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$10}'#合并读完成次数UserParameter=custom.vfs.dev.read.ops[*],cat /proc/diskstats | grep $1 | head -1 |awk '{print $$4}'#合并写完成次数UserParameter=custom.vfs.dev.write.ops[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$8}'#读花费的毫秒数UserParameter=custom.vfs.dev.read.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$7}'#写操作花费的毫秒数UserParameter=custom.vfs.dev.write.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$11}'

3.导入模板

在zabbix web界面导入模版zbx_export_templates.xml

#模板下载

zbx_export_templates(http://image.wohenniucha.com/upload/2018/05/zbx_export_templates.xml)

#给主机添加该模板即可

4.附脚本discover_disk.pl

#!/usr/bin/perl# Zabbix 2 - disk autodiscovery for linux# all disks listed in /proc/diskstats are returned# special processing on LVMs# special processing on Proxmox VE disks (VM id and VM name are returned)# rq : in Zabbix, create a regexp filter on which disks you want to monitor on your IT System# ex : ^(hd[a-z]+|sd[a-z]+|vd[a-z]+|dm-[0-9]+|drbd[0-9]+)$# ^(loop[0-9]+|sr[0-9]*|fd[0-9]*)$# Custom keys :#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}'#UserParameter=custom.vfs.dev.io.ms[*],cat /proc/diskstats | grep "$1" | head -1 | awk '{print $$13}'#UserParameter=custom.vfs.dev.read.sectors[*],cat /proc/diskstats | grep "$1" | head -1 | awk '{print $$6}'#UserParameter=custom.vfs.dev.write.sectors[*],cat /proc/diskstats | grep "$1" | head -1 | awk '{print $$10}'# Discovery items creation :#Disk {#VMNAME}:{#DMNAME} io spent custom.vfs.dev.io.ms[{#DISK}]#Disk {#VMNAME}:{#DMNAME} read bw custom.vfs.dev.read.sectors[{#DISK}]#Disk {#VMNAME}:{#DMNAME} read io custom.vfs.dev.read.ops[{#DEV}]#Disk {#VMNAME}:{#DMNAME} write bw custom.vfs.dev.write.sectors[{#DISK}]#Disk {#VMNAME}:{#DMNAME} write io custom.vfs.dev.write.ops[{#DEV}]# give disk dmname, returns Proxmox VM namesub get_vmname_by_id { $vmname=`cat /etc/qemu-server/$_[0].conf | grep name | cut -d : -f 2`; $vmname =~ s/^s+//; #remove leading spaces $vmname =~ s/s+$//; #remove trailing spaces return $vmname }$first = 1;print "{";print ""data":[";for (`cat /proc/diskstats`) { ($major,$minor,$disk) = m/^s*([0-9]+)s+([0-9]+)s+(S+)s.*$/; $dmnamefile = "/sys/dev/block/$major:$minor/dm/name"; $vmid= ""; $vmname = ""; $dmname = $disk; $diskdev = "/dev/$disk"; # DM name if (-e $dmnamefile) { $dmname = `cat $dmnamefile`; $dmname =~ s/$//; #remove trailing  $diskdev = "/dev/mapper/$dmname"; # VM name and ID if ($dmname =~ m/^.*--([0-9]+)--.*$/) { $vmid = $1; #$vmname = get_vmname_by_id($vmid); } } #print("$major $minor $disk $diskdev $dmname $vmid $vmname "); print 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值