This is an old revision of the document!
Overview
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.
Nagios Basics
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:
Configure The monitoring
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
Configure the script with Nagios Client
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