Comprobar una base de datos oracle desde nagios
[toc]
Introducción
Nagios es un sistema de monitorización de equipos y servicios. Si usamos este software de monitorización y tenemos un servidor de base de datos Oracle, podemos monitorizarla a través de un plugin que se encarga de esto.
Para hacer esto necesitaremos tener instalado un Nagios y el comando sqlplus. Si no tenémos este último tendremos que bajárnoslo de la web de Oracle http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html y e instalarlo /programas/instantclient_11_2.
Instalación
Lo primero será descargamos el plugin que se comunicará con Oracle de esta web: http://labs.consol.de/nagios/check_oracle_health, lo descomprimimos, lo compilamos y lo ponemos en la carpeta /usr/lib/nagios/plugins/check_oracle_health:
>> wget wget http://labs.consol.de/wp-content/uploads/2011/09/check_oracle_health-1.7.3.tar.gz >> tar -zxvf check_oracle_health-1.7.3.tar.gz >> cd check_oracle_health-1.7.3 >> ./configure >> make >> cd plugins-scripts/check_oracle_health /usr/lib/nagios/plugins/
El plugin nos permite comprobar una multitud de parámetros y cual queremos comprobar se lo indicamos en el parámetro --mode (Una lista de todas cosas que podemos comprobar la podéis encontrar en la web del plugin: http://labs.consol.de/nagios/check_oracle_health/). En nuestro caso, solo queremos comprobar que el servidor de base de datos de Oracle esta vivo. Para ello nos bastará con el modo tnsping.
En la carpeta /etc/nagios-plugins/config creamos un fichero de nombre oracle.cfg en el que definiremos los comandos de Nagios para comprobar el Oracle. El fichero tendrá el siguiente contenido (cuidado con la ruta de instalación de sqlplus que indicamos en la variable ORACLE_HOME, porque si lo tenéis instalado en otra ruta tendréis que cambiarlo):
# Comprobamos el estado del oracle define command{ command_name check_oracle_instant command_line $USER1$/check_oracle_health --user $ARG3$ --password $ARG4$ --method sqlplus --connect '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=$HOSTADDRESS$)(PORT=$ARG1$))(CONNECT_DATA=(SID=$ARG2$)))' --mode tnsping --environment ORACLE_HOME=/programas/instantclient_11_2 }
Uso
Una vez que ya tenemos instalado el plugin que nos permite comprobar una base de datos Oracle, ya podemos definir un servicio de Nagios para comprobarlo:
define service{ host_name YOUR_SERVER service_description ORACLE: check_login_health check_command check_oracle_instant!1521!SID!USERNAME!PASSWORD max_check_attempts 5 check_interval 5 retry_interval 3 check_period 24x7 notification_interval 30 notification_period 24x7 notification_options w,c,r contact_groups USER }
Por último, reiniciamos nagios para que coja la nueva configuración:
>> sudo /etc/init.d/nagios3 restart
Y ya podemos ver el estado del servicio en nuestro Nagios.