#4sysadmins

Inicio » GNU/Linux » Instalar y Configurar Centreon 2da parte

Instalar y Configurar Centreon 2da parte

Follow #4sysadmins on WordPress.com

En la entrada anterior vimos como instalar y preconfigurar un servidor de monitorización con Centreon, además de una breve descripción de cada una de las partes que lo conforman. Básicamente dejamos el servidor monitorizándose así mismo (usuarios conectados, uso de disco y carga de CPU). Antes de continuar con esta segunda parte donde aprenderemos a monitorizar servidores/servicios en hosts remotos vamos a dar un pequeño resumen de los conceptos mas importantes a tener bien claros.

Centreon utiliza un servicio WebUI que nos permite configurar y ver el estado de los servidores/servicios: Centreon UI

Por otra parte tenemos el motor de monitorización/centralización que se encarga de que la recolección de los datos de servidores remotos sea posible y centralizada en un nodo principal (Central Centreon): Centreon Engine

Para mantener una estructura de metadatos, configuraciones e información relativa a la monitorización, Centreon (al igual que Nagios) utiliza una BBDD (normalmente MariaDB). Para conectar el servidor principal así como los posibles poller (esto no lo veremos en estas entradas) con la/s BBDD, Centreon sustituyó a NDOUtils (utilizado por Nagios) por Centreon Broker.

Nota: Los servidores poller se utilizan cuando queremos formar una estructura jerárquica de servidores Centreon. Imaginemos dos redes a monitorizar (LAN1 y LAN2) de manera que al final todo sea representado y visualizado desde el Centreon instalado en LAN1. Bastará con instalar Centreon Engine en LAN2 y conectar este con Central Centreon de LAN1.

bschema

IMPORTANTE: Un concepto que deberemos de tener claro es el método por el cual los servidores remotos conectan (ejecutan comandos y envían los datos devueltos por estos al nodo central de monitorización) con el Central Centreon. Esto es posible gracias a NRPE (Nagios Remote Plugin Executor). La idea en resumidas cuentas (y que desarrollaremos a continuación) es la siguiente:

Se instala este plugin en el servidor Central Centreon (check_nrpe) y en el servidor remoto se instala NRPE como demonio, es decir esperará a que check_nrpe lo llame pidiéndole información. Una vez que el demonio del servidor remoto detecta que Central Centreon le está pidiendo información (y además una información concreta) este ejecutará en local el plugin que devuelva esta información, por ejemplo, imaginemos que Central Centreon le está pidiendo información del uso de disco al servidor remoto, pues este lo que hace es ejecutar el plugin check_disk (a continuación veremos como se instalan estos plugins) y este a su vez le devuelve la información pertinente.

 

Instalación de NRPE

 

Host a monitorizar (Servidor remoto)

Lo primero es descargarnos los plugins en la máquina a monitorizar (serán los que ejecute NRPE cuando sea llamado desde el servidor de monitorización). Estos plugins fueron desarrollado para Nagios pero igualmente son compatibles con Centreon:

1 – Creamos un directorio donde desempaquetaremos el código (opcional):

$ sudo mkdir /opt/nagios

2 – Descargamos el paquete de plugins. Si estamos trabajando por terminal, lo mejor es utilizar wget:

$ cd /opt/nagios

Web de descarga: http://www.nagios.org/download/

$ sudo wget nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz

Actualizado: instalación de nagios-plugin-perl:

$ sudo apt install libnagios-plugin-perl

3 – Añadimos el usuario nagios:

$ sudo useradd nagios

4 – Descomprimimos, configuramos e instalamos los plugins:

$ sudo tar xvf nagios-plugins-2.0.3.tar.gz
$ cd nagios-plugins-2.0.3
$ sudo ./configure

¿ERROR? -> configure: error: no acceptable C compiler found in $PATH

SOLUCIÓN: $ sudo apt-get install gcc

$ sudo make
$ sudo make install
$ sudo chown nagios.nagios /usr/local/nagios
$ sudo chown -R nagios.nagios /usr/local/nagios/libexec

5 – Instalamos xinetd, superservidor encargado de la gestión del servicio NRPE:

$ sudo apt-get install xinetd

6º Instalamos el demonio NRPE. Igualmente para descargarlo podemos utilizar wget:

$ cd /opt/nagios

Web de descarga: https://www.nagios.org/download/addons/

