Cómo instalar Nagios en CentOS 7

En este artículo veremos cómo instalar Nagios en CentOS 7 paso a paso, tanto un servidor Nagios Core, como máquinas remotas con Nagios NRPE. De esta forma podrás monitorizar no sólo tu servidor o VPS CentOS, sino todas las máquinas de tu red.

Antes de instalar Nagios en CentOS 7

Si quieres seguir esta guía de instalación de Nagios en CentOS 7 hasta el final, necesitarás cumplir unos requerimientos mínimos:

  • Un sistema CentOS 7 actualizado.
  • El repositorio EPEL instalado.
  • Servidor web con PHP para el servidor.
  • Acceso a terminal de comandos con un usuario con permisos de sudo o el propio root.
  • Conexión a Internet.

Para instalar Nagios en CentOS 7 utilizaremos los paquetes disponibles en el repositorio EPEL, por lo que no nos hará falta compilar el código fuente.

Usaremos una máquina que actuará como servidor (centos7.local.lan) que se monitorizará a sí misma y a las máquinas remotas que configuremos, donde instalaremos:

  • Nagios Core.
  • Los plugins de Nagios.
  • El plugin NRPE.

Y por otro lado tendremos una máquina que monitorizaremos remotamente (centos72.local.lan), y en la que instalaremos:

  • Los plugins de Nagios.
  • El servicio Nagios NRPE.

Cómo instalar los plugins de Nagios en CentOS 7

Para instalar los plugins de Nagios en CentOS 7 , tanto en el servidor Nagios Core como en las máquinas remotas, nos aseguraremos de tener instalado el repositorio necesario:

~$ sudo yum install -y epel-release

Actualizaremos las listas de paquetes antes de continuar:

~$ sudo yum update

En los repositorios para CentOS 7 los plugins de Nagios vienen repartidos en varios paquetes de plugins «temáticos». Podemos instalar varios de estos paquetes o directamente todos ellos a través del paquete nagios-plugins-all:

~$ sudo yum install -y nagios-plugins-all

Cómo probar los plugins

Una vez descargados e instalados el paquete y sus dependencias tendremos un nuevo directorio /usr/lib64/nagios/plugins/ dentro del cual se encuentran todos los comandos ejecutables de los plugins.

Se pueden probar directamente en consola, pero es importante conocer su sintaxis y argumentos necesarios.

Veamos un ejemplo. El plugin check_users se encarga de comprobar el número de usuarios que han iniciado sesión en el sistema. Si lo lanzamos tal cual en consola obtendremos esto:

~$ /usr/lib64/nagios/plugins/check_users

Usage:
check_users -w <users> -c <users>

La salida del comando nos indica que necesita un parámetro -w y otro -c. Si usamos el parámetro -h obtendremos ayuda sobre cómo usar el plugin. Entre otras cosas averiguaremos que el parámetro -w hace referencia al nivel de usuarios que caso de superarse debería considerarse como alarmante, mientras que el parámetro -c establece el nivel crítico. Ahora somos nosotros los que debemos establecer cuál es el número de usuarios que supone una alarma y cuál sería un nivel crítico.

Podemos lanzar el comando desde consola con valores de prueba:

~$ /usr/lib64/nagios/plugins/check_users -w 5 -c 10
USERS OK - 2 users currently logged in |users=2;5;10;0

El plugin funciona perfectamente y el mensaje que vemos es lo que obtendríamos en la interfaz web de Nagios Core si configuráramos el plugin tal cual.

Consulta la ayuda de los plugins que te interesen, invocándolos con el parámetro -h para obtener ayuda detallada de uso.

Este proceso es el mismo para el servidor Nagios Core y para todas las máquinas CentOS 7 remotas que quieras monitorizar.

Cómo instalar Nagios Core en CentOS 7

Vamos a instalar Nagios Core en CentOS 7 en la máquina que actuará como servidor Nagios. El paquete que necesitamos ahora es nagios y lo instalaremos con yum:

~$ sudo yum install -y nagios

Después de descargar e instalar el paquete y sus dependencias tenemos un nuevo servicio en CentOS 7, el servicio nagios.service o nagios, que por defecto no está activado ni en ejecución.

Para activar el servicio nagios y que arranque con el inicio de CentOS 7 usaremos la opción enable del comando systemctl:

~$ sudo systemctl enable nagios

