ITPub博客

首页 > 应用开发 > IT综合 > 使用nrpe监控Goldengate进程脚本

使用nrpe监控Goldengate进程脚本

IT综合 作者:urgel_babay 时间:2016-05-11 17:11:33 0 删除 编辑
使用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/30936525/viewspace-2097982/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2016-02-29

  • 博文量
    203
  • 访问量
    220446