一、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
Zabbix3.2监控OGG延时
最新推荐文章于 2024-03-25 23:57:14 发布