Instalación de Nagios

En la entrada anterior comentaba lo beneficioso que es tener una herramienta de monitorización en nuestro día a día. En las siguientes líneas indicaré cómo instalar Nagios en un servidor CentOS 8.

Laboratorio

Especificaciones del servidor:

SO                 CentOS Linux
Versión SO         8.2.2004
Arquitectura       x64
Número de núcleos  4
Memoria RAM        1 GB.
Tamaño de Disco    32 GB.
Tipo               Virtualizado

Preparación del Servidor

Lo primero que hacemos es verificar que nuestro servidor tiene las últimas actualizaciones instaladas. Para ello ejecutamos la siguiente instrucción en el terminal.

# yum update

Para el laboratorio, deshabilitamos SELinux para instalar y configurar nagios.

# nano /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted 

Añadimos las reglas al firewall para los puertos 80 y 443 para acceso vía web.

# firewall-cmd --permanent --add-port=80/tcp
# firewall-cmd --permanent --add-port=443/tcp

Luego aplicamos los cambios en el firewall.

# firewall-cmd --reload

Verificamos los puertos que hemos abierto.

# firewall-cmd --list-all
public (active)
...
ports: 80/tcp 443/tcp
...

Reiniciamos el servidor para que los cambios sobre SELinux surtan efecto.

# systemctl reboot

Instalamos los paquetes de dependencias.

# yum install -y gettext wget net-snmp-utils openssl-devel glibc-common unzip perl epel-release gcc php gd automake autoconf httpd make glibc gd-devel net-snmp
# yum --enablerepo=powertools,epel install perl-Net-SNMP
# yum install perl-Net-SNMP

Agregamos el usuario nagios y lo hacemos miembro del grupo apache.

# useradd nagios
# usermod -a -G nagios apache

Compilación e instalación de Nagios

Descargamos la última versión de Nagios.

# wget https://github.com/NagiosEnterprises/nagioscore/releases/download/nagios-4.4.6/nagios-4.4.6.tar.gz

Descomprimimos el paquete que hemos descargado.

# tar -xzvf nagios-4.4.6.tar.gz

Navegamos al directorio donde se ha desempaquetado.

# cd nagios-4.4.6

Ejecutamos el script configure para verificar que el SO contiene los paquetenes necesarios para la compilación de Nagios.

# ./configure

Ejecutamos los comandos make para compilar Nagios, instalar los scripts de inicio y la configuración por defecto.

# make all
# make install
# make install-init
# make install-commandmode
# make install-config
# make install-webconf

Habilitamos el servicio de Apache y Nagios para que inicie con el sistema mediante la instrucción enable.

# systemctl enable httpd
# systemctl enable nagios

Protegemos la página de Nagios con usuario y contraseña. Con la opción -c le indicamos que cree un fichero de contraseñas para Nagios.

# htpasswd -c /usr/local/nagios/etc/htpasswd.users admin

Nota:

Si lo que queremos es añádir un nuevo usuario al fichero existente, obviamos el parámetro -c.

# htpasswd /usr/local/nagios/etc/htpasswd.users nuevousuario
New password: ************
Re-type new password: ************

Iniciamos los servicios correspondientes a Apache y Nagios.

# systemctl start httpd
# systemctl start nagios

Y si hemos seguido estos sencillos pasos, podríamos acceder a la interfaz web de la siguiente manera:

Abrimos un navegador web y ponemos la siguiente URL:

http://IP_SERVIDOR_NAGIOS/nagios

Cambiando IP_SERVIDOR_NAGIOS por la IP del servidor que hayamos usado para instalar Nagios.

Utilizamos las credenciales que pusimos para proteger el sitio de Nagios. El usuario admin en mi caso con su respectiva contraseña.

Pantalla de inicio de Nagios

Compilación e instalación de los plugins de Nagios

Una vez instalado Nagios, procedemos con la instalación de los plugins que son necesarios para realizar los cheackeos en los dispositivos a monitorizar.

Descargamos la última versión de los plugins de Nagios.

# wget https://github.com/nagios-plugins/nagios-plugins/releases/download/release-2.3.3/nagios-plugins-2.3.3.tar.gz

Descomprimimos el paquete descargado.

# tar -xzvf nagios-plugins-2.3.3.tar.gz

Navegamos al directorio donde se ha desempaquetado.

# cd nagios-plugins-2.3.3

Ejecutamos el script configure para verificar que el SO contiene los paquetenes necesarios para la compilación de los plugins.

# ./configure

Ejecutamos los comandos make para compilar e instalar los plugins de Nagios.

# make install

Reiniciamos el servicio de Nagios.

# systemctl restart nagios

Listamos los plugins instalados en la siguiente ruta:

# ls /usr/local/nagios/libexec/
...
check_apt       check_dummy         check_imap      check_nntps
...

Instalación del módulo NRPE

NRPE (Nagios Remote Plugin Executor) permite ejecutar complementos de Nagios en otras máquinas de forma remota.

Descargamos la última versión del módulo NRPE.

# wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-4.0.3.tar.gz

Descomprimimos el paquete descargado.

# tar -xzvf nrpe-4.0.3.tar.gz

Navegamos al directorio donde se ha desempaquetado.

# cd nrpe-4.0.3

Ejecutamos el script configure.

# ./configure
*** Configuration summary for nrpe 4.0.3 2020-04-28 ***:

 General Options:
 -------------------------
 NRPE port:    5666
 NRPE user:    nagios
 NRPE group:   nagios
 Nagios user:  nagios
 Nagios group: nagios

Nota: 5666 Es el puerto que se debe abrir en el FW de cada servidor/ordenador que se quiera monitorizar para que Nagios pueda establecer comunicación.

Compilamos el ejecutable a invocar cada vez que se hace una consulta a un servidor.

# make check_nrpe

Copiamos el NRPE que acabamos de compilar donde tenemos todos los ejecutables /usr/local/nagios/libexec.

# make install-plugin

Creamos un comando para que Nagios pueda usar el comando NRPE editando el fichero de configuración commands.cfg

# nano /usr/local/nagios/etc/objects/commands.cfg

Y añadiendo al final del mismo, la siguiente información.

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

Donde:

$USER1 es el equivalente al PATH /usr/local/nagios/libexec

Se puede ver el contenido de esta variable en el fichero de configuración resource.cfg con el siguiente comando:

# cat /usr/local/nagios/etc/resource.cfg
...
# Sets $USER1$ to be the path to the plugins
$USER1$=/usr/local/nagios/libexec
...

Comprobamos la sintaxis de nuestros archivos de configuración de Nagios.

# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Si no tenemos errores, reiniciamos el servicio de Nagios.

# systemctl restart nagios

Nota:

Como vamos a necesitar mucho los comandos para revisar la sintaxis y reiniciar el servicio de Nagios y sobre todo el primero es largo, podemos crear un alias de comando.

Creación de Alias de comandos.

Agregamos dos alias al final del archivo .bashrc ubicado en el home del usuario con el que se trabaja, en nuestro caso root:

# nano /root/.bashrc

Añadimos las siguientes líneas a dicho fichero.

...
alias nagioscheck='/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg'
alias nagiosreload='systemctl restart nagios'

Recargamos la configuración con los comandos que hemos añadido.

# source /root/.bashrc

Y ya hemos dejado todo preparado para en el siguiente artículo monitorizar nuestro primer servidor Linux.

Saludos =)