Para que el servidor Nagios empiece a mostrar información, necesitamos que en las máquinas a monitorizar haya instalado un cliente.
Hoy explicaré la instalación del agente en servidores GNU Linux.
La instalación la haré sobre un servidor Debian que tengo en producción y que uso de cajón desastre cuando quiero poner un servicio que no necesita correr en un servidor dedicado.
Compilación e instalación de los plugins de Nagios
Si la instalación la hacemos en un servidor Debian o familia como es mi caso, habrá que instalar las siguientes librerías para que no nos de errores de compilación y además agregar manualmente el usuario nagios:
# apt install build-essential
# apt-get install libssl-dev
Agregamos el usuario nagios
# useradd nagios
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 preparar el SO para la compilación.
# ./configure
Ejecutamos los comandos make para instalar los plugins de Nagios.
# make install
Instalación del módulo NRPE
Descargamos la última versión del módulo NRPE.
# cd ..
# 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 para preparar el SO para la compilación.
# ./configure
Y lanzamos la compilación.
# make all
# make install
# make install-config
# make install-init
Editamos el archivo de configuración de NRPE. Sin esta modificación Nagios no lo puede monitorizar.
# nano /usr/local/nagios/etc/nrpe.cfg
Y añadimos la ip de nuestro servidor Nagios en la línea allowed_hosts y separamos con coma (,).
allowed_hosts=127.0.0.1,::1,IP_SERVIDOR_NAGIOS
Habilitamos el servicio NRPE
# systemctl enable nrpe
Y lo iniciamos
# systemctl start nrpe
Con estos pasos, ya tendríamos instalado el agente en el servidor cliente.
Comprobar la comunicación con servidor Nagios.
En nuestro servidor nagios, navegamos hacia la ruta:
# cd /usr/local/nagios/libexec/
Y ejecutamos el binario check_nrpe.
# ./check_nrpe -H ip_servidor_cliente
Si nos devuelve la versión del plugin, es porque hay comunicación entre servidor y cliente y está todo correcto.
Agregar un cliente a servidor Nagios
Hasta ahora lo único que hemos hecho es instalar el agente en el servidor cliente y hacer una prueba de comunicación desde el servidor Nagios.
Para agregar un cliente y que nuestro Nagios lo esté monitorizando constantemente, realizaremos las siguientes acciones.
Creamos un template para el servidor que vamos a agregar en la siguiente ruta:
# nano /usr/local/nagios/etc/objects/linux.cfg
Como yo he agregado un servidor linux, le he llamado a mi template «linux.cfg»
Dentro del template podemos definir hosts y servicios.
Ejemplo de definición de host:
define host{
use linux-server
host_name cliente_linux
alias Servidor de múltiples servicios
address IP_Cliente_Monitorizar
}
Donde:
use Es la plantilla general a utilizar
host_name Es el nombre que le vamos a dar a ese servidor
alias Es la descripción del servidor
address Es la IP del cliente a monitorizar
Nota: Todo lo que no definamos en este apartado, lo tomará de la plantilla general utilizada, es este caso linux-server.
Ejemplo de definición de servicio:
define service{
use generic-service
host_name cliente_linux
service_description Disco duro
check_command check_nrpe!check_hda1
}
Donde:
use Es la plantilla general a utilizar
host_name Es el nombre del servidor donde pondremos el servicio
service_description Es la descripción del servicio
check_command Es el comando a utilizar en el servicio definido
Definimos tantos servicios como necesitemos monitorizar.
Cuando hayamos definido los servicios que necesitamos, informamos a Nagios que hay un nuevo archivo de configuración.
Para ello editamos el fichero nagios.cfg, buscamos la sección OBJECT CONFIGURATION FILE(S) y agregamos una nueva línea indicando el nombre del template que hemos creado.
# nano /usr/local/nagios/etc/nagios.cfg
...
# OBJECT CONFIGURATION FILE(S)
# These are the object configuration files in which you define hosts,
...
cfg_file=/usr/local/nagios/etc/objects/linux.cfg
...
Comprobamos que no hemos cometido errores al escribir el archivo de configuracón.
# nagioscheck
Y reiniciamos el servicio de Nagios para que cargue el nuevo template que hemos añadido.
# systemctl restart nagios
Vamos a la aplicación web de Nagios y vemos el servidor (Servicios) que hemos agregado con los servicios que hemos definido. El host llamado localhost, es el propio Nagios que muestra información de su NRPE.
Resolución de posibles problemas
El plugin NRPE en el cliente, llama al disco duro HDA1 y nos puede aparecer el mensaje HDA1 => NO reconoce el disco duro del cliente
Para corregir esto, editamos en el cliente el archivo nrpe.cfg
# nano /usr/local/nagios/etc/nrpe.cfg
Buscamos la sección de comandos y en el plugin check_hda1 pasamos como parámetro el nombre del disco duro del cliente a monitorizar: sda1 en mi caso.
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1
Reiniciamos el servicio NRPE
# systemctl restart nrpe
Y con eso ya habremos subsanado el error.
Saludos =)