设为首页 收藏本站
查看: 1801|回复: 0

[经验分享] zabbix 系统IO监控

[复制链接]

尚未签到

发表于 2019-1-24 13:49:21 | 显示全部楼层 |阅读模式
  #  软件介绍 iostat
  # 使用iostat 需先安装sysstat软件包, 系统包中有带
  

  # 系统: centos,rh 6-7都可以
  zabbix版本: 3.0 3.2 可以 其它版本没有试过
  

  # iostat用于输出CPU和磁盘I/O相关统计信息
  

  # iostat可以显示CPU和I/O系统的负载情况及分区状态信息.
  直接执行iostat可以显示下面内容:
  

  [wmt@template ~]$ iostat
  Linux 2.6.32-358.el6.x86_64 (template.xx.xx) 07/14/2017 _x86_64_(32 CPU)
  

  avg-cpu:  %user   %nice %system %iowait  %steal   %idle
  2.93    0.00    0.20    0.04    0.00   96.83
  

  Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
  sda               0.66         6.60        14.79  462593198 1036802588
  sdc               0.20         1.60         0.00  112173840          0
  sdb              25.46       453.65       582.45 31805540026 40835922808
  scd0              0.00         0.00         0.00       5012          0
  dm-0             25.21       453.64       582.45 31805251514 40835922808
  dm-1              1.89         6.35        14.55  445409130 1020026016
  dm-2              0.06         0.24         0.24   17154880   16776296
  

  #cpu段配置说明
  avg-cpu
  %user: 用户空间使用CPU百分比
  %nice : nice使用
  %system : 系统(kernel)使用cpu百分比
  %iowait : cpu等待硬盘I/O时,所占用的百分比
  %steal  : 系统偷出CPU的百分比 (不知道什么鬼,求解释)
  %idle: 系统空闲百分比
  

  # Device磁盘段配置说明
  tps: 每秒钟发送到I/O请求数
  Blk_read/s: 每秒从磁盘读出的的数据量,单位B
  Blk_wrtn/s: 每秒从磁盘写入的的数据量,单位B
  Blk_read: 开机始从磁盘读出的数据总量
  Blk_wrtn: 开机始从磁盘写入的数据总量
  

  # 命令使用
  iostat 1   # 每秒刷新一次
  iostat -k  # 以KB为单位 默认B
  iostat -m  # 以MB为单位
  iostat -v  # 显示版本号
  iostat -c  # 仅显示CPU
  iostat -d  # 仅显示磁盘
  

  ##################  dm设备监控大概思路    ##################################
  

  #查看dm对应设备号是哪一个
  [root@template ~]# dmsetup ls
  mpathb(253:0)
  vg_sys-LogVol01(253:1)
  vg_sys-LogVol00(253:2)
  

  # 找到设备号对应信息
  [root@template ~]# ll /dev/mapper/
  total 0
  crw-rw----. 1 root root 10, 58 Apr 25  2015 control
  lrwxrwxrwx. 1 root root      7 Apr 25  2015 mpathb -> ../dm-0
  lrwxrwxrwx. 1 root root      7 Apr 25  2015 vg_sys-LogVol00 -> ../dm-2
  lrwxrwxrwx. 1 root root      7 Apr 25  2015 vg_sys-LogVol01 -> ../dm-1
  

  # 再检查设备挂载目录,比如swap就可不用监控,一般也不会往里写入数据
  [root@template ~]# cat /etc/fstab
  #
  # /etc/fstab
  # Created by anaconda on Sat Apr 25 01:09:22 2015
  #
  /dev/mapper/vg_sys-LogVol01 /                       ext4    defaults        1 1
  /dev/mapper/vg_sys-LogVol00 swap                    swap    defaults        0 0
  /dev/mapper/mpathb/homeext4defaults1 0
  

  ##################### zabbix 配置   #####################
  

  ###############  在需要监控的机器中增加这个脚本 #########################
  # 计划脚本文件

  ################ 配置配合 计划任务每20秒更新一次 ###################