$ sudo wget downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz
$ sudo tar xvf nrpe-2.15.tar.gz
$ cd nrpe-2.15/
$ sudo ./configure

¿ERROR -> checking for SSL headers… configure: error: Cannot find ssl headers

SOLUCIÓN:

$ sudo apt-get install libssl-dev | yum install openssl-devel
$ sudo dpkg -L libssl-dev |grep libssl.so
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libssl.so /usr/lib/libssl.so

CONTINUAMOS…

$ sudo ./configure
$ sudo make all
$ sudo make install-plugin
$ sudo make install-daemon
$ sudo make install-daemon-config
$ sudo make install-xinetd

7 – Configuramos xinetd:

$ sudo vi /etc/xinetd.d/nrpe
only_from = <centreon_server_ip>

Nota: de no configurar correctamente la ip del servidor de centreon podremos obtener el siguiente error, en el que se indica problemas de conexión entre ambas máquinas:

CHECK_NRPE: Error – Could not complete SSL handshake.

Desplegamos el contenido de /etc/services y comprobamos que exista una entrada para NRPE, de lo contrario la añadiremos nosotros:

$ sudo vi /etc/services
 nrpe        5666/tcp        # Nagios Remote Plugin Executor
$ sudo service xinetd restart

Comprobamos que esté escuchando:

$ sudo netstat -at |grep nrpe
 tcp 0 0 *:nrpe *:* LISTEN

ERROR: ¿No arranca xinetd el demonio nrpe?

SOLUCIÓN: Puede ser que al ejecutar xinetd no se ejecute nrpe server y es que deberemos de copiarlo manualmente:

$ sudo mkdir /usr/local/nagios/bin/
$ sudo cp /opt/nagios/nrpe-2.15/src/nrpe /usr/local/nagios/bin/
$ sudo chown -R nagios.nagios /usr/local/nagios/bin/
$ sudo service xinetd restart
$ sudo netstat -at |grep nrpe

Al igual que con nrpe puede ocurrir que check_nrpe no se encuentre en su carpeta. En ese caso copiaremos check_nrpe en su carpeta correspondiente:

$ cd /opt/nagios/nrpe-2.15/src
$ sudo cp /usr/local/nagios/libexec/check_nrpe /usr/lib/nagios/plugins/
$ sudo chown nagios.nagios /usr/lib/nagios/plugins/check_nrpe

8 – Probamos algún plugin:

$ /usr/local/nagios/libexec/check_nrpe -H localhost -c check_users
 USERS OK - 1 users currently logged in |users=1;5;10;0

¿Existe cotrtafuegos?

$ sudo iptables -I RH-Firewall-1-INPUT -p tcp -m tcp –dport 5666 -j ACCEPT
$ sudo service iptables save

 

Host Central Centreon (servidor Centreon)

1 – Instalamos NRPE al igual que en el host remoto. Solo será necesario realizar los tres primeros pasos, es decir install-daemon, install-daemon-config e install-xinetd no serán necesarios:

$ sudo ./configure
$ sudo make all
$ sudo make install-plugin

2 – Ahora probamos si tenemos conectividad con el host remoto:

$ /usr/local/nagios/libexec/check_nrpe -H
NRPE v2.15 -> OK

 

Configurar las alertas y servicios a través de Centreon UI

Nota: Será necesario crear un host (host remoto), un comando (check_nrpe) y un servicio a comprobar (por ejemplo check_disk).

Ya tenemos todo lo necesario para crear un host remoto y un servicio a través de Centreon UI:

AVISO: Centreon es casi tan complejo y flexible como queramos que sea por lo que aquí se verá algo muy básico dejando que sean ustedes los que configuréis a vuestro gusto el resto de parámetros como las notificaciones, tipos de alertas y umbrales de alertas, cuentas a donde notificar, periodo de monitorización, etc…
Existen plantillas predefinidas para los host y para los servicios (generic host y generic service respectivamente) que serán las que nosotros utilicemos como plantilla. Estas plantillas definen unos tiempos estándar de notificación, número de chequeos, etc…

1 – Crear en Centreon el comando check_nrpe para poder llamarlo:

Confifuration > Commands > Add

comand

Save

2 – Creamos el host remoto que vamos a monitorizar y donde ya tenemos los plugins y NRPE instalados:

