Cómo instalar Nagios Core en Ubuntu 18.04 LTS

En este artículo veremos cómo instalar Nagios Core en Ubuntu 18.04 LTS paso a paso, de modo que podrás monitorizar tus servidores o VPS Ubuntu gracias la versión de código abierto de esta fantástica herramienta.

Antes de instalar Nagios Core en Ubuntu 18.04

Para poder seguir esta guía de instalación de Nagios Core en Ubuntu 18.04 debes cumplir esta serie de requerimientos mínimos:

  • Un sistema Ubuntu 18.04 actualizado.
  • Servidor web Apache con soporte CGI y PHP.
  • Paquetes instalados: gcc y make.
  • Acceso a línea de comandos con un usuario con permisos de sudo.
  • Conexión a Internet.

Si aún no tienes preparado el sistema puedes consultar la guía de instalación de Apache en Ubuntu 18.04 y la guía de instalación de PHP en Ubuntu 18.04.

En cuanto tengas cumplidos estos requisitos podremos abrir una terminal y empezar a trabajar sobre nuestro objetivo de hoy.

En un primer paso montaremos lo que se suele llamar un servidor Nagios, que no es ni más ni menos que el sistema Nagios Core informando desde su interfaz web sobre la monitorización de la propia máquina Ubuntu 18.04.

En un segundo paso añadiremos máquinas remotas que informarán de su estado al servidor Nagios, de modo que a través de la interfaz web veremos el estado tanto del sistema local Ubuntu 18.04 como de los remotos.

Cómo descargar, compilar e instalar los plugins de Nagios para Ubuntu 18.04

Esta parte es común tanto para el servidor Nagios como para los sistemas remotos que quieras monitorizar desde dicho servidor Nagios, por tanto habrás de repetirla en cada máquina.

Antes de empezar el proceso satisfaremos las dependencias para poder compilar los plugins con éxito:

~$ sudo apt install -y libgd-dev libssl-dev unzip

Descargar los plugins

Para descargar los plugins de Nagios para Ubuntu 18.04 acudiremos a la página del proyecto:

como descargar los plugins de nagios para ubuntu 18.04

En la sección «Releases» del repositorio «nagios-plugins» encontraremos el enlace a la última versión. Copiamos el enlace y descargamos desde consola:

~$ wget https://github.com/nagios-plugins/nagios-plugins/releases/download/release-2.2.1/nagios-plugins-2.2.1.tar.gz

Compilar los plugins

En primer lugar desempaquetamos el archivo de plugins que descargamos en el paso anterior:

~$ tar xzf nagios-plugins-2.2.1.tar.gz

Entramos en el nuevo directorio:

~$ cd nagios-plugins-2.2.1/

Hemos instalado las dependencias más importantes, pero puedes consultar el archivo REQUERIMENTS por si desesas instalar otras dependencias para poder compilar ciertos plugins. En cualquier caso, configuramos la compilación:

$ ./configure

Compilamos:

$ make

Instalar los plugins

Para instalar los plugins de Nagios en Ubuntu 18.04 basta ejecutar el objetivo install sin movernos de la carpeta donde los hemos compilado:

$ sudo make install

Cuando termine la instalación de los plugins estarán disponibles en la carpeta /usr/local/nagios/libexec/.

El número de plugins instalados dependerá de las características del sistema, ya que muchos necesitan que estén instalados los servicios a los que conectarán.

Cómo probar los plugins

Estos plugins son comandos autónomos y por tanto son perfectamente ejecutables en consola.

Por ejemplo, mediante el plugin check_disk vamos a comprobar la raíz del sistema de archivos, de modo que considere como nivel de alarma cuando quede libre menos del 20% de espacio, y como nivel crítico cuando quede menos del 5%:

~$ /usr/local/nagios/libexec/check_disk -w 20% -c 5% -p /

Podría arrojar una salida como esta:

DISK OK - free space: / 5495 MB (72,57% inode=87%);| /=2076MB;6397;7597;0;7997