Para iniciar el sevicio por vez primera usaremos la opción start:

~$ sudo systemctl start nagios

Podemos comprobar el estado del servicio nagios en cualquier momento con el comando systemctl status nagios:

como instalar nagios core en centos 7

Cómo acceder a Nagios Core en CentOS 7

Para acceder a Nagios Core desde el navegador añadimos el alias /nagios a la dirección IP o dominio del servidor CentOS 7.

En este caso, el servidor es accesible desde el dominio centos7.local.lan, por lo que la URL http://centos7.local.lan/nagios será la que utilicemos.

Se nos presentará una ventana de inicio de sesión:

instalar nagios core en centos 7

El usuario por defecto es nagiosadmin y su contraseña es también nagiosadmin.

Accederemos a la página principal de Nagios Core:

como instalar nagios en centos 7

Podemos acceder a la sección «Hosts«, donde veremos que la máquina local está configurada y la monitorización activa:

nagios para centos 7

Si accedemos a la sección «Services» veremos una vista más detallada, donde se muestra para cada máquina (en este caso sólo aparece la máquina local) la lista de servicios monitorizados y el estado de cada uno de ellos:

Nagios en CentOS 7

Como curiosidad, el servicio HTTP muestra una alarma porque la página por defecto del servidor web en CentOS 7 en realidad es una página de error, ya que no existen archivos web inicialmente.

Cómo instalar Nagios NRPE en una máquina remota CentOS 7

En la máquina remota ya deberíamos tener instalados los plugins de Nagios de acuerdo a lo explicado anteriormente. Ahora vamos a instalar y configurar el servicio Nagios NRPE, que recibirá las peticiones de datos del servidor Nagios Core, a las que responderá con los resultados.

Instalamos el servicio Nagios NRPE para CentOS 7 con el paquete nrpe:

~$ sudo yum install -y nrpe

Se crea un nuevo servicio en CentOS 7 llamado nrpe.service o nrpe. No está iniciado ni habilitado, pero antes de activarlo debemos hacer algunos ajustes en su archivo de configuración:

~$ sudo nano /etc/nagios/nrpe.cfg

Buscamos la directiva allowed_hosts:

...
allowed_hosts=127.0.0.1,::1
...

Podemos observar que sólo se permiten conexiones desde la propia máquina, así que añadiremos a la lista la dirección del servidor Nagios Core que conectará con el servicio NRPE:

...
allowed_hosts=127.0.0.1,::1,centos7.local.lan
...

Este archivo contiene también varias definiciones de muestra de comandos que pueden ser admitidos en las peticiones desde el servidor Nagios Core:

...
command[check_users]=/usr/lib64/nagios/plugins/check_users -w 5 -c 10
command[check_load]=/usr/lib64/nagios/plugins/check_load -r -w .15,.10,.05 -c .30,.25,.20
command[check_hda1]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/lib64/nagios/plugins/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/lib64/nagios/plugins/check_procs -w 150 -c 200
...

Por ejemplo, en la máquina de pruebas para este tutorial no existe dispositivo /dev/hda, sino /dev/sda, así que modificamos el comando check_hda1 de forma adecuada:

...
command[check_sda1]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda1
...

Puedes personalizar estos comandos y otros que están desactivados, así como añadir nuevos según tus necesidades.

Terminada la configuración, guardamos los cambios y cerramos el archivo.

Ya podemos habilitar e iniciar el servicio NRPE:

~$ sudo systemctl enable --now nrpe

En cualquier momento podemos comprobar el estado del servicio Nagios NRPE con el comando systemctl status nrpe:

como instalar nagios nrpe en centos 7

El servicio queda en ejecución, esperando conexiones en el puerto 5666 TCP.

Si en algún momento necesitas realizar cambios en la configuración del servicio NRPE, al terminar habrá que recargar los nuevos ajustes:

~$ sudo systemctl reload nrpe

Configurar el firewall de CentOS 7 para Nagios NRPE

Normalmente el firewall de CentOS 7 está activado por defecto, por lo que bloqueará las conexiones entrantes al servicio NRPE. Debemos añadir una regla que permita las conexiones:

~$ sudo firewall-cmd --permanent --add-service=nrpe

Aplicamos los cambios de inmediato recargando la configuración del firewall:

~$ sudo firewall-cmd --reload

Hemos terminado el trabajo en la máquina remota.

