ZABBIX之磁盘IO监控

1,配置文件

cat /usr/local/zabbix/conf/zabbix_agentd/diskstats.conf

UserParameter=disk.discovery,python /usr/local/zabbix/bin/disk_discovery.py
UserParameter=diskstats[*],/usr/local/zabbix/bin/diskstats.sh $1 $2

2,DISK 自动发现脚本

cat /usr/local/zabbix/bin/disk_discovery.py

#!/usr/bin/env python
#This script is used to discovery disk on the server
import subprocess
import json
args="cat /proc/diskstats |grep -E ‘\ssd[a-z]\s|\sxvd[a-z]\s|\svd[a-z]\s‘|awk ‘{print $3}‘|sort|uniq 2>/dev/null"
t=subprocess.Popen(args,shell=True,stdout=subprocess.PIPE).communicate()[0]
disks=[]
for disk in t.split(‘\n‘):
    if len(disk) != 0:
      disks.append({‘{#DISK_NAME}‘:disk})
print json.dumps({‘data‘:disks},indent=4,separators=(‘,‘,‘:‘)) 

3,diskstats脚本

cat  /usr/local/zabbix/bin/diskstats.sh

#!/bin/sh
device=$1
item=$2
case $item in
        read.ops)
            cat /proc/diskstats |grep "\b\$device\b"| head -1 | awk ‘{print $4}‘
            ;;
        read.ms)
            cat /proc/diskstats |grep "\b\$device\b"| head -1 | awk ‘{print $7}‘
            ;;
        write.ops)
            cat /proc/diskstats |grep "\b\$device\b"| head -1 | awk ‘{print $8}‘
            ;;
        write.ms)
            cat /proc/diskstats |grep "\b\$device\b"| head -1 | awk ‘{print $11}‘
            ;;
        io.active)
            cat /proc/diskstats |grep "\b\$device\b"| head -1 | awk ‘{print $12}‘
            ;;
        io.ms)
            cat /proc/diskstats |grep "\b\$device\b"| head -1 | awk ‘{print $13}‘
            ;;
        read.sectors)
            cat /proc/diskstats |grep "\b\$device\b"| head -1 | awk ‘{print $6}‘
            ;;
        write.sectors)
            cat /proc/diskstats |grep "\b\$device\b"| head -1 | awk ‘{print $10}‘
            ;;
esac

4,配置权限

chmod +x  /usr/local/zabbix/bin/disk_discovery.py

chmod +x  /usr/local/zabbix/bin/diskstats.sh

5,重启

killall zabbix_agentd

/usr/local/zabbix/sbin/zabbix_agentd

ps uax|grep zabbix

6,导入模版

到zabbix模板上做链接

时间: 2024-10-13 09:22:25

ZABBIX之磁盘IO监控的相关文章

zabbix自动发现规则之磁盘IO监控

本文章介绍zabbix自动发现规则之磁盘IO监控的案例实践. 主机名:mysql-slave 首先在zabbix_agent下定义一个获取磁盘IO信息的脚本: cat /etc/zabbix/scripts/disk_io.sh #!/bin/bash Disk=$1 Option=$2 case $Option in rrqm) iostat -dxk 1 2|grep "\b$Disk\b" |tail -1|awk '{print $2}' ;; wrqm) iostat -dx

Linux磁盘IO监控[zz]

磁盘 I/O 监控是 Unix/Linux 系统管理中一个非常重要的组成部分.它可以监控吞吐量.每秒 I/O 数.磁盘利用率.服务时间等信息,并且在发现异常时,发送告警信息给系统管理员,便于系统管理员进行调整数据布局等管理活动以达到优化系统总体性能的目的. 不同的操作系统监控磁盘 I/O 的命令可能略有不同.本文将介绍 Unix/Linux 操作系统磁盘 I/O 管理命令及相关信息,并讲述 Unix/Linux 操作系统上磁盘 I/O 管理监控的自动化脚本实现. Unix/Linux 磁盘 I/

zabbix之磁盘IO之IOSTAT

1. 发现硬盘 disk_discovery.sh #!/bin/bash diskarray=(`cat /proc/diskstats |grep -E "\bsd[a-z]\b|\bxvd[a-z]\b|\bvd[a-z]\b"|awk '{print $3}'|sort|uniq  2>/dev/null`) length=${#diskarray[@]} printf "{\n" printf  '\t'"\"data\"

zabbix应用之Low-level discovery监控磁盘IO

zabbix自带的"Template OS Linux"模板支持监控已挂载的磁盘空间利用率,是利用LLD(Low-level discovery)实现的,却没有对磁盘IO监控.本篇文章就介绍利用zabbix LLD功能监控磁盘IO的方法. 思路:首先创建Discovery rules,在agent端配置对应的UserParameter,调用编写好的shell脚本,动态查找出已经挂载的磁盘分区:然后创建Item prototypes,使用vfs.dev.read[device,<t

Cacti监控磁盘IO(rhel)

1.检查net-snmp是否支持IO监控 snmpwalk -v 1 -c public 监控机的IP UCD | more 执行如上命令,如果返回类似如下数据,则表示支持disk io的监控,否则需要重新编译增加diskio-module模块. 1. UCD-DISKIO-MIB::diskIOIndex.1 = INTEGER: 1 2. UCD-DISKIO-MIB::diskIOIndex.2 = INTEGER: 2 3. UCD-DISKIO-MIB::diskIOIndex.3 =

Cacti监控磁盘IO

1.下载Cacti_Net-SNMP_DevIO_v3.1.zip 下载Cacti_Net-SNMP_DevIO_v3.1.zip,解压并上传net-snmp_devio.xml到/resource/snmp_queries/目录. 2.导入模板 通过cacti后台的"Import Templates"导入所有的*_TMPL.xml文件,最后导入net-snmp_devIO-Data_query.xml文件.完成后,你就可以在“Data Queries”看到“ucd/net - Get

zabbix监控磁盘IO

监控磁盘IO的基本原理:通过分析/proc/diskstats文件,来对IO的性能进行监控. ++++++++++++++++++++++++对/proc/diskstats的解释++++++++++++++++++++++++++++++ # cat /proc/diskstats |grep sda |head -1    8    0     sda 2280 1445 76478 11956 249 188 3490 932 0 9913 12805 解释说明: 第一至第三个域,分别是主

zabbix监控容器情况和磁盘IO

1.从https://pypi.python.org/pypi/docker-py#downloads 这里下载docker-py-xxx.tar.gz到本地再传进去linux系统里面进行解压python setup.py install 2.在agentd那里加入自定义模块UserParameter=docker_low_discovery[],/bin/bash /etc/zabbix/scripts/docker_low_discovery.sh $1UserParameter=docke

第十篇、【Zabbix监控项之自定义监控磁盘IO】

一.自定义监控项获取磁盘IO所需的值 1.在zabbix Agent端配置文件配置如下内容 [[email protected]_3WYY_WEB ~]# vi /usr/local/zabbix-4.4.3/etc/zabbix_agentd.conf 305 ### Option: UserParameter 306 # User-defined parameter to monitor. There can be several user-defined parameters. 307 #