`

Zabbix动态监控磁盘I/O

阅读更多

         最近做压测,需要监控每台服务器的磁盘I/O,由于每台服务器的磁盘名称可能不一样,所以需要用到Zabbix的LLD功能来发现磁盘并监控I/O。

参考文章

http://www.programering.com/a/MDOwYDNwATc.html

一、客户端(被监控端)

1.发现磁盘的脚本(disk_discovery.sh)

#!/bin/bash

#written by lenwood

#mail:

diskarray=(`cat /proc/diskstats |grep -E "\b[sv]d[abcdefg]\b|\bxvd[abcdefg]\b"|grep -i "\b$1\b"|awk '{print $3}'|sort|uniq   2>/dev/null`)

length=${#diskarray[@]}

printf "{\n"

printf  '\t'"\"data\":["

for ((i=0;i<$length;i++))

do

printf '\n\t\t{'

printf "\"{#DISK_NAME}\":\"${diskarray[$i]}\"}"

if [ $i -lt $[$length-1] ];then

printf ','

fi

done

printf  "\n\t]\n"

 

printf "}\n"

我把这个脚本放到zabbix-agent的/etc/zabbix/os目录下

执行结果如下:

root@ubuntu-14:/etc/zabbix/os# ./disk_discovery.sh 

{

"data":[

{"{#DISK_NAME}":"sda"}

]

}

 

说明:执行结果看到此台测试机上面只有一块磁盘sda

 

2.获取磁盘I/O信息

 

a.使用iostat收集磁盘I/O信息(这条指令是每隔一秒将磁盘信息内容写入到/tmp/iostat_output,并且后台运行)

     1.apt-get install sysstat(有些机器上面没有安装sysstat,如果有了可以忽略此步骤)

      安装完之后可以使用 iostat 展示信息如下:

      root@ubuntu-14:/etc/zabbix/os# iostat

     Linux 3.13.0-24-generic (ubuntu-14) 11/20/2015 _x86_64_(2 CPU)

 

      avg-cpu:  %user   %nice %system %iowait  %steal   %idle

                      1.70    0.01    1.30    0.01    0.00   96.99

 

      Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn

        sda               0.55         1.17        12.60    1715312   18448440

       dm-0              0.89         0.98        12.20    1440157   17864000

       dm-1              0.15         0.19         0.40     272380     584364

 

     2.nohup /usr/bin/iostat -dxkt 1 > /tmp/iostat_output 2>/dev/null

 

b.编写脚本(disk_status.sh)

 

#/bin/bash

device=$1

item=$2

 

case $item in

         rrqm)

            /usr/bin/tail -n20 /tmp/iostat_output |grep "\b$device\b"|tail -1|awk '{print $2}'

            ;;

         wrqm)

            /usr/bin/tail -n20 /tmp/iostat_output |grep "\b$device\b"|tail -1|awk '{print $3}'

            ;;

          rps)

            /usr/bin/tail -n20 /tmp/iostat_output |grep "\b$device\b"|tail -1|awk '{print $4}'

            ;;

          wps)

            /usr/bin/tail -n20 /tmp/iostat_output |grep "\b$device\b" |tail -1|awk '{print $5}'

            ;;

        rKBps)

            /usr/bin/tail -n20 /tmp/iostat_output |grep "\b$device\b" |tail -1|awk '{print $6}'

            ;;

        wKBps)

            /usr/bin/tail -n20 /tmp/iostat_output |grep "\b$device\b" |tail -1|awk '{print $7}'

            ;;

     avgrq-sz)

            /usr/bin/tail -n20 /tmp/iostat_output |grep "\b$device\b" |tail -1|awk '{print $8}'

            ;;

     avgqu-sz)

            /usr/bin/tail -n20 /tmp/iostat_output |grep "\b$device\b" |tail -1|awk '{print $9}'

            ;;

        await)

            /usr/bin/tail -n20 /tmp/iostat_output |grep "\b$device\b" |tail -1|awk '{print $10}'

            ;;

        svctm)

            /usr/bin/tail -n20 /tmp/iostat_output |grep "\b$device\b" |tail -1|awk '{print $11}'

            ;;

         util)

            /usr/bin/tail -n20 /tmp/iostat_output |grep "\b$device\b" |tail -1|awk '{print $12}'

            ;;

 

esac

 

3.修改zabbix-agent配置文件(zabbix-agentd.conf)

 

      1.添加用户参数
              UserParameter=disk.discovery,/bin/bash /etc/zabbix/os/disk_discovery.sh 
              UserParameter=disk.status[*],/bin/bash /etc/zabbix/os/disk_status.sh $1 $2
      2.检查ServerActive(我的是服务器和客户端不在同一台机器上面)
              #ServerActive=127.0.0.1
              ServerActive= 服务器IP
 

二、服务端(监控端)

1.root@zabbixserv:/usr/bin# zabbix_get -s 客户端IP -p 10050 -k disk.discovery

{

"data":[

{"{#DISK_NAME}":"sda"}

]

}

2.root@zabbixserv:/usr/bin# zabbix_get -s 客户端IP -p 10050 -k disk.status[sda,avgrq-sz]

8.00

在此过程中如果没有显示数据,那么请去查看日志/var/log/zabbix-agent/zabbix-agentd.log

和/var/log/zabbix-server/zabbix-server.log(查看具体错误进行处理)。

三、在网页上进行设置模板

1.create discovery rule



 2.create Item prototypes

这里我创建了5个

 



 

以avgqu-sz为例设置如下:

 3.create graph prototypes



 

查看结果如下:



 

 

 如果是2.4.4的版本可以直接导入模板 (附件中zbx_export_disk_template.xml)

 

 

 

 

 

 

 

 

  • 描述: 添加discovery rule
  • 大小: 64.3 KB
  • 大小: 72.5 KB
  • 大小: 91.6 KB
  • 大小: 86.6 KB
  • 大小: 173.9 KB
分享到:
评论

相关推荐

    zabbix-监控redis的info下信息,nginx桩信息,docker自动发现各个容器的资源信息

    mkdir -p /usr/src/zabbix/src/modules/zabbix_module_docker/ cd /usr/src/zabbix/src/modules/zabbix_module_docker/ rz zabbix_module_docker.so chmod 777 /usr/src/zabbix/src/modules/zabbix_module_docker/...

    zabbix下监控磁盘IOPS

    ZABBIX下监控磁盘iops , 通过自定义key值获取信息,

    zabbix-5.0.txt

    rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm ``` ``` yum clean all ``` 安装完会生成一个文件:/etc/yum.repos.d/zabbix.repo 将zabbix的yum源替换为阿里...

    Zabbix系统监控接口文档

    Zabbix系统监控接口文档Zabbix系统监控接口文档Zabbix系统监控接口文档

    zabbix监控Nginx/Tomcat/MySQL

    添加监控脚本:添加以下内容:添加权限:编辑zabbix_agent配置文件:在Option:UserParameter处添加:重启服务:在A机器(服务端)测试:在本机创建.xml文件并添加以下内容:(文件名称自定义)在zabbix前端页面点击...

    zabbix微信报警脚本文件wechat.py

    zabbix微信报警脚本...路径/usr/lib/zabbix/alertscripts/wechat.py 提示:请执行 chown zabbix.zabbix /usr/lib/zabbix/alertscripts/wechat.py chmod +x /usr/lib/zabbix/alertscripts/wechat.py 一定要赋予权限

    zabbix搭建笔记

    客户需要搭建一套业务监控系统,了解到zabbix这个开源监控系统管理方便,便于后期扩展,故选择搭建zabbix,数据库采用pgsql,(不选用mysql是因为pgsql在监控客户端数量较大情况下相较于mysql性能更强大,也更稳定)

    zabbix博科光纤交换机光衰监控模板

    zabbix博科光纤交换机光衰/光功率监控模板

    zabbix监控群晖NAS模板

    zabbix 3.0 监控群晖模板,估计3.0 版本之后的版本都适用吧。具体监控项可以看我的博客。有一篇写的监控教程。关注我成为我的粉丝可以免费下载哦

    centos 7.5 安装zabbix4.0

    `wget -o zabbix-4.0.4.tar.gz &lt;https://sourceforge.net/projects/zabbix/files/ZABBIX Latest Stable/4.0.4/zabbix-4.0.4.tar.gz/download`&gt; 安装依赖 `yum install wget telnet ...

    深信服行为管理监控的Zabbix模板详解

    深信服行为管理是一款强大的网络安全管理系统,为了更好地监控和管理深信服行为管理设备,使用Zabbix提供的监控模板是一个很好的选择。 本文将详细介绍如何配置和使用Zabbix模板来监控深信服行为管理。以下是文章的...

    Zabbix运维监控平台项目解决方案.docx

    Zabbix运维监控平台项目解决方案.docxZabbix运维监控平台项目解决方案.docxZabbix运维监控平台项目解决方案.docxZabbix运维监控平台项目解决方案.docxZabbix运维监控平台项目解决方案.docxZabbix运维监控平台项目...

    zabbix监控山石防火墙

    山石系列zabbix监控模板

    zabbix 3.4 监控 Activemq 自动发现模板

    用zabbix 自动发现实现activemq 监控pending consumers activemq_scan.sh #!/bin/bash activemq() { MQ_IP=(10.10.11.208:8161) ...UserParameter=mq.status[*],/etc/zabbix/zabbix_agentd.d/activemq_status.sh $1 $2

    Zabbix3.4监控案例

    Zabbix3.4监控案例Zabbix3.4监控案例Zabbix3.4监控案例

    zabbix监控Nginx/Tomcat/MySQL的详细教程

    主要介绍了zabbix监控Nginx/Tomcat/MySQL的详细教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

    Zabbix监控nsfocus防火墙模板

    使用Zabbix监控nsfocus防火墙设备已运行时间,业务端口带宽、CPU、内存以及业务端口状态和会话数,并设置告警触发器、图形。 注意:需更改设备地址、zabbix代理地址、SNMPv3相关账号密码信息后再导入。

    zabbix监控磁盘IO性能

    该模版是zabbix用于磁盘IO性能监控,包括各项指标以及相应的图形

    运维之道 | Zabbix 监控主机磁盘IO状态信息

    /etc/zabbix/zabbix_agentd.d [root@zabbix zabbix_agentd.d]# vim host_IO_status.conf UnsafeUserParameters=1 UserParameter=custom.vfs.dev.read.ops[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print...

Global site tag (gtag.js) - Google Analytics