Configurar máquinas remotas en Nagios Core para CentOS 7

De vuelta al servidor Nagios Core, instalamos el paquete nagios-plugins-nrpe, que contiene el plugin NRPE que permite conectar el servidor Nagios con el servicio NRPE de las máquinas remotas:

~$ sudo yum install -y nagios-plugins-nrpe

Dispondremos de un nuevo plugin instalado junto a los demás, y podemos usarlo directamente en consola para comprobar la conectividad con la máquina remota que hemos configurado antes:

~$ /usr/lib64/nagios/plugins/check_nrpe -H centos72.local.lan
NRPE v4.0.3

Podemos comprobar que la conectividad es perfecta, ya que la máquina remota CentOS 7 responde con la versión del servicio NRPE instalado.

Ahora tenemos que crear un comando para que Nagios Core pueda usar este plugin:

~$ sudo nano /etc/nagios/objects/commands.cfg

Al final del archivo añadimos la definición de un nuevo comando, al que llamaremos check_nrpe:

...
define command {
        command_name check_nrpe
        command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

Guardamos los cambios y cerramos el archivo.

Cómo crear la configuración de las máquinas remotas

Vamos a hacer que Nagios Core cargue las configuraciones de las distintas máquinas, para lo que habilitaremos un directorio donde guardaremos un archivo de configuración para cada máquina remota.

Editamos el archivo principal de configuración de Nagios Core:

~$ sudo nano /etc/nagios/nagios.cfg

Buscaremos la siguiente línea:

...
#cfg_dir=/etc/nagios/servers
...

Eliminamos el carácter # inicial, con lo que se cargarán todas las configuraciones existentes en la ruta indicada:

...
cfg_dir=/etc/nagios/servers
...

Guardamos los cambios y cerramos el archivo.

La ruta anterior no existe aún, así que la creamos:

~$ sudo mkdir /etc/nagios/servers

Y dentro de ese directorio crearemos el archivo de configuración para la máquina remota que preparamos anteriormente:

~$ sudo nano /etc/nagios/servers/centos72.local.lan.cfg

Añadimos los datos de la máquina:

define host {
        use linux-server
        host_name centos72.local.lan
        alias CentOS 7 - 2
        address centos72.local.lan
        max_check_attempts 5
        check_period 24x7
        notification_interval 30
        notification_period 24x7
}

Y a continuación definimos algunos servicios, por ejemplo la carga de CPU y el espacio libre en la partición principal:

...
define service {
        use generic-service
        host_name centos72.local.lan
        service_description Carga de CPU
        check_command check_nrpe!check_load
}

define service {
        use generic-service
        host_name centos72.local.lan
        service_description Espacio libre en /dev/sda1
        check_command check_nrpe!check_sda1
}

Observa que en la llamada al comando check_nrpe (comando que creamos antes) se le pasa como argumento un comando que debe estar definido como tal en la máquina remota.

Guardamos los cambios y cerramos el archivo.

Finalmente, recargamos la configuración del servicio nagios para activar todos estos cambios:

~$ sudo systemctl reload nagios

Abrimos la interfaz web de Nagios Core y en la sección «Hosts» ahora además de la máquina local aparecerá la nueva máquina remota recién configurada:

como configurar nagios en centos 7

Y si visitamos la sección «Services» tendremos disponible también la lista de servicios monitorizados de la máquina remota y los resultados:

configurar nagios en centos 7

Conclusión

Ahora que ya sabes cómo instalar Nagios Core, Nagios NRPE y los plugins de Nagios en CentOS 7 de forma sencilla gracias a los paquetes disponibles, puedes monitorizar tantos sistemas como necesites. Sólo es cuestión de repetir los mismos pasos en cada máquina remota.

En caso de dudas, preguntas, alguna sugerencia tal vez, etc. puedes dejar un comentario.

¡Apoya este sitio!

¿Ya estás monitorizando tus sistemas gracias a esta guía de instalación y configuración de Nagios en CentOS 7? Si es así y te apetece agradecérnoslo, cualquier aportación ayuda al mantenimiento de este sitio y la creación de nuevos tutoriales de CentOS 7 y Nagios.

Puedes hacerlo dejando una propina a partir de 1 $ desde PayPal:

O, si te sientes especialmente agradecido, puedes invitarnos a un cappuccino:

¡Gracias!

Valora esta entrada

5/5 - (3 votos)

Deja un comentario