zabbix自动发现磁盘并监控磁盘IO

简介:

转载至http://www.jianshu.com/p/62c86a397b4d

服务器磁盘的运作情况在一定程度上反应系统的负载。
磁盘通常是服务器最慢的设备,极容易出现瓶颈,通过监控可以判断出整个系统的短板。
zabbix自带的“Template OS Linux”模板可自动发现磁盘并监控空间利用率,小编这次介绍利用zabbix LLD功能监控磁盘IO的方法,使用的到的系统命令有/proc/diskstats

动态磁盘IO监控用到的三个文件我已经上传至github

https://github.com/JPOPS/Monitor/tree/master/zabbix-DiskIO

1
2
3
4
#自动发现脚本文件
/usr/local/zabbix/scripts/discover_disk .pl #模板文件web端导入即可
Template_Linux_Disk_IO_Stats.xml #zabbix 自定义key文件
/usr/local/zabbix/etc/zabbix_agentd .conf.d /zabbix_io_stats

自动发现脚本

脚本非小编亲写,来自网络。

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
#!/usr/bin/perlsub 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\"{#DISKDEV}\":\"$diskdev\",\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" ;

zabbix agent 配置

  • 编辑zabbix agent配置文件,设置Include目录:

1
Include= /usr/local/zabbix/etc/zabbix_agentd .conf.d/
  • 将key文件放置agent配置文件夹下,并重启客户端

1
# diskio discoveryUserParameter=discovery.disks.iostats,/usr/local/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}'

Web配置

  • 导入Template_Linux_Disk_IO_Stats.xml

  • 管理 > 一般 > 正则表达式 > 新的正则表达式
    正则表达式内容根据自己主机硬盘名称填写,类型为结果为真

1
2
#Linux disks for autodiscovery
^(xvda|xvdb|xvdc|sda|sdb|sdc)$

添加模板稍后就会画出图形








      本文转自YU文武貝 51CTO博客,原文链接:http://blog.51cto.com/linuxerxy/1907344,如需转载请自行联系原作者


相关文章
|
2月前
|
缓存 运维 Linux
Linux系统调优详解(十二)——IO调优之磁盘测速
Linux系统调优详解(十二)——IO调优之磁盘测速
58 1
|
3月前
|
存储 SQL 监控
修改Zabbix源码实现监控数据双写,满足业务需求!
虽然对接Elasticsearch后有诸多好处,但是它不往数据库写历史数据了,同时还不再计算趋势数据了。有这么一个场景...
修改Zabbix源码实现监控数据双写,满足业务需求!
|
4月前
|
缓存 关系型数据库 MySQL
MySQL Binlog--事务日志和BINLOG落盘参数对磁盘IO的影响
MySQL Binlog--事务日志和BINLOG落盘参数对磁盘IO的影响
47 0
|
4月前
|
数据采集 监控 数据库
OceanBase社区版可以通过Zabbix监控
OceanBase社区版可以通过Zabbix监控
77 4
|
5天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
16天前
|
Linux
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
21 0
|
2月前
|
运维 Linux
Linux系统调优详解(五)——磁盘IO状态查看命令
Linux系统调优详解(五)——磁盘IO状态查看命令
53 5
|
1月前
|
数据采集 监控 数据库
请问OceanBase社区版能否通过zabbix监控,然后将报错信息展现到grafana?
【2月更文挑战第25天】请问OceanBase社区版能否通过zabbix监控,然后将报错信息展现到grafana?
25 2
|
2月前
|
监控 Cloud Native 关系型数据库
使用 Grafana 统一监控展示 - 对接 Zabbix
使用 Grafana 统一监控展示 - 对接 Zabbix
|
3月前
|
Linux 测试技术
百度搜索:蓝易云【linux系统磁盘IO性能检测教程】
这些是在Linux系统中检测磁盘IO性能的常见方法。根据您的需求和具体环境,您可以选择适合您的方法来监视和测试磁盘IO性能。请注意,在进行性能测试时要小心,以避免对系统造成不必要的负载或影响正常运行。
46 0

推荐镜像

更多