Que es justo lo que veríamos en la interfaz web de Nagios Core.

Como ya supondrás, es importante conocer las posibilidades de cada plugin que quieras utilizar. Llamando al plugin con el parámetro -h obtendrás información sobre sus parámetros e incluso ejemplos de uso.

Cómo descargar, compilar e instalar Nagios Core para Ubuntu 18.04

Este paso únicamente lo haremos en la máquina que actuará como servidor Nagios, a la que accederemos vía web para monitorizar tanto la propia máquina como las máquinas remotas que configuremos.

Descargar Nagios Core

Vamos a descargar Nagios Core para Ubuntu 18.04 desde el sitio web del proyecto:

como descargar nagios core para ubuntu 18.04

Accediendo a la sección «Releases» del repositorio «nagioscore» encontraremos el último lanzamiento de Nagios Core, que podemos descargar desde consola con el comando wget:

~$ wget https://github.com/NagiosEnterprises/nagioscore/releases/download/nagios-4.4.5/nagios-4.4.5.tar.gz

Compilar Nagios Core

Descomprimiremos el paquete de Nagios Core que descargamos anteriormente:

~$ tar xzf nagios-4.4.5.tar.gz

Se creará un directorio llamado nagios-4.4.5/ donde se encuentra todo el código fuente de Nagios. Entramos en dicho directorio:

~$ cd nagios-4.4.5/

Y configuramos la instalación con el script configure incluido en el código fuente:

$ ./configure

Cuando la configuración termine, es el momento de compilar:

$ make all

Instalar Nagios Core

Para instalar Nagios Core en Ubuntu 18.04 una vez compilado debemos seguir los siguientes pasos ordenadamente:

Crear los grupos y usuarios:

$ sudo make install-groups-users

Instalamos Nagios Core:

$ sudo make install

Instalamos la configuración para el servidor web:

$ sudo make install-webconf

Para que esta configuración del servidor web entre en funcionamiento hay que recargar su configuración:

$ sudo systemctl reload apache2

Instalamos la configuración de ejemplo de Nagios Core:

$ sudo make install-config

Instalamos el script del servicio Nagios:

$ sudo make install-init

Inicializamos el script del servicio:

$ sudo make install-daemoninit

Instalamos el directorio de comandos externos:

$ sudo make install-commandmode

El servicio nagios.service no está activado ni en ejecución, así que en primer lugar lo activaremos para que incie junto a Ubuntu 18.04:

~$ sudo systemctl enable nagios

Y a continuación lo iniciamos manualmente por primera vez:

~$ sudo systemctl start nagios

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

como instalar nagios en ubuntu 18.04

Debemos crear el usuario nagiosadmin para poder acceder a la interfaz web de Nagios:

~$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Nos pedirá contraseña y que la confirmemos.

Si queremos añadir más usuarios de Nagios la próxima vez que usemos htpasswd debemos hacerlo sin el parámetro -c:

~$ sudo htpasswd /usr/local/nagios/etc/htpasswd.users nagiosadmin2

Configurar Nagios Core

Para configurar Nagios Core en Ubuntu 18.04 debemos saber que el directorio que guarda las configuraciones es /usr/local/nagios/etc/. El archivo principal es nagios.cfg y se encarga a su vez de cargar otros archivos de configuración:

...
cfg_file=/usr/local/nagios/etc/objects/commands.cfg
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
cfg_file=/usr/local/nagios/etc/objects/templates.cfg
...
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
...

El archivo commands.cfg guarda las definiciones de comandos que manejarán los plugins. Lo que hay que entender es que un sistema que se quiere monitorizar usará los comandos guardados en commands.cfg, es decir, NO usa directamente los plugins.

commands.cfg

Editaremos commands.cfg para ver su estructura:

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

Encontraremos muchas definiciones de comandos, que principalmente se basan en una etiqueta personalizable (command_name) y la llamada al plugin (command_line).

Por ejemplo, el comando check_local_disk:

define command {
    command_name    check_local_disk
    command_line    $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
}