Configuration > Hosts > Add

hosts

Save

Nota: En la pestaña de Relations podremos crear relaciones con otros Hosts, por ejemplo si hemos previamente creado un grupo de hosts que poseen las mismas características a monitorizar, podemos relacionarlo con ese grupo.

3 – Creamos el servicio. Nosotros vamos a crear un servicio de disco es decir, Central Centreon le pedirá al servidor remoto que le devuelva los datos estadístico de su disco, en este caso de las particiones /opt y /

Configuration > Services > Add

Servicios

¡ Un momento ! Antes de darle a «Save» tiendremos que clicar ahora en la pestaña «Relations» y añadir a este servicio el host configurado previamente:

RELATIONS

Save

4 – Cada vez que se crear/modifica/elimina un host o servicio es necesario recargar la configuración. Esto se hace por un motivo, mientras estamos haciendo todos estos clicks, Centreon está modificando sus archivos de configuración de una forma «temporal», cuando estamos decidido a aplicar las configuraciones, deberemos de decirle que estamos de acuerdo por lo que probaremos los cambios y si todo esta OK entonces le diremos que exporte los archivos de configuración y reinicie/recargue el servidor o archivo de configuración ¿pero… cómo?

Pues así:

Configuration > Monitoring Engines > check «Generate Configuration Files & Run monitoring engine debug (-v)» > Export

Si todo está OK, entonces ahora indicamos que se exporten los archivos y se reinicie el servidor:

Uncheck «Generate Configuration Files» y «Run monitoring engine debug (-v)»

check «Move Export Files» y «Restart Monitoring Engine (Method = Restart o Reload)» > Export

5º Bien algo que se me iba a escapar… en el servidor remoto, como ya sabemos tenemos corriendo el servicio NRPE bajo xinetd, pues bien, este servicio tiene un archivo de configuración en el que además de opciones globales se configura lo mas importante… los umbrales y comandos a los que llamamos con check_nrpe desde el servidor de monitorización central. Vamos abrirlo y ajustar unas cosillas!!:

$ sudo vi /usr/local/nagios/etc/nrpe.cfg

Y nos vamos al final del todo. La sintaxis es sencilla:

command[nombre_de_comando_que_indicamos_en_la_interfaz_web]=/ruta/donde/se/encuentra/el/plugin/local

checknrpe

Podéis utilizar la imagen para haceros una ida de como funciona.

Poniendo la guinda

En la entrada anterior comenté que pondríamos la guinda a la monitorización y esto será instalando un paquete bastante completo de plugins para monitorizar bastantes servicios no disponibles en los plugins de Nagios descargados anteriormente. Para ello vamos a seguir el procedimiento:

AVISO: Los siguientes pasos los haremos en el servidor remoto (servidor donde queremos ejecutar un comando para que envié información a Central Centreon)

1 – Creamos el directorio donde almacenaremos estos plugins extras. El directorio base puede ser el anteriormente creado, si lo hemos eliminado pues lo volvemos a crear y si no… decidan vosotros mismos donde instalarlos:

$ sudo mkdir /opt/nagios/
$ cd /opt/nagios

2 – Clonamos el siguiente git en nuestro local

AVISO: Quizás necesitemos instalar la herramienta git ($ sudo apt-get install git)

$ sudo git clone https://github.com/harisekhon/nagios-plugins.git

Esto nos creará la carpeta /opt/nagios/nagios-plugins

3 – Si no lo tenemos ya, deberemos entonces de instalar el siguiente paquete:

$ sudo apt-get install python-pip

4 – Entramos en la carpeta /opt/nagios/nagios-plugins y make al canto para descargar todas las dependencias y recompilar:

$ cd /opt/nagios/nagios-plugins
$ sudo make
$ sudo make install

Listo!! Ahora podremos tratar estos plugins igual que los propios de Nagios instalados (normalmente) bajo /usr/local/nagios/libexec/

Fuentes
Os dejo dos PDF en los que en uno de ellos NRPE se realizan los pasos anteriormente citados (y quizás se den otras explicaciones) y un segundo NRPE-Troubleshooting-and-Common-Solutions donde tenemos la solución a una gran parte de problemas que podamos tener con los plugins.


2 comentarios

  1. andrew dice:

    Muy bueno. Gracias por compartir…

    Me gusta

Deja un comentario, Gracias!