使用nrpe监控Goldengate进程脚本

使用nrpe监控Goldengate进程脚本


1. nrpe监控脚本的一般准则,大概可以看一下其他例子,照着写就行了

2.脚本如下
[root@sz libexec]# cat /usr/local/nagios/libexec/check_gghealth
#!/bin/bash                         
# Nagios return codes
#定义 nagios返回的状态变量
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3      

 # 插件描述信息
PROGNAME="check_gghealth"
RELEASE="Revision 1.0.0"
AUTHOR="(c) 2015 dudong"
 
# Functions plugin usage
# 插件的使用方法函数

print_release() {
    echo "$RELEASE $AUTHOR"
}                          
 
print_usage() {
        echo ""
        echo "$PROGNAME $RELEASE - Goldengate health check script for Nagios"
        echo ""
        echo "Usage: check_gghealth"
        echo ""
        echo "  -v  check the version"
        echo "  -h  Show this page"
        echo ""
    echo "Usage: $PROGNAME"
    echo "Usage: $PROGNAME --help"
    echo ""
    exit 0
}

print_help() {
        print_usage
        echo ""
        echo "This plugin will check gg health  "
        echo ""
        exit 0
}  


# 传递参数
while [ $# -gt 0 ]; do
    case "$1" in
        -h | --help)
            print_help
            exit $STATE_OK
            ;;
        -v | --version)
                print_release
                exit $STATE_OK
                ;;
        *)  echo "Unknown argument: $1"
            print_usage
            exit $STATE_UNKNOWN
            ;;
        esac
shift
done

# 生效变量文件
SIDNAME=ebpdb
cd /home/oracle
. ./prof_$SIDNAME

mkdir -p /tmp/ggcheck/
cd $OGG_HOME
echo "info all" | ./ggsci |grep -E "MANAGER|EXTRACT|REPLICAT" > /tmp/ggcheck/gginfo.tmp
chmod 776 /tmp/ggcheck/gginfo.tmp
cd /tmp
filename=/tmp/ggcheck/gginfo.tmp                  
 
NUM1=$(cat $filename | grep "ABENDED" | wc -l)
NUM2=$(cat $filename | grep "STOPPED" | wc -l)

MESSAGE1=$(find $filename |xargs grep -ri "ABENDED")
MESSAGE2=$(find $filename |xargs grep -ri "STOPPED")
MESSAGE3=$(find $filename |xargs grep -ri "RUNNING")

if [ "$NUM1" = "0" -a "$NUM2" = "0" ]; then
        echo "OK - Goldengate status is ok "
#       echo "$MESSAGE3"
        exit $STATE_OK
else
   echo "CRITICAL - Goldengate status is critical; $MESSAGE1; $MESSAGES"
   exit $STATE_CRITICAL
fi
[root@sz libexec]#



3. 这个脚本需要root权限运行,所以需要修改/etc/sudoers

注释掉:
#Defaults    requiretty     // 注释掉一下行,表示不需要控制终端
增加:
nagios ALL=(ALL) NOPASSWD:/usr/local/nagios/libexec/check_gghealth  
//运行脚本权限为了安全起见,添加只允许运行的监控脚本即可,并且设置脚本不可写状态。


4. 修改nrpe文件,并重启进程
command[check_goldengate]=/usr/bin/sudo /usr/local/nagios/libexec/check_gghealth


5.验证!!
客户端:必须nagios用户执行无报错
[nagios@sz ~]$ /usr/bin/sudo /usr/local/nagios/libexec/check_gghealth
OK - Goldengate status is ok
[nagios@sz ~]$

服务器端:
[root@sznagiosapp3 libexec]# ./check_nrpe -H 172.28.33.11 -c check_goldengate
OK - Goldengate status is ok
[root@sznagiosapp3 libexec]#


6. 出现的蛋疼问题 nrpe: unable to read output
出现的问题可能有很多种,根据问题查找得出一些分析的注意地方:
1、检查客户端nrpe的权限是否可读,可被nagios执行,如果nagios权限不够,需要提权。
2、检查nrpe.cfg里面commands命令路径是否正确。
3、在配置完nrpe.cfg,没有杀nrpe进程。

第一:确保在本地使用nagios用户执行命令,无各类权限问题报错
第二:chown -R nagios:nagios /usr/local/nagios
第三:注释掉:#Defaults    requiretty     //
第四:command[check_goldengate]= 这个地方把名字改一下,重新重启进程。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29500582/viewspace-1442897/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29500582/viewspace-1442897/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值