Comprobar una base de datos oracle desde nagios

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.

Comentarios

Buenas,

 

Muy interesante. Y una pregunta, ¿existe alguna forma de monitorizar el tiempo qeu Oracle tarda en realizar una consulta, y dependiendo de lo que tarde mandar una alarma de warning o una de Error? La base de datos es remota.

 

Muchas gracias de antemano.

Añadir nuevo comentario