hhajhh 发表于 2019-1-19 13:34:49

zabbix监控数据库表空间大小

  1.通过脚本生成日志文件http://s4.运维网.com/wyfs02/M01/7A/E3/wKiom1bBj3OR1mjZAAFfkMbBdgk012.jpg
  2.添加自定义脚本
  oracle_discovery.sh

  通过该脚本取出表空间名,并进行JSON格式化输出(因为zabbix的自动发现功能获取的数据类型是JSON格式的)
  #!/bin/bash
  TABLESPACE=`cat /home/patrol/tablespace.log |awk '{print$2}'|awk 'NR>3{print}'`
  COUNT=`echo "$TABLESPACE" |wc -l`
  INDEX=0
  echo '{"data":['
  echo "$TABLESPACE" | while read LINE; do
  echo -n '{"{#TABLENAME}":"'$LINE'"}'
  INDEX=`expr $INDEX + 1`
  if [ $INDEX -lt $COUNT ]; then
  echo ','
  fi
  done
  oracle_check.sh
  通过该脚本获取表空间大小,已使用表空间大小及表空间使用率
  #!/bin/bash
  EQ_DATA="$2"
  ZBX_REQ_DATA_TAB="$1"
  SOURCE_DATA=/home/patrol/tablespace.log
  case $2 in
  maxmb)      grep -E "$ZBX_REQ_DATA_TAB" $SOURCE_DATA |awk '{print $5*1024*1024}';;
  used)   grep -E "$ZBX_REQ_DATA_TAB" $SOURCE_DATA |awk '{print $6*1024*1024}';;
  autopercent)grep -E "$ZBX_REQ_DATA_TAB" $SOURCE_DATA |awk '{print $7}';;
  *) echo $ERROR_WRONG_PARAM; exit 1;;
  esac
  exit 0
  3.脚本赋权
http://s4.运维网.com/wyfs02/M01/7A/E4/wKiom1bBk1SAyxtvAADDR-epg4Y960.jpg
  4.添加自定义监控项
  # more oracle.conf
  UserParameter=ora.tab.discovery,/etc/zabbix/scripts/oracle_discovery.sh
  UserParameter=tablespace
[*],/etc/zabbix/scripts/oracle_check.sh $1 $2
  5.重启agent

  
/etc/init.d/zabbix-agent restart  6.添加发现规则

http://s5.运维网.com/wyfs02/M02/7A/E3/wKioL1bBlaOgDQqyAAHFzBrFcn4336.jpg
  7.添加监控项

http://s1.运维网.com/wyfs02/M01/7A/E4/wKiom1bBlYqzyOTPAAFpFs-3NYQ133.jpg
  8.配置后显示如下数据

http://s1.运维网.com/wyfs02/M00/7A/E4/wKiom1bBli_jl_PpAAPJn6FEX18932.jpg



页: [1]
查看完整版本: zabbix监控数据库表空间大小