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.
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 =)