#!/bin/bash
#
#   Name:iostat 只升不降,取出iostst最新io写入写出
#   Version Number:1.01
#   Type:服务启动脚本
#   Language:bash shell  
#   Date:2017-07-17
#   Author:xiong
# 每隔多少秒刷新一次iostat,默认的那个值只降不升  
iostat -xdtk 5 3 > /tmp/iostst_temp.txt
# 取出现在时间
times=`date  "+%Y"年0"%h%d"日" %H"时"%M"分"%S"秒""`
# 取出最后一次iostat更新的数据,为最新数据,将最新的数据更新至/tmp/2.txt 不输出
grep "$times" -A 100 /tmp/iostst_temp.txt  > /tmp/iostst_temp2.txt
# 时间格式: 07/17/2017 03:03:06 PM
# times=`date "+%D %r"`   
#
# 时间格式: 2017年07月17日 15时01分03秒
# times=`date  "+%Y"年0"%h%d"日" %H"时"%M"分"%S"秒""`
  

  

  # 计划任务:每一分钟执行一次
  */1 * * * * /bin/bash /usr/local/zabbix/script/iostate.sh
  

  # 内容导出如下
  Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
  sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
  

  #  配置介绍
  rrqm/s: 每秒进行 merge 的读操作数目。即 rmerge/s
  wrqm/s: 每秒进行 merge 的写操作数目。即 wmerge/s
  r/s: 每秒完成的读 I/O 设备次数。即 rio/s
  w/s: 每秒完成的写 I/O 设备次数。即 wio/s
  rsec/s: 每秒读扇区数。即 rsect/s
  wsec/s: 每秒写扇区数。即 wsect/s
  rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。
  wkB/s: 每秒写K字节数。是 wsect/s 的一半。
  avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。
  avgqu-sz: 平均I/O队列长度。
  await: 平均每次设备I/O操作的等待时间 (毫秒)。
  svctm: 平均每次设备I/O操作的服务时间 (毫秒)。
  %util: 一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比
  

  # 在zabbix_agent中增加一个脚本
#############################  zabbix脚本 ###########################
#!/bin/bash
#
disk=$1
case $2 in
rrqm)
        grep "$disk" /tmp/iostst_temp2.txt | awk '{print $2}' ;;
wrqm)
        grep "$disk" /tmp/iostst_temp2.txt | awk '{print $3}' ;;
read)
grep "$disk" /tmp/iostst_temp2.txt | awk '{print $4}' ;;
wirte)
grep "$disk" /tmp/iostst_temp2.txt | awk '{print $5}' ;;
readin)
        grep "$disk" /tmp/iostst_temp2.txt | awk '{print $6}' ;;
wirtein)
        grep "$disk" /tmp/iostst_temp2.txt | awk '{print $7}' ;;
avgrqsz)
grep "$disk" /tmp/iostst_temp2.txt | awk '{print $8}' ;;
avgqusz)
grep "$disk" /tmp/iostst_temp2.txt | awk '{print $9}' ;;
await)
grep "$disk" /tmp/iostst_temp2.txt | awk '{print $10}' ;;
rawait)
grep "$disk" /tmp/iostst_temp2.txt | awk '{print $11}' ;;
wawait)
grep "$disk" /tmp/iostst_temp2.txt | awk '{print $12}' ;;
svctm)
grep "$disk" /tmp/iostst_temp2.txt | awk '{print $13}' ;;
util)
        grep "$disk" /tmp/iostst_temp2.txt | awk '{print $14}' ;;
*)
        echo "使用方法  /bash disk_name $2"
        exit 5 ;;
esac  

# 最后需要配置文件中在zabbix_agentd.conf中增加这行
UserParameter=sys.io
  • ,/usr/local/zabbix/script/system_io.sh $1 $2
      

      

      # 在服务器端测试是脚本是否可以
      [root@zabbixd bin]# zabbix_get -s ipaddress -p port -k sys.io[sdb,wawait]
      0.0
      [root@zabbixd bin]# zabbix_get -s ipaddress -p port -k sys.io[sdb,wrtn]
      0.0
      

      

      # 可能会报权限错误需要增加权限 chmod +x /bin/bash /usr/local/zabbix/script/iostate.sh
      #    以及在增加属主属组权限  chown zabbix.zabbix !$
      

      扩展:dm设备详解  http://blog.chinaunix.net/uid-26230811-id-3265484.html
      iostat详解    http://blog.csdn.net/zhangjay/article/details/6656771
      http://blog.csdn.net/sunansheng/article/details/51942281
      

      #     另一种监控方式,文本没看太明白,另一种思路
      http://blog.csdn.net/tenfyguo/article/details/7477526
      

      #  模板如下,自动发现需要定义API,不太熟,练习中,有多个磁盘需要监控的话,直接将模板导出,然后将模板名称更换一下需要的,然后在导入就行了,模板如下:
      

      

      #   模板请直接下载附件
      

      #最后在加上一个效果图

      # 最后有问题的话,底下留言


    附件:http://down.运维网.com/data/2366859


  • 运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
    2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
    3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
    4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
    5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
    6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
    7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
    8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

    所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-667080-1-1.html 上篇帖子: zabbix3.2.6安装 下篇帖子: zabbix监控目录的变化
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    扫码加入运维网微信交流群X

    扫码加入运维网微信交流群

    扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

    扫描微信二维码查看详情

    客服E-mail:kefu@iyunv.com 客服QQ:1061981298


    QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


    提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


    本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



    合作伙伴: 青云cloud

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