`

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 监控主机磁盘IO状态信息

    本文主要探讨如何使用Zabbix来监控主机的磁盘I/O(输入/输出)状态信息,这对于了解系统的整体健康状况至关重要。 首先,我们需要在Zabbix代理(zabbix-agent)端进行配置。在`/etc/zabbix/zabbix_agentd.d`目录下...

    zabbix 监控iops下脚本和模板

    本文将详细介绍如何使用Zabbix监控磁盘IOPS,并结合提供的脚本和模板进行说明。 首先,我们需要了解IOPS的概念。IOPS是衡量硬盘或存储设备处理数据能力的一个关键指标,它表示单位时间内系统能完成的读写操作次数。...

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

    1. **性能数据**:包括CPU使用率、磁盘I/O、网络带宽、内存占用等关键指标。 2. **端口状态**:监测网络设备端口的开启状态、流量情况和网络状况。 3. **日志内容**:监控系统日志和应用日志,捕捉错误信息,帮助...

    Zabbix-监控方案

    2. **性能监控**:实时查看CPU、内存、磁盘I/O、网络流量等资源使用情况,发现性能瓶颈。 3. **故障检测**:通过触发器设置,当监控指标超过预设阈值时,Zabbix会自动发送报警,实现故障快速响应。 4. **趋势分析*...

    zabbix监控oracle插件

    2. 性能指标:监控CPU使用率、内存消耗、磁盘I/O、网络带宽,分析数据库的负载状况。 3. 数据存储:跟踪表空间的使用情况,防止空间不足导致的问题,同时监控索引状态。 4. 错误与警告:监控Oracle的日志文件,...

    Zabbix监控系统深度实践 PDF电子书下载 带书签目录 完整版

    在本书中,读者将学习到如何安装和配置Zabbix服务器,包括服务器端和代理端的设置,以实现对硬件资源(如CPU、内存、磁盘I/O)和网络服务(如HTTP、SMTP、FTP)的全面监控。作者深入探讨了Zabbix的数据收集机制,...

    运维工具+监控+zabbix+监控服务器

    它能监控CPU和内存使用情况、磁盘I/O、网络流量、进程状态,还能监控特定的应用程序和服务。例如,你可以创建自定义监控项来检查Web服务器的响应时间、数据库的连接状态,或者监控系统日志文件中的特定错误。 报警...

    zabbix下SqlServer监控指标清单.docx

    7. **磁盘指标**:`% Disk Time` 和 `Disk Transfers/sec` 用于监控磁盘I/O性能。`% Disk Time` 高表示磁盘长时间忙碌,可能需要优化I/O操作。`Disk Transfers/sec` 提供了磁盘读写操作的速率,数值过高可能表明磁盘...

    zabbix 监控 oracle

    模板包含了各种监控项,如CPU使用率、内存使用、I/O性能、SQL查询性能等。 4. **关联主机和模板**:将Oracle数据库服务器与Oracle监控模板关联,这样Zabbix就会开始收集该数据库的相关数据。 5. **配置触发器和...

    clickhouse之zabbix监控模板(支持账号密码,配置文件可传)

    - **网络I/O**:网络带宽和延迟,对于分布式系统尤其重要。 - **复制状态**:如果使用了Replication,需要监控复制延迟和状态。 - **CPU利用率**:了解数据库服务器的处理能力。 2. **Zabbix模板**: - **zbx_...

    Zabbix MongoDB监控模板.xml

    1. **监控项(Items)**:这是收集MongoDB性能数据的基础,包括但不限于CPU使用率、内存使用、磁盘I/O、网络流量、数据库查询速度等。这些监控项通过Zabbix Agent或Server与MongoDB的管理接口交互,定期获取数据。 ...

    Zabbix 监控 Hyper-v

    例如,模板可能包括CPU使用率、内存使用、磁盘I/O、网络流量等关键性能指标。 3. **配置监控项**:“主机监控项”可能包含用于监视Hyper-V宿主机资源使用情况的监控项,如CPU利用率、内存使用、磁盘空间和网络带宽...

    Zabbix企业级分布式监控资源

    1. **性能监控**:Zabbix可以监控服务器CPU、内存、磁盘I/O、网络流量等关键指标,提供实时性能数据,帮助管理员识别潜在的性能瓶颈。 2. **事件报警**:当监控的指标超过预设阈值时,Zabbix会触发报警,通过邮件、...

    zabbix-4.0监控 使用手册.docx

    3. iftop/iostat:显示网络带宽和磁盘I/O使用情况 4. vmstat:显示虚拟内存和磁盘使用情况 5. netstat:显示网络连接和路由信息 6. nethogs:显示当前网络带宽使用情况 使用shell脚本来监控服务器 可以使用shell...

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

    1. 性能数据:CPU利用率、磁盘I/O、网络带宽、内存使用等基础指标。 2. 端口状态:监控网络设备端口的开启状态、流量及网络状况。 3. 日志内容:系统日志、应用日志和错误信息的监控。 4. 系统状态:数据库、OS和...

    Zabbix监控MySQL的模板.zip

    这些可能包括CPU利用率、内存使用情况、磁盘I/O和网络流量等关键指标的图表。 4. **屏幕**:屏幕是Zabbix中的一个布局,用于展示多个图形、文本和其他元素。MySQL监控模板的屏幕通常会汇总重要的监控信息,使管理员...

    zabbix_tomcat_weblogic监控模板.zip

    3. **图形**:展示CPU、内存、磁盘I/O等资源随时间的变化趋势,便于分析性能瓶颈。 4. **应用监控**:监控应用的健康状态,包括session数量、部署的应用状态等。 WebLogic模板(zbx_weblogic_template.xml)则会...

    Linux zabbix自定义监控及报警实现过程解析

    在本文中,我们将深入探讨如何在Linux环境中利用Zabbix自定义监控磁盘I/O的tps(Transactions Per Second)指标,并设置报警机制。 首先,我们的目标是监控`iostat`命令中的`tps`数据,该指标代表每秒处理的事务数...

    zabbix监控mysql

    5. 图形和屏幕布局:根据监控项创建图表,如CPU使用率、内存占用、磁盘I/O等,以便于可视化分析。 6. 告警触发器:设置合适的阈值,当监控项超过预设值时触发告警,如CPU使用率过高、内存不足等。 7. 关联主机:将...

Global site tag (gtag.js) - Google Analytics