Chinaunix

标题: Nagios通过nrpe监控远程服务器返回状态码不一致 [打印本页]

作者: nan_dream    时间: 2016-02-25 15:55
标题: Nagios通过nrpe监控远程服务器返回状态码不一致
本帖最后由 nan_dream 于 2016-02-25 16:08 编辑

监控脚本是自定义的,如下:

BDUMP=`sqlplus -s ${3}/${4}@${2} << EOF
set heading off
set feedback off
set pagesize 0
set verify off
set echo off
set serverout off
select value from v\\$parameter where name='background_dump_dest';
exit
EOF`

status=0

for ((i=5;i>=1;i--));
do
lasttime=`date -d "-$i minute" +"%a %b %d %H:%M"`
        echo $lasttime
tail -5000 $BDUMP/alert_$ORACLE_SID.log | awk -v a="$lasttime" 'BEGIN{b=0}/^[Sun|Mon|Tue|Wed|Thu|Fri|Sat]/{if($0 ~ a)b=1}b{print}' > /tmp/alert_ORA.log
num=`cat /tmp/alert_ORA.log | wc -l`
echo $num
if [ $num -gt 0 ];then
     if [ `cat /tmp/alert_ORA.log | grep -i 'ORA-' | wc -l` -gt 0 ];then
        echo "CRITICAL - "`cat /tmp/alert_ORA.log | sed -n '/^ORA-/,+3p'`
        #rm /tmp/alert_ORA.log
        status=$STATE_CRITICAL;
        break;
     fi
fi
done
echo "status is: "$status;

if [ $status -eq 0 ]; then
        echo "OK - No \"ORA-\" errors."
        #rm /tmp/alert_ORA.log
        exit $STATE_OK;
else
        exit $status;
fi


nagios服务器端执行脚本返回如下:

[nagios@NAGIOS ~]$ check_nrpe -H 192.168.3.3 -c check_oracle_alert
Thu Feb 25 15:47
0
Thu Feb 25 15:48
0
Thu Feb 25 15:49
0
Thu Feb 25 15:50
0
Thu Feb 25 15:51
0
status is: 0
OK - No "ORA-" errors.


被监控服务器端执行脚本返回如下:

[nagios@DG01 libexec]$ /usr/local/nagios/libexec/check_oracle_v2 --alert testdb system oracle
Thu Feb 25 15:47
0
Thu Feb 25 15:48
0
Thu Feb 25 15:49
0
Thu Feb 25 15:50
65
CRITICAL - ORA-12514: TNS:listener does not currently know of service requested in connect descriptor PING[ARC2]: Heartbeat failed to connect to standby 'standbydb01'. Error is 12514.
status is: 2


请教大家,这个问题是哪里导致的?
非常感谢!!


作者: nan_dream    时间: 2016-02-25 15:58
自己顶一下啊~~
作者: nan_dream    时间: 2016-02-25 18:02
召唤大神!!
作者: nan_dream    时间: 2016-02-29 09:00
自己顶起~~
作者: nan_dream    时间: 2016-02-29 17:31
已经解决,该问题是由于没有定义ORACLE_SID变量,导致远程执行的时候获取不到alert日志,本地由于nagios用户已经加入了oinstall用户组,所以读取没问题。

另外,做测试的时候,本地执行和远程执行都需要用nagios用户来测试,不然也可能出现返回结果不一致的问题。

还是细节问题,以后需要多多注意!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2