Nagios,我自己的自定义插件不起作用

时间:2016-05-24 07:26:28

标签: bash nagios

我正在尝试将自己的自定义检查添加到nagios中。 我已经成功创建了一个可以从nagios用户执行的bash脚本。 问题是这个脚本在linux命令行中工作正常,但如果由nagios运行(在web gui中返回),它将返回未知状态。

#!/bin/sh

while getopts ":q:c:w:h:u:p" optname
do
    case "$optname" in  "q")    query=$OPTARG
                    ;;
                "c")    CIRT=$OPTARG
                    ;;
                "w")    WARN=$OPTARG
                    ;;
                "u")    user=$OPTARG
                    ;;
                "p")    pswd=$OPTARG
                    ;;
                "h")    echo "Useage: check_SQLplus_query -u user -p password -w warning value -c cirtical value"
                    exit
                    ;;
                "?")    echo "Unknown option $OPTARG"
                    exit
                    ;;
                ":")    echo "No argument value for option $OPTARG"
                    exit
                    ;;
                *)  # Should not occur
                    echo "Unknown error while processing options"
                    exit
                    ;;
    esac
done
RETVAL=`sqlplus -s  USER/PASSWORD@HOST:1521/DBNAME<<EOF
SET PAGESIZE 0 FEEDBACK OFF VERIFY OFF HEADING OFF ECHO OFF
$query;
EXIT;
EOF`
if [ "$RETVAL" -le "$CIRT" ]
then
    echo "OK - $RETVAL"
    exit 0
elif [ "$RETVAL" -gt "$CIRT" ] && [ "$RETVAL" -le "$WARN" ]
then
    echo "WARNING - $RETVAL"
    exit 1
elif [ "$RETVAL" -gt "$WARN" ]
then
    echo "CRITICAL - $RETVAL"
    exit 2
else
echo "UNKNOWN - $RETVAL"
exit 3
fi

实际上用户密码是在脚本内“编码”的,即使我已经设置了getopt来使这个脚本更加灵活。

这个想法很简单,使用sqlplus来获取一个只返回一个数字的简单查询(比如我的情况下的行数)。

启动脚本的Bash行:

/usr/lib64/nagios/plugins/check_SQLplus_queryPrimavera.sh   -q "select count(*) from ADMUSER_PM.REFRDEL" -w 6000000 -c 8000000

0 个答案:

没有答案