Información blog

Linux, tutoriales, noticias, sistemas, redes y seguridad informática, entre otras cosas.

viernes, 29 de mayo de 2015

Cómo instalar Nagios en Debian8

Más de una vez, uno puede llegar a escuchar preguntas tales cómo: ¿Existen una herramienta capaz de ver el estado de otros equipos remotamente? o ¿Existe alguna forma de supervisar desde un mismo punto diferentes servicios y así evitar el tener que ir servidor por servidor haciendo los chequeos pertinentes? Esta necesidad es muy real en entornos grandes, y la mayoría de los que trabajan en el sector de la tecnología o son simplemente unos amantes de ésta, piensan en la misma herramienta: Nagios.

Existen multitud de herramientas parecidas a ésta (cómo por ejemplo icinga) pero ésta ha sido la primera de todas y la más conocida; todas poseen sus pros y sus contras y es difícil decantarse por una pues todas afirman ser mejores que el resto. Aún así, Nagios ciertamente ha demostrado ser un software estable capaz de combinar facilidad de configuración con fiabilidad, y si a eso le sumamos su fama, es probablemente la mejor opción a la hora de escoger un software de este tipo.

En este caso he optado por instalarlo en un Debian8 (Jessie) sin entorno gráfico alguno. Es perfectamente posible instalarlo en un entorno con interfaz gráfica, pero lo más común es no encontrarse con este tipo de situaciones con lo que es recomendable acostumbrarse a instalarlo sin ayuda gráfica alguna para evitar dificultades en el futuro.

Para la instalación de Nagios es imprescindible poseer ciertas herramientas instaladas de antemano:

  1. php y Apache2; Estas dos herramientas serán las que nos faciliten su gestión vía web, sin éstas la gestión de esta herramienta puede tornarse realmente dificultosa.
  2. Build-essential: Este paquete contiene las herramientas indispensables para la manipulación de paquetes, entre otros está uno que será indispensable para la instalación: un compilador llamado gcc.
  3. libdg-tools: Se trata de un conjunto de librerías que facilita al código fuente el trazado de líneas, el insertado de imágenes y otras tareas especialmente útiles en entornos web.
La mejor forma en la que uno puede asegurarse que se poseen todos los requisitos sería insertando el siguiente comando, el cual lo podéis copiar y pegar directamente en caso de trabajar en un entorno gráfico:

  1. apt-get install php5 build-essential apache2 libgd2-xpm-dev libapache2-mod-php5

Una vez comprobado que se cumplen los requisitos, tocaría pasar a la instalación del programa en cuestión. Para ello habría que hacer uso del comando wget, el cual permite descargar un archivo directamente desde la propia consola. En este caso se ha hecho la instalación de nagios-4.0.4, pero bien podría aplicarse a otra versión siempre y cuando se respete la sintaxis:

  1. cd /tmp/
  2. wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.0.4.tar.gz
  3. wget http://nagios-plugins.org/download/nagios-plugins-2.0.tar.gz

En este caso he realizado el comando desde la carpeta /tmp/ ya que el fichero se almacena en el directorio desde el cual se lanza el comando, con lo que en caso de querer guardarlo en otra carpeta habría que optar por otra ruta. Una de las "bondades" del directorio tmp es que su contenido es vaciado automáticamente al apagar o reiniciar el equipo, con lo que gracias esta medida nos aseguraremos que los ficheros comprimidos que hemos descargado se eliminarán automáticamente al siguiente reinicio.

Ahora sería el turno de preparar un usuario y un grupo; ambos especialmente preparados para funcionar con el software en cuestión, con lo que lo ideal sería optar por nombres intuitivos que nos permitan relacionar el software con el usuario, algo cómo nagios o algún equivalente. En este caso voy a usar ejemplos genéricos cómo $usuario y $grupo para realizar las distinciones pero por ejemplo un usuario y grupo válidos podrían ser nagios y nagios El proceso de creación del usuario y del grupo sería el siguiente:

  1. useradd $usuario
  2. groupadd $grupo
  3. usermod -a -G $grupo $usuario

Los dos primeros comandos sirven para crear el usuario y el grupo respectivamente, mientras que el tercero sería para asociar el grupo con el usuario.

Con todos los preparativos hechos, sería el turno de instalar Nagios. Para ello, en la carpeta en la que hemos descargado los dos ficheros comprimidos, habría que pasar éstos primero por la descompresión. Para ello habría que usar estos dos comandos:

  1. tar zxvf nagios-4.0.4.tar.gz
  2. tar zxvf nagios-plugins-2.0.tar.gz

Esto ha dado cómo resultado dos nuevas carpetas: nagios-4.0.4 y nagios-plugins-2.0. Ahora sería el turno de instalar el contenido de la primera carpeta; el proceso es algo más complicado que los famosos apt-get o dpkg; en este caso hay que ir paso a paso para configurar, compilar y finalmente instalar el software.

