Skip to content

Commit

Permalink
Add option to perform real login in check_oracle
Browse files Browse the repository at this point in the history
The Oracle plugin has no option for testing for a successful login.  The
closest option to this is --login, which uses a fixed set of credentials and
expects to receive the logon failure error code.

This patch adds an option called --connect.  This option takes a full SID and
returns success if it doesn't detect any error codes.  With this, we can check
that a database is allowing logins from valid credentials (and avoid filling up
DB logs with failed authentications).
  • Loading branch information
bldewolf authored and weiss committed Mar 25, 2013
1 parent e0eb2eb commit b57dc1b
Showing 1 changed file with 15 additions and 0 deletions.
15 changes: 15 additions & 0 deletions plugins-scripts/check_oracle.sh
Expand Up @@ -18,6 +18,7 @@ print_usage() {
echo " $PROGNAME --tns <Oracle Sid or Hostname/IP address>"
echo " $PROGNAME --db <ORACLE_SID>"
echo " $PROGNAME --login <ORACLE_SID>"
echo " $PROGNAME --connect <ORACLE_SID>"
echo " $PROGNAME --cache <ORACLE_SID> <USER> <PASS> <CRITICAL> <WARNING>"
echo " $PROGNAME --tablespace <ORACLE_SID> <USER> <PASS> <TABLESPACE> <CRITICAL> <WARNING>"
echo " $PROGNAME --oranames <Hostname>"
Expand All @@ -39,6 +40,8 @@ print_help() {
echo " filesystem for sgadefORACLE_SID.dbf"
echo "--login SID"
echo " Attempt a dummy login and alert if not ORA-01017: invalid username/password"
echo "--connect SID"
echo " Attempt a login and alert if an ORA- error is returned"
echo "--cache"
echo " Check local database for library and buffer cache hit ratios"
echo " ---> Requires Oracle user/password and SID specified."
Expand Down Expand Up @@ -187,6 +190,18 @@ case "$cmd" in
exit $STATE_CRITICAL
fi
;;
--connect)
connectchk=`sqlplus $2 < /dev/null`
connectchk2=` echo $connectchk | grep -c ORA-`
if [ ${connectchk2} -eq 0 ] ; then
echo "OK - login successful"
exit $STATE_OK
else
connectchk3=` echo "$connectchk" | grep "ORA-" | head -1`
echo "CRITICAL - $connectchk3"
exit $STATE_CRITICAL
fi
;;
--cache)
if [ ${5} -gt ${6} ] ; then
echo "UNKNOWN - Warning level is less then Crit"
Expand Down

0 comments on commit b57dc1b

Please sign in to comment.