Nagios es un sistema de monitorización de redes ampliamente utilizado, de código abierto, que vigila los equipos (hardware) y servicios (software) que se especifiquen, alertando cuando el comportamiento de los mismos no sea el deseado. Entre sus características principales figuran la monitorización de servicios de red (SMTP, POP3, HTTP, SNMP…), la monitorización de los recursos de sistemas hardware (carga del procesador, uso de los discos, memoria, estado de los puertos…), independencia de sistemas operativos, posibilidad de monitorización remota mediante túneles SSL cifrados o SSH, y la posibilidad de programar plugins específicos para nuevos sistemas.

Creación del escenario

Vamos a crear un escenario con tres máquinas a monitorizar en la cual vamos a instalar algunos servicios.

Info! Nuestras maquinas se van a llamar Haley, Lewis y Berry en vuestro caso podéis poner el nombre que prefiráis.

Haley

En esta máquina vamos a monitorizar el servidor ssh apt install ssh y el gestor de base de datos mongoDB apt install mongodb, dicha máquina va a ser donde se encuentre nagios3 apt install nagios 3 durante la instalacion nos solicitará una clave para el usuario «nagiosadmin», para después poder acceder desde la web introduciendo la [IP_Maquina]/nagios3

Berry

En esta máquina vamos a instalar una pila LAMP el cual incluye (Apache2, mysql-server, php5) apt install apache2 php5 php-pear php5-mysql mysql-server

Lewis

En esta máquina simplemente un cliente Debian de el cual después vamos a monitorizar diferentes servicios que no son necesarios instalar

Instalar plugins nagios en todas la máquinas

Vamos a instalar NRPE apt install nagios-nrpe-server nagios-nrpe-plugin nagios-plugins en todas las máquinas, es el software que permite ejecutar remotamente los plugins de Nagios en otros equipos, lo que permite monitorizar los parámetros de la máquina remota.

Configuraciones necesarias para funcionamiento

Vamos a editar el fichero /etc/nagios/nrpe.cfg deberemos permitir el acceso al servidor de Nagios añadiendo su IP, este proceso lo vamos a realizar en todas las máquinas, para ello en todas las máquinas añadimos la ip del servidor en la y permitimos que se reciban argumentos en los comandos

