oracle_gg_monitoring_nagios

This is an old revision of the document!


This way partially uses the script method but this time, instead of receiving spam A LOT. I will integrate the script with nagios so I can be notified ONLY when there is a problem.

You can use ANY script with nagios as soon as it provides the correct exit status. Nagios script should exit with:

  • 0 - If all is OK
  • 1 - If it is Warning
  • 2 - If it is Critical
  • 3 - If it is unknown

Knowing that, I have modified the previous script to exit accordingly:

Script to be integrated with Nagios

#!/bin/bash
OIFS=$IFS
IFS="
"
NIFS=$IFS
function status {
OUTPUT=`$GG_HOME/ggsci << EOF
info all
exit
EOF`
}
function alert {
for line in $OUTPUT
do
GNAME=$(echo "${line}" | awk -F" " '{print $3}')
GSTAT=$(echo "${line}" | awk -F" " '{print $2}')
GTYPE=$(echo "${line}" | awk -F" " '{print $1}')
if [[ ${GTYPE} == "MANAGER" ]] || [[ ${GTYPE} == "REPLICAT" ]] || [[ ${GTYPE} == "EXTRACT" ]]
then
  case ${GSTAT} in
    STOPPED)
     STAT="STOP"
    ;;
    ABENDED)
     STAT="ABEND"
    ;;
    RUNNING)
     STAT="OK"
    ;;
    *)
     STAT="UNKNOWN"
    ;;
  esac
fi
done
echo ${STAT}
case ${STAT} in
  ABEND)
   exit 2
   ;;
  STOP)
   exit 1
   ;;
  OK)
   exit 0
   ;;
  *)
   exit 3
   ;;
esac
}
export GG_HOME=$(find /u01/app -name "ggsci"  2>&1 | grep -v "Permission denied");
export GG_HOME=${GG_HOME%??????}
export ORACLE_HOME=$(echo `tail -1 /etc/oratab` | awk -F":" '{print $2}')
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export ORACLE_SID=$(echo `tail -1 /etc/oratab` | awk -F":" '{print $1}')
status
alert

The following scripts, exports the ORACLE_HOME, ORACLE_SID (as long as it is the last one) and the Golden Gate Home location (as long as it is somewhere under /u01/app). The scripts also exits appropriately as listed above.

Now to make that script works we have to make coupel things:

We have to configure two thigns here:

  • Nagios on Client Side
  • Nagios on Server Side

The client side will include the option for nagios to use the nrpe and execute the script

Nagios usually comes with plugin called NRPE. Locate where is the nrpe.cfg and edit it as follows by appending this line at the end:

Edit NRPE cfg

command[check_gg_oracle]=sudo -u oracle /usr/local/nagios/libexec/check_gg_oracle.sh

It is import the script to be executed with Oracle user as the golden gate doesn't have a client way of connecting to the console.

Once that is done, we have to update the sudoers as well. I know there is way more secure way, but I have done as follows:

Update Sudoers

## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL
nagios ALL=(ALL) NOPASSWD: ALL

That will allow the nagios to execute any command as any user. I know quite unsecure, feel free to change it with ALL=(oracle)

Once this is done, it is ready to add that in the nagios itself :)

====Configure

  • oracle_gg_monitoring_nagios.1598462282.txt.gz
  • Last modified: 2020/08/26 17:18
  • by andonovj