Vemos que llama al plugin check_disk que vimos anteriormente, pasándole una serie de argumentos.

Desde otros archivos se usará esta definición de comandos y se pasarán los valores correspondientes a los argumentos.

Puedes definir nuevos comandos con tus propios nombres, según necesites.

localhost.cfg

Otro archivo que se incluye en la configuración del servicio Nagios es localhost.cfg, que guarda la configuración de la monitorización del sistema local del servidor Nagios:

~$ sudo nano /usr/local/nagios/etc/objects/localhost.cfg

Encontraremos un bloque host para configurar la máquina local:

define host {
    use                     linux-server
    host_name               localhost
    alias                   localhost
    address                 127.0.0.1
}

También hay un bloque hostgroup que incluye  el servidor dentro de un grupo:

define hostgroup {
    hostgroup_name          linux-servers
    alias                   Linux Servers
    members                 localhost
}

Y veremos varios bloques service que definirán los distintos servicios que serán monitorizados por el servidor Nagios. Por ejemplo:

define service {
    use                     local-service
    host_name               localhost
    service_description     Root Partition
    check_command           check_local_disk!20%!10%!/
}

Observa que en check_command se especifica el comando check_local_disk que hemos visto antes en commands.cfg, y que los tres argumentos que especificaba la definición del comando se indican separados por caracteres !.

Otro ejemplo de servicio que se monitorizará en el sistema local:

define service {

    use                     local-service
    host_name               localhost
    service_description     HTTP
    check_command           check_http
    notifications_enabled   0
}

Se intuye que esta definición comprueba el estado del servidor web local. Podríamos editar la directiva service_description y poner la descripción como nos guste:

service_description     Servidor web Apache

De nuevo la directiva check_command especifica un comando que debe estar definido en el archivo commands.cfg, aunque en este caso no se especifican argumentos.

Cualquier cambio en los archivos de configuración de Nagios Core no hará efecto hasta recargar la configuración del servicio nagios:

~$ sudo systemctl reload nagios.service

Acceder al servidor Nagios

Ahora podemos acceder por fin a la interfaz web de Nagios Core. Usaremos como URL la dirección IP o dominio del servidor Nagios añadiendo el sufijo /nagios/.

En este ejemplo, el servidor Nagios es accesible mediante el dominio ubuntu64.local, por lo que una URL válida sería http://ubuntu64.local/nagios/

instalar nagios en ubuntu 18.04

Debemos identificarnos con las credenciales que creamos anteriormente, llevándonos acto seguido a la pantalla principal de Nagios Core:

como instalar nagios core en ubuntu 18.04

Si accedemos a la sección «Hosts» veremos que el único servidor que se está monitoreando es el propio sistema Ubuntu 18.04 en el que acabamos de instalar Nagios Core, es decir, localhost:

instalar nagios core en ubuntu 18.04

En la sección «Services» aparecerán detallados los servicios monitorizados y su estado (información obtenida a través de los servicios definidos en localhost.cfg que usan los comandos definidos en commands.cfg):

instalacion de nagios core en ubuntu 18.04

Cómo descargar, compilar e instalar Nagios NRPE en Ubuntu 18.04

Nagios NRPE es un paquete que nos ofrece tanto el servidor NRPE para instalar en las máquinas remotas que queramos monitorear, como el plugin NRPE que instalaremos en el servidor Nagios para monitorizar las máquinas remotas.

En este ejemplo el servidor Nagios tendrá como dirección ubuntu64.local, mientras que la máquina remota será ubuntu2.local.

Cómo descargar Nagios NRPE

Para descargar Nagios NRPE para Ubuntu 18.04 visitaremos la página del proyecto, donde encontraremos la última versión.

como descargar nagios nrpe para ubuntu 18.04

Buscaremos el último lanzamiento de Nagios NRPE y lo descargamos, en este caso por consola con wget:

~$ wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz

Esto lo haremos tanto en la máquina remota como en el servidor Nagios.

