• Zabbix iostat 监控配置


    zabbix iostat 监控模板安装与配置


    1. 配置定时任务,用于生成iostat的统计数据

      crontab -e

      * * * * * /usr/local/zabbix327/bin/iostat-cron.sh

    2. 编辑 /usr/local/zabbix327/bin/iostat-cron.sh

      
      #!/bin/bash
      
      DEST_DATA=/tmp/iostat-data
      TMP_DATA=/tmp/iostat-data.tmp
      
      iostat -kx 10 2 > $TMP_DATA
      mv $TMP_DATA $DEST_DATA
      
      
    3. 添加执行权限

      # chmod +x iostat-cron.sh

    4. 编辑 /usr/local/zabbix327/bin/lld-iostat.sh

      #!/bin/bash
      
      DEVICES=`iostat | awk '{ if ($1 ~ "^([shxv]|xv)d[a-z]$") { print $1 } }'`
      
      COUNT=`echo "$DEVICES" | wc -l`
      INDEX=0
      echo '{"data":['
      echo "$DEVICES" | while read LINE; do
          echo -n '{"{#DEVNAME}":"'$LINE'"}'
          INDEX=`expr $INDEX + 1`
          if [ $INDEX -lt $COUNT ]; then
              echo ','
          fi
      done
      echo ']}'
      
      
    5. 添加执行权限

      # chmod +x lld-iostat.sh

    6. 编辑 /usr/local/zabbix327/bin/iostat.sh

      #!/bin/bash
      
      ZBX_REQ_DATA="$2"
      ZBX_REQ_DATA_DEV="$1"
      
      SOURCE_DATA=/tmp/iostat-data
      
      ERROR_NO_DATA_FILE="-0.9900"
      ERROR_OLD_DATA="-0.9901"
      ERROR_WRONG_PARAM="-0.9902"
      ERROR_MISSING_PARAM="-0.9903"
      
      if [ ! -f "$SOURCE_DATA" ]; then
      echo $ERROR_NO_DATA_FILE
      exit 1
      fi
      
      if [ -z "$ZBX_REQ_DATA_DEV" ]; then
      echo $ERROR_MISSING_PARAM
      exit 1
      fi
      
      OLD_DATA=5
      if [ $(stat -c "%Y" $SOURCE_DATA) -lt $(date -d "now -$OLD_DATA min" "+%s" ) ]; then
      echo $ERROR_OLD_DATA
      exit 1
      fi
      device_count=$(grep -Ec "^$ZBX_REQ_DATA_DEV " $SOURCE_DATA)
      if [ $device_count -eq 0 ]; then
      echo $ERROR_WRONG_PARAM
      exit 1
      fi
      
      case $ZBX_REQ_DATA in
      rrqm/s)     grep -E "^$ZBX_REQ_DATA_DEV " $SOURCE_DATA | tail -1 | awk '{print $2}';;
      wrqm/s)     grep -E "^$ZBX_REQ_DATA_DEV " $SOURCE_DATA | tail -1 | awk '{print $3}';;
      r/s)        grep -E "^$ZBX_REQ_DATA_DEV " $SOURCE_DATA | tail -1 | awk '{print $4}';;
      w/s)        grep -E "^$ZBX_REQ_DATA_DEV " $SOURCE_DATA | tail -1 | awk '{print $5}';;
      rkB/s)      grep -E "^$ZBX_REQ_DATA_DEV " $SOURCE_DATA | tail -1 | awk '{print $6}';;
      wkB/s)      grep -E "^$ZBX_REQ_DATA_DEV " $SOURCE_DATA | tail -1 | awk '{print $7}';;
      avgrq-sz)   grep -E "^$ZBX_REQ_DATA_DEV " $SOURCE_DATA | tail -1 | awk '{print $8}';;
      avgqu-sz)   grep -E "^$ZBX_REQ_DATA_DEV " $SOURCE_DATA | tail -1 | awk '{print $9}';;
      await)      grep -E "^$ZBX_REQ_DATA_DEV " $SOURCE_DATA | tail -1 | awk '{print $10}';;
      svctm)      grep -E "^$ZBX_REQ_DATA_DEV " $SOURCE_DATA | tail -1 | awk '{print $11}';;
      %util)      grep -E "^$ZBX_REQ_DATA_DEV " $SOURCE_DATA | tail -1 | awk '{print $12}';;
      *) echo $ERROR_WRONG_PARAM; exit 1;;
      esac
      
      exit 0
      
      
    7. 添加执行权限

      # chmod +x iostat.sh

    8. 测试

      • 检查/tmp/下的文件:iostat-data、iostat-data.tmp 是否生成

      • 测试脚本在zabbix用户下是否执行正确:

        $ ./lld-iostat.sh

        $ ./iostat.sh hda w/s

    9. 编辑zabbix agentd 配置文件并增加自定义参数,包括 lld 参数以及监控参数

      UserParameter=custom.vfs.dev.discovery,/usr/local/zabbix327/bin/lld-iostat.sh
      UserParameter=iostat[*],/usr/local/zabbix327/bin/iostat.sh $1 $2

    10. 重启 zabbix_agentd

    11. 配置模板/导入模板

      1. Configuration/Templates, 点击Create template , 输入模板名称,并选择Groups,并保存

      2. 选择 Discovery rules,点击 Create discovery rule,填写必要信息后,进行保存

        • Name :Disk Devices
        • Key : custom.vfs.dev.discovery
        • Update interval: 60
      3. 选择 Discovery rules,并点击列表中的 Item prototypes , 点击 Create item prototype 按钮,配置完成后进行保存。

        • Name: $1 $2 /****** $1 表示Key的第一个参数 $2 表示Key的第二个参数 ***/
        • Key : iostat[{#DEVNAME},svctm]
        • Type of information: Numberic (float)
        • Applications: iostat
      4. 按以上方法依次配置以下Item prototype(只需修改Key的第二个参数):

        %util,rkB/s,avgqu-sz,await,wkB/s, w/s,avgrq-sz, rrqm/s, wrqm/s,r/s

    12. 根据需要配置Trigger prototypes
      选择Trigger prototypes tab,并点击Create trigger prototype,这里重点说明,Expression部分,
      点击 Add 按钮,在弹出的窗口,点击 Select prototype,选择监控项,然后配置其他项目。最后点击保存。

  • 相关阅读:
    Java语法基础
    配置环境变量
    常用Dos命令
    Python 之 进程与进程池的创建和使用
    python之进程间通信
    低级别网络接口-socket的应用和粘包现象
    网络编程之模块的使用
    Python异常类型
    练习题
    python 的re模块与正则表达式
  • 原文地址:https://www.cnblogs.com/cpsing/p/10601461.html
Copyright © 2020-2023  润新知