千家信息网

Zabbix iostat 监控配置

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,zabbix iostat 监控模板安装与配置配置定时任务,用于生成iostat的统计数据crontab -e* * * * * /usr/local/zabbix327/bin/iostat-cro
千家信息网最后更新 2025年02月02日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/bashDEVICES=`iostat | awk '{ if ($1 ~ "^([shxv]|xv)d[a-z]$") { print $1 } }'`COUNT=`echo "$DEVICES" | wc -l`INDEX=0echo '{"data":['echo "$DEVICES" | while read LINE; do    echo -n '{"{#DEVNAME}":"'$LINE'"}'    INDEX=`expr $INDEX + 1`    if [ $INDEX -lt $COUNT ]; then        echo ','    fidoneecho ']}'


  5. 添加执行权限

    # chmod +x lld-iostat.sh

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

    #!/bin/bashZBX_REQ_DATA="$2"ZBX_REQ_DATA_DEV="$1"SOURCE_DATA=/tmp/iostat-dataERROR_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 1fiif [ -z "$ZBX_REQ_DATA_DEV" ]; then  echo $ERROR_MISSING_PARAM  exit 1fiOLD_DATA=5if [ $(stat -c "%Y" $SOURCE_DATA) -lt $(date -d "now -$OLD_DATA min" "+%s" ) ]; then  echo $ERROR_OLD_DATA  exit 1fidevice_count=$(grep -Ec "^$ZBX_REQ_DATA_DEV " $SOURCE_DATA)if [ $device_count -eq 0 ]; then  echo $ERROR_WRONG_PARAM  exit 1ficase $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;;esacexit 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. 配置模板/导入模板

    • Name: $1 $2 /****** $1 表示Key的第一个参数 $2 表示Key的第二个参数 ***/

    • Key : iostat[{#DEVNAME},svctm]

    • Type of information: Numberic (float)

    • Applications: iostat

    • Name :Disk Devices

    • Key : custom.vfs.dev.discovery

    • Update interval: 60

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

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

    3. 选择 Discovery rules,并点击列表中的 Item prototypes , 点击 Create item prototype 按钮,配置完成后进行保存。

    4. 按以上方法依次配置以下Item prototype(只需修改Key的第二个参数):

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

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

0