zabbix能监控到linux的磁盘数据,Zabbix监控磁盘I/O

自动发现磁盘不同的设备,如sdb,xda,vsda等

通过脚本获取系统块设备的名称,然后保存到变量中,在通过zabbix客户端的自定义监控选项将监控的键值传给服务端

创建脚本目录:mkdir /etc/zabbix/scripts/

创建搜索脚本:

[root@localhost scripts]# cat disk.pl

#!/usr/bin/perl

#give disk dmname, returns Proxmox VM name

sub 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 "{\n";

print "\t\"data\":[\n\n";

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/\n$//; #remove trailing \n

$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 \n");

print "\t,\n" if not $first;

$first = 0;

print "\t{\n";

print "\t\t\"{#DISK}\":\"$disk\",\n";

print "\t\t\"{#DMNAME}\":\"$dmname\",\n";

print "\t\t\"{#VMNAME}\":\"$vmname\",\n";

print "\t\t\"{#VMID}\":\"$vmid\"\n";

print "\t}\n";

}

print "\n\t]\n";

print "}\n";

[root@localhost scripts]# cat /etc/zabbix/scripts/

disk.pl fdisk.sh ls/

[root@localhost scripts]# cat /etc/zabbix/scripts/disk.pl

#!/usr/bin/perl

#give disk dmname, returns Proxmox VM name

sub 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 "{\n";

print "\t\"data\":[\n\n";

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/\n$//; #remove trailing \n

$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 \n");

print "\t,\n" if not $first;

$first = 0;

print "\t{\n";

print "\t\t\"{#DISK}\":\"$disk\",\n";

print "\t\t\"{#DMNAME}\":\"$dmname\",\n";

print "\t\t\"{#VMNAME}\":\"$vmname\",\n";

print "\t\t\"{#VMID}\":\"$vmid\"\n";

print "\t}\n";

}

print "\n\t]\n";

print "}\n";

[root@localhost scripts]#

[root@localhost scripts]# chown -R zabbix.zabbix /etc/zabbix/scripts/

[root@localhost scripts]# chmod 755 /etc/zabbix/scripts/disk.pl

添加key

[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf

# diskio discovery

UserParameter=discovery.disks.iostats,/etc/zabbix/scripts/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}'

zabbix-server test

[root@ds fonts]# zabbix_get -s 192.168.158.130 -k custom.vfs.dev.write.ms[sda1]

35110

[root@ds fonts]# zabbix_get -s 192.168.158.130 -k custom.vfs.dev.write.ms[sda2]

1070115

[root@ds fonts]# zabbix_get -s 192.168.158.130 -k custom.vfs.dev.write.ms[sda3]

0

导入模板:

链接: 密码:isij

修改如图:

5c1967c5325842cec010c6abd3e07965.gif

最终效果图

5c1967c5325842cec010c6abd3e07965.gif

5c1967c5325842cec010c6abd3e07965.gif

5c1967c5325842cec010c6abd3e07965.gif

5c1967c5325842cec010c6abd3e07965.gif

5c1967c5325842cec010c6abd3e07965.gif

除非另有说明,否则本站上的内容根据以下许可进行许可: CC署名-非商业性使用-相同方式共享4.0国际许可协议4.0进行许可

本文作者:www.linuxea.com for Mark

文章链接:http://www.linuxea.com/1323.html (转载请注明本文出处和本章链接)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值