El primer paso es configurar el paquete antes de su compilación; Para ello habría que dirigirse a la carpeta nagios-4.0.4 y usar el siguiente comando, en el cual cómo podréis apreciar se incluyen tanto el usuario cómo el grupo:

  1. ./configure --with-nagios-group=$usuario --with-command-group=$grupo -–with-mail=/usr/bin/sendmail


El proceso de configuración suele llevar algo de tiempo, dependiendo de la potencia del equipo. Al finalizar el proceso, deberíais observar una pantalla en la que muestra la información necesaria para acceder al configurador web, tal que así:



Con la aparición de dicha pantalla, dariamos por finalizado el proceso de configuración, dando paso al proceso de compilación e instalación del paquete mediante el comando make. En este caso he agrupado todos los comandos necesarios juntos, con el fin dejar todos los comandos agrupados. Cómo veréis, hay tres lineas que no tienen nada que ver con el comando make. La razón de su existencia es que sin estas carpetas ni sin ese fichero, la instalación del webconf no funcionará.

  1. make all
  2. make install
  3. make install-init
  4. make install-config
  5. make install-commandmode
  6. mkdir /etc/httpd
  7. mkdir /etc/httpd/conf.d
  8. touch /etc/httpd/conf.d/nagios.conf
  9. make install-webconf


Aún con todo esto, aquí es importante hacer una pequeña pausa, pues cómo os podreis imaginar, el fichero nagios.conf que hemos creado no tiene uso alguno, y por mucho que hagamos bien los siguientes pasos, la interfaz web no funcionará. La solución es simple: añadir el contenido nagios.conf al fichero apache.conf y borrar la carpeta httpd que hemos creado antes pues no nos va a servir de nada. Además es necesario habilitar los cgi, mediante el comando a2enmod cgi ya que sino no os cargará los modulos. Esto se puede hacer con los siguientes comandos:


  1. cat /etc/httpd/conf.d/nagios.conf >> /etc/apache2/apache2.conf
  2. rm -R /etc/httpd/
  3. a2enmod cgi

Con todos los módulos instalados y preparados (a falta de los plugins) es necesario copiar la carpeta eventhandlers alojada en la carpeta contrib (la cual se encuentra dentro de la carpeta en la que nos encontramos ahora). Además, mediante el uso del comando chown, cambiariamos las propiedades de la carpeta para que perteneciese al usuario y grupo que hemos creado antes. Por último usaríamos un comando para revisar que el fichero nagios.cfg funciona correctamente (en un principio no deberiais topar problema alguno) y solo quedaría iniciar el servicio nagios.

  1. cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/
  2. chown -R $usuario.$grupo /usr/local/nagios/libexec/eventhandlers
  3. /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
  4. /etc/init.d/nagios start

Aún así, nagios aún no estaría listo para ser usado. El primer motivo es que nagios no posee ningún usuario configurado para poder manejar la interfaz web. Para lograr dicho objetivo habría que asignarle un usuario cómo por ejemplo nagiosadmin, cuya única función es brindarte acceso a la interfaz web. Al crear dicho usuario nos preguntará también sobre la contraseña que deberemos asignarle.

  1. htpasswd –c /usr/local/nagios/etc/htpasswd.users nagiosadmin

El segundo motivo, pero no menos importante, es que todavía no hemos instalado los plugins ni hemos preparado el propio nagios para iniciarse automáticamente en el arranque. Comencemos con la instalación de los plugin. El proceso es bastante parecido al aplicado ahora pero bastante simplificado. 

Para empezar sería necesario posicionarse en la carpeta nagios-plugins-2.0. Aquí también hay que "configurar" los paquetes con el usuario y grupo que hemos creado anteriormente para después compilarlos e instalarlos, el proceso entero se basa en tres comandos, dos de ellos muy comunes:

  1. ./configure --with-nagios-user=$usuario --with-nagios-group=$grupo
  2. make
  3. make install

Ahora mismo todo estaría preparado para funcionar, pero lamentablemente, el servicio nagios no está configurado para ser iniciado automáticamente en el arranque; Cosa muy molesta pues cada vez que se reinicie el equipo habría que iniciar a mano el servicio. Afortunadamente esto se puede solventar añadiendo el servicio al arranque del init de debian8 mediante el comando:

  1. ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios

Lo único que quedaría por hacer sería reiniciar el equipo y acceder a la siguiente URL:

ip_servidor/nagios

Al acceder a dicha URL os debería aparecer un popup como el que os voy a mostrar ahora:


Las credenciales que deberemos de introducir serían las mismas que hemos creado con el comando htpasswd; con las cuales podríamos disfrutar del software en cuestión.

Espero que os haya resultado útil.

Saludos.

No hay comentarios :

Publicar un comentario