En este fichero, más abajo, vienen ya algunos plugins predefinidos al cual le cambiaremos los valores a nuestro interés, principalmente cambiaremos los valores “-w (warm)” y “-c (critical)” donde en cada línea le estaremos diciendo que si el valor de “-w” es superado nos lo indique como advertencia y si supera el valor de “–c” nos lo indique como una situación crítica. Estos son los diferentes plugins que vamos a configurar(vamos a dejar la mayoría de los que vienen por defecto:

haley

Lewis

berry

Info! En la prueba de disco, nuestro dispositivo puede variar de nombre deberemos estipular el dispositivo de bloque que tengamos en nuestra maquina.

Y reiniciamos el servicio en todas las máquinas service nagios-nrpe-server restart

Monitorizar maquinas

Para monitorizar las máquinas de nuestra red vamos a crear el fichero “/etc/nagios3/conf.d/host.cfg en haley y le añadimos lo siguiente

Info! Las IP de nuestra red son asiginadas por un servidor DHCP por tanto segun la red puede variar.

Y reiniciamos el servicio de nagios3 /etc/init.d/nagios3 restart

Observamos que nagios ya ha detectado a las maquina y esta comprobando su funcionamiento

Al pasar unos minutos comprobamos que todas las maquinas se encuentran up, accediendo a la pestaña “hosts”:

Monitorizar los servicios previamente instalados en Haley y Berry

Haley

Antes de monitorizar «mongoDB» debemos instalar y configurar algunas dependencias para su correcto funcionamiento, para realizar estos pasos debemos descargar el paquete zip apt install zip, en el cual se instalara tanto «zip» como «unzip»

Primero instalamos los plugins necesarios, que descargaremos de la siguiente cuenta de github:

Y por ultimo lo drivers que también descargaremos de la siguiente cuenta de github

Posteriormente añadimos el siguiente contenido al final del fichero /etc/nagios3/commands.cfg

Berry

Primero debemos de configurar un usuario y ponerle una contraseña y le damos permisos sobre todas las base de datos:

A continuación configuramos MySql para que escuche en cualquier dirección IP y eso lo modificamos en el fichero /etc/mysql/my.cnf, descomentamos la linea bind-address y añadimos en lugar de 127.0.0.1 esto 0.0.0.0

Por ultimo reiniciamos el servicio /etc/init.d/mysql restart

Para crear los servicios podemos hacerlo en un nuevo fichero dentro del directorio /etc/nagios3/conf.d/servicios-fisico.cfg, que se encuentra en haley.

Vamos a añadir lo siguiente dado que debe de monitorizar tanto el servicio de apache2, como de mysql:

Aviso vía correo electrónico

Para ello instalamos en «haley» el paquete de servidor de correo ssmtp apt install ssmtp, el siguiente paso será configurar «ssmtp», para ello modificaremos el fichero de configuración /etc/ssmtp/ssmtp.conf para que quede así:

Prueba funcionamiento ssmtp

Para ello enviaremos un correo a nuestra correonagios@juanluramirez.com con un mensaje de prueba como este:

Para poder escribir el mensaje ejecutaremos el siguiente comando ssmtp [Correo Destinatario] y empezamos a añadir líneas, cada vez que añadamos una presionamos Enter y cuando queramos enviar el correo presionamos Ctrl+D

Envió correo para notificar cualquier problema

Ahora procedemos a editar el fichero /etc/nagios3/conf.d/contacts_nagios2.cfg para que quede asi:

A continuación reiniciamos el servicio de nagios3 /etc/init.d/nagios3 restart

Ahora desde Berry vamos a parar el servicio de apache2 /etc/init.d/apache2 stop

Pasado unos minutos podemos observar que en el entorno web de nagios nos devuelve un fallo tipo critical y pasado unos minutos más recibimos el correo

Controlar espacio disco y número de procesos zombies

Se va a controlar en lewis, por tanto añadimos un fichero que llamaremos «disco_zombies.cfg» en «haley» /etc/nagios3/conf.d/disco_zombies.cfg

Info! En la prueba de disco, nuestro dispositivo puede variar de nombre deberemos estipular el dispositivo de bloque que tengamos en nuestra maquina.

Y reiniciamos el servicio /etc/init.d/nagios3 restart

Controle la carga de CPU, usuarios logueados, procesos y el servicio SSH

Vamos a controlar la carga de CPU, cantidad de usuarios logueados, el número de procesos y el estado del servicio SSH en haley, para ello cremos un fichero «haley.cfg» en /etc/nagios3/conf.d/haley.cfg

Y reiniciamos el servicio /etc/init.d/nagios3 restart

Representación mapa de objetos

Aqui podemos observar la respresentacion como mapa de objetos, para ello nos dirigmos a Map

Pruebas de funcionamiento

Info! Todos los procesos en los que modificamos el fichero «nrpe.cfg» o páramos cualquier servicio vamos a obtener un correo, dado que antes configuramos el servidor de correos y si falla recibiremos un correo con el fallo.

Haley

Vamos a realizar pruebas en todas la maquinas, primero vamos a hacer la prueba de ssh, para ello vamos a parar el proceso /etc/init.d/ssh stop

Observamos que el estado cambia a critical y recibiremos un correo notificándonos el problema

Comprobamos el servicio el cual controla los procesos en haley, para ello vamos a modificar el fichero /etc/nagios/nrpe.cfg y vamos a modificar la linea donde se configura los procesos y vamos a poner que salte un warning cuando haya 50 procesos

Y reiniciamos el servicio /etc/init.d/nagios-nrpe-server restart

A continuación comprobamos el servicio de carga de CPU para ello vamos a realizar un uptime y observamos que lo valores que da nagios son iguales que lo que da el comando

Y por último listamos el número de usuarios conectados para comprobarlo con la salida de nagios con el comando users | wc -w

Berry

Anteriormente en la comprobación del servidor de correo paramos el servicio apache2 |

, por tanto ahora solo vamos a parar el servicio mysql /etc/init.d/mysql stop

Lewis

Vamos a hacer que nos salte un aviso cuando el disco tenga menos del 50% para eso solo debemos modificar el fichero /etc/nagios/nrpe.cfg en lewis.

Por ultimo solo quedan comprobar los procesos «zombies» para ello ejecutamos un top y podemos observar que no hay ninguno y si lo comparamos con lo que nos devuelve nagios por pantalla es igual