Compilar, instalar y configurar el servidor NRPE en la máquina remota

Descomprimimos el paquete de Nagios NRPE:

~$ tar xzf nrpe-3.2.1.tar.gz

Cambiamos al directorio que se acaba de crear:

~$ cd nrpe-3.2.1/

Configuramos la instalación:

$ ./configure

Compilamos los binarios:

$ make nrpe

Creamos usuarios y grupos para correr el servicio:

$ sudo make install-groups-users

Instalamos el binario del servicio:

$ sudo make install-daemon

Instalamos archivos de configuración del servicio NRPE:

$ sudo make install-config

Instalamos los scrips para manejo del servicio:

$ sudo make install-init

Ahora el tenemos un nuevo servicio instalado, nrpe.service o nrpe simplemente, pero no está habilitado para arrancar con Ubuntu 18.04 ni está en ejecuión.

Vamos a habilitarlo para asegurarnos de que arranque junto al sistema:

$ sudo systemctl enable nrpe

Y lo iniciamos:

$ sudo systemctl start nrpe

Podemos comprobar el estado del servicio NRPE con el comando systemctl status nrpe:

como instalar nagios nrpe en ubuntu 18.04

Configurar el servicio NRPE

Para configurar el servicio NRPE en Ubuntu 18.04 editaremos el archivo /usr/local/nagios/etc/nrpe.cfg

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

En primer lugar añadiremos la dirección IP o dominio del servidor Nagios para permitir que conecte con el servicio NRPE local. Para ello buscaremos la directiva allowed_hosts:

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

Y añadiremos la dirección del servidor Nagios desde el que conectaremos (en este ejemplo el dominio del servidor Nagios es ubuntu64.local):

allowed_hosts=127.0.0.1,::1,ubuntu64.local

Ahora tenemos que definir los servicios que permitiremos ser monitoreados remotamente, para lo que buscaremos las directivas command de las que tenemos múltiples ejemplos activados y desactivados:

...
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -r -w .15,.10,.05 -c .$
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/$
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s$
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
...

En el sistema remoto Ubuntu 18.04 de este ejemplo no existe unidad de disco /dev/hda, sino /dev/sda, por lo que podemos modificar esta definición de comando:

command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1

Y dejarla así:

command[check_sda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1

Hay que tener en cuenta que tenemos libertad para especificar el nombre de la etiqueta entre corchetes, y ese nombre es el que usaremos en el servidor Nagios para llamar a estos comandos.

Echa un vistazo a los comandos del archivo, para activar, desactivar y modificar los que te interesen, y ten a mano los nombres de las etiquetas para la configuración en el servidor Nagios.

Tras guardar y cerrar el archivo nrpe.cfg debemos recargar la configuración del servicio NRPE:

~$ sudo systemctl reload nrpe.service

La máquina remota queda a la escucha para recibir peticiones desde el servidor Nagios con los nombres de los comandos a ejecutar, el servicio local NRPE ejecutará los comandos solicitados (si están configurados) y devolverá la salida.

Compilar, instalar y configurar el plugin NRPE en el servidor Nagios

Descomprimimos el paquete de Nagios NRPE:

~$ tar xzf nrpe-3.2.1.tar.gz

Cambiamos al directorio que se acaba de crear:

~$ cd nrpe-3.2.1/

Y configuramos la compilación:

$ ./configure

Lo que compilamos en el servidor Nagios es el plugin NRPE:

$ make check_nrpe

Instalaremos el plugin NRPE junto a los otros plugins de Nagios:

$ sudo make install-plugin

Ahora en la ruta de plugins del servidor Nagios Ubuntu 18.04, en /usr/local/nagios/libexec/, existe un plugin más, llamado check_nrpe.

Al igual que cualquier otro plugin, check_nrpe puede probarse directamente desde consola. Por ejemplo, pasando como parámetro la máquina remota que ejecuta el servidor NRPE:

$ /usr/local/nagios/libexec/check_nrpe -H ubuntu2.local
NRPE v3.2.1

Es una forma rápida de comprobar que la máquina remota está lista para conectar.

Configuración del servidor Nagios para usar NRPE

Editaremos el achivo principal de Nagios Core, nagios.cfg:

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

Y buscaremos esta directiva cfg_dir:

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

La activaremos para que se lean los archivos de configuración de ese directorio, eliminando el carácter # de inicio de línea:

cfg_dir=/usr/local/nagios/etc/servers

Guardamos los cambios y cerramos el archivo.

El directorio servers/ no se crea con la configuración por defecto, así que debemos crearlo:

~$ sudo mkdir /usr/local/nagios/etc/servers

Debemos definir un nuevo comando para utilizar el plugin check_nrpe, así que editaremos el archivo de configuración de comandos de Nagios Core, commands.cfg:

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

Al final del archivo añadimos la definición del nuevo comando:

###
# Comando para usar el plugin check_nrpe
###

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

Guardamos los cambios y cerramos el archivo.

Ya estamos listos para usar este comando desde las configuraciones de Nagios Core para máquinas remotas. Por tanto, el paso siguiente consiste en crear un archivo de configuración para cada máquina remota que queramos monitorizar desde el servidor Nagios.

Crearemos un archivo ubuntu2.local.cfg en la carpeta servers/ que preparamos anteriormente:

~$ sudo nano /usr/local/nagios/etc/servers/ubuntu2.local.cfg

Y empezamos con la configuración, empezando por definir la configuración de la máquina remota:

define host {
        use     linux-server
        host_name               ubuntu2.local
        alias                   Ubuntu 2
        address                 ubuntu2.local
        max_check_attempts      5
        check_period            24x7
        notification_interval   30
        notification_period     24x7
}

En address puedes poner la dirección IP o el dominio de la máquina remota, según se adapta a tus necesidades.

A continuación pasamos a definir los servicios que deseamos monitorizar en la máquina remota. Recuerda que estos servicios deben estar configurados con sus correspondientes parámetros en la máquina remota, ya que el servidor Nagios no puede enviar parámetros; sólo se envían llamadas estáticas y se reciben las respuestas correspondientes.

Vamos a llamar a dos de los servicios configurados en la máquina remota, añadiendo a la configuración un par de definiciones:

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

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

Ya podemos guardar los cambios y cerrar el archivo.

Para que los cambios hagan efecto es necesario recargar la configuración del servicio nagios:

~$ sudo systemctl reload nagios.service

Ahora, cuando accedamos a la interfaz web de Nagios Core en el servidor Nagios, si accedemos a la sección «Hosts» veremos todas las máquinas que hemos configurado, tanto la local como las remotas:

instalar nagios nrpe en ubuntu 18.04

Toma unos minutos el que se actualice la información, ya que Nagios espacia las llamadas a los plugins para no sobrecargar los sistemas que monitoriza.

Si accedes a la sección «Services» podrás ver la información de todos los servicios monitoreados, agrupados por máquinas:

instalacion de nagios nrpe en ubuntu 18.04

Sólo tienes que repetir los mismos pasos para añadir más sistemas remotos.

Conclusión

Si has llegado hasta aquí, no me queda más remedio que darte la enhorabuena. Ahora deberías saber cómo instalar Nagios en Ubuntu 18.04 de forma que no sólo podrás monitorear tu máquina local sino también tantas máquinas remotas como quieras tener controladas.

Nagios te ofrece muchas cosas más, aquí sólo hemos establecido una base, el resto excede el propósito de esta pequeña guía.

¿Alguna pregunta, sugerencia o duda? Deja un comentario y lo miramos.

¡Apoya este sitio!

¿Has conseguido llegar con éxito al final de esta guía de instalación de Nagios Core en Ubuntu 18.04? Si es así puedes expresar tu agradecimiento con una mínima contribución para el mantenimiento de este sitio, ¡gracias!

Valora esta entrada

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 votos, promedio: 5,00 de 5)
Cargando…

Deja un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies.

ACEPTAR
Aviso de cookies