nagios

Ejecutar plugins de nagios en equipos remotos

Ejecutar plugins de nagios en equipos remotos

[toc]

Introducción

En ocasiones queremos monitorizar diferentes parámetros de un servidor remoto de el que tenemos instalado Nagios. Para recuperar esta información necesitamos de una manera en la que el Nagios pueda solicitarla al servidor remoto y este se la diga. Para ello disponemos de Nrpe, que es un servicio que instalado en la máquina remota, ejecuta plugins de Nagios y devuelve el resultado a quien se lo solicite. A continuación vamos a ver que tenemos que hacer para usarlo.

Instalar Nrpe

Lo primero que tenemos que hacer es instalamos el servidor nrpe en la máquina remota. Para ello tendremos que instalar el paquete de nombre nagios-nrpe-server con nuestro gestor de paquetes favoritos o ejecutando la siguiente orden:

>> sudo apt-get install nagios-nrpe-server

Si en esa máquina disponemos de un cortafuegos, tendremos que abrir el puerto en el que escucha nrpe (por defecto 5666) y que se encuentra en el fichero /etc/nagios/nrpe.cfg indicado en el parámetro server_port:

server_port=5666

Otra de las cosas que tenemos que tener en cuenta es indicarle las direcciones ip que podrán solicitarle información. Para ello tendremos que editar el fichero /etc/nagios/nrpe.cfg y cambiar la línea que pone allowed_hosts para poner la ip de nuestro servidor con nagios. Por ejemplo así:

allowed_hosts=152.145.125.145

Ahora podremos instalar cualquier plugin de Nagios y declarar el comando que le ejecute. Para ello tendremos que añadir al final del fichero /etc/nagios/nrpe.cfg una línea por cada plugin con el siguiente formato:

command[NOMBRE_COMANDO]=COMANDO

Por ejemplo:

command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10

Configurar Nagios

En la máquina del servidor de Nagios tenemos que instalar un plugin que será el encargado de pedirle la información a un servidor remoto con nrep. Para ello instalaremos el paquete de nombre nagios-nrpe-plugin a través de nuestro gestor de paquetes favoritos o con el siguiente comando:

>> sudo apt-get install nagios-nrpe-plugin

Los parámetros que soporta el plugin son los siguientes:

>> /usr/lib/nagios/plugins/check_nrpe --help
 
Usage: check_nrpe -H <host> [-n] [-u] [-p <port>] [-t <timeout>] [-c <command>] [-a <arglist...>]
 
Options:
 -n         = Do no use SSL
 -u         = Make socket timeouts return an UNKNOWN state instead of CRITICAL
 <host>     = The address of the host running the NRPE daemon
 [port]     = The port on which the daemon is running (default=5666)
 [timeout]  = Number of seconds before connection times out (default=10)
 [command]  = The name of the command that the remote daemon should run
 [arglist]  = Optional arguments that should be passed to the command.  Multiple
              arguments should be separated by a space.  If provided, this must be
              the last option supplied on the command line.
 -h,--help    Print this short help.
 -l,--license Print licensing information.
 -n,--no-ssl  Do not initial an ssl handshake with the server, talk in plaintext.

Para probar si funciona, por ejemplo para ejecutar remotamente un comando de nombre check_users en un servidor remoto de ip 145.124.124.125 con nrpe instalado, tendremos que ejecutar el siguiente comando:

>> /usr/lib/nagios/plugins/check_nrpe -H 145.124.124.125 -u -c check_users

Los comandos de nagios que el plugin nrpe define están en este fichero /etc/nagios-plugins/config/check_nrpe.cfg y un ejemplo de uso sería la definición del siguiente servicio de nagios:

define service {
        hostgroup_name                remote_linux
        service_description           Users - Usuarios
        check_command                 check_nrpe_1arg!check_users
        use                           generic-service
}

Problemas

Problema

Puede darse el caso de que al intentar ejecutar un plugin en un equipo remoto, nos de el siguiente error:

>> /usr/lib/nagios/plugins/check_nrpe -H 145.124.124.125 -u -c check_users
CHECK_NRPE: Error - Could not complete SSL handshake

Solución

El problema puede ser debido a que no hemos indicado la ip del servidor de nagios en el fichero de configuración del servidor de nrpe en el equipo remoto. Por lo que tendremos que ponerla como se indica en el apartado de instalación del nrpe .

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.