Zabbix3.2监控OGG延时

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiegh2014/article/details/78214183

 
 
一、OGG监控脚本采集
1、获取OGG延时信息的原始脚本和自动发现脚本
vim /home/oracle/local/bin/gg_zabbix.sh
#!/bin/bash
. /home/oracle/.bash_profile
cd /u01/oracle/gg
glog=`./ggsci << EOF 
info all
exit
EOF`
>/tmp/gg_zabbix.log
echo "${glog}" | awk 'NR==13,NR==21 {print ""$3","$4","$5}' > /tmp/gg_zabbix.log
echo "${glog}" | awk -F"[ ]+|:" '/REPLICAT|EXTRACT/{print $3,$4,$5,$7,$8}'  > /tmp/gg_zabbix.log
2、设置任务计划
crontab -l
*/1 * * * * /home/oracle/local/bin/gg_zabbix.sh

3、权限问题
vim /etc/sudoers
zabbix ALL=(oracle) NOPASSWD: /etc/zabbix/shells/discovery_ogg.sh,/etc/zabbix/shells/chk_ogg,/home/oracle/local/bin/gg_zabbix.sh

二、获取OGG抽取进程名
下面是执行该脚本输出为json格式的OGG抽取进程名信息
vim discovery_ogg.sh 
#!/bin/bash
#zabbix discovery oracle ogg
ogg=(`grep -R "$1" /tmp/gg_zabbix.log| awk '{print $1;}'`)
length=${#ogg[@]}
  
printf "{\n"
printf '\t'"\"data\":["
for ((i=0;i<$length;i++))
do
    printf "\n\t\t{"
    printf "\"{#OGG_DATA}\":\"${ogg[$i]}\"}"
    if [ $i -lt $[$length-1] ];then
        printf ","
    fi
done
    printf "\n\t]\n"
printf "}\n"

三、OGG脚本输出的值为zabbix监控所取的数值
vim chk_ogg
#/bin/sh
OGG_DATA=$1
OGG_COMMAND=$2

case $OGG_COMMAND in
         lag)
          grep -R "$OGG_DATA" /tmp/gg_zabbix.log| awk '{print $2,$3;}'|sed 's/ //g'
            ;;
          time)
          grep -R "$OGG_DATA" /tmp/gg_zabbix.log| awk '{print $4,$5;}'|sed 's/ //g'
            ;;
esac

已改脚本为准(OGG延时时间转换)
vim chk_ogg 
#/bin/sh
OGG_DATA=$1
OGG_COMMAND=$2
case $OGG_COMMAND in
         lag)
          grep -R "$OGG_DATA" /tmp/gg_zabbix.log| awk '{a=$2;b=$3} END{print a*60+b}'
            ;;
          time)
          grep -R "$OGG_DATA" /tmp/gg_zabbix.log| awk '{a=$4;b=$5} END{print a*60+b}'
            ;;
          *)
          echo -e "Usage: $0 [OGG_DATA][lag|time]"
esac



 

猜你喜欢

转载自blog.csdn.net/xiegh2014/article/details/78214183