IT运维管理,ITIL,ITSS,ITSM,ISO20000-ITIL先锋论坛

 找回密码
 点击获取邀请码 - 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 72|回复: 0

[Zabbix专区] ZABBIX动态发现了磁盘监控

[复制链接]
来自- 湖南娄底

参加活动:0

组织活动:12

发表于 2017-8-20 10:22:17 | 显示全部楼层 |阅读模式 来自- 湖南娄底

zabbix动态发现磁盘监控

在linux下不同硬件或者系统版本不同识别到的块设备的名称各不相同,可能是sda、xda等等,因此通过zabbix监控磁盘普通的模板显得死板不不够灵活。通过zabbix的自动发现功能,通过脚本获取系统块设备的名称,然后保存到变量中,在通过zabbix客户端的自定义监控选项将监控的键值传给服务端。

参考http://www.ttlsa.com/zabbix/zabbix-lld-monitor-disk-io-stats/ 该文档部署,但需要修改zabbix服务端的模板文件,测试发生使用该文档提供的zbx_parse_iostat_values.sh获得的键值在zabbix服务端呈现图像时有问题,因此使用除了需要修改zabbix客户端的配置 文件中的自定义键值的获取方式外,还需要修改服务端模板文件


1创建自动发现脚本

vim /etc/zabbix/scripts/discover_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/$majorminor/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";

# chmod 755 /etc/zabbix/scripts/discover_disk.pl


1ZABBIX客户端设置

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



  • 1重启ZABBIX客户端

    使用zabbix_get测试这些自定义键值是否生效

    zabbix_get –s 127.0.0.1 –k custom.vfs.dev.write.ms[sda1]

    1配置服务端

    导入模板文件zbx_export_templates.xml并修改
    configuration-templates-import 导入模板
    导入后点击
    1.png
    编辑监控的选项
    将原来的监控键值都删除,添加在zabbix客户端配置文件中的对应键值
    监控磁盘每秒钟读取的字节数
    1.png
    监控磁盘每秒中写入的字节数
    1.png
    磁盘每秒钟读操作的次数
    1.png
    每秒钟写操作次数
    1.png
    磁盘每次读操作花费的毫秒
    1.png
    写花费的毫秒
    1.png
    添加绘图
    1.png
    1.png
    1.png
    1.png

    对需要监控磁盘的主机链接模板
    1.png
    查看正则配置,改配置默认在导入模板后会有,需要修改
    1.png
    编辑,在正则中添加sda1
    1.png
    查看监控结果
    1.png


    原创:大志

    本版积分规则

    选择云运维时代的王牌讲师-长河老师,助你轻松入门ITIL Foundation培训课程

    QQ|小黑屋|手机版|Archiver|ITIL先锋论坛万人社区 ( 粤ICP备17056641号|网站地图

    Baidu

    GMT+8, 2018-5-28 12:54 , Processed in 0.238729 second(s), 37 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表