Nagios es una aplicación popular y de código abierto que se utiliza para el monitoreo continuo de sistemas, redes, servicios y aplicaciones. Supervisa constantemente el estado de las máquinas y diversos servicios. En caso de cualquier problema, proporciona una advertencia temprana para que el administrador pueda tomar las medidas necesarias. Nagios realiza todas las comprobaciones en máquinas locales y anfitrionas utilizando programas externos, conocidos como complementos. También le proporciona una interfaz web que le permite ver el estado de los hosts y servicios, el historial, los registros y generar informes.
En esta publicación, explicaremos cómo instalar y configurar Nagios en Linux y monitorear la salud de otros servidores Linux. Usaremos los dos servidores Debian 10 (Buster); ambos en la misma red. En el servidor de monitoreo, instalaremos el núcleo de Nagios, el complemento de Nagios y el complemento check_nrpe. Mientras estamos en el host remoto, instalaremos el complemento de Nagios y NRPE.
Terminologías
Comprendamos algunas terminologías que lo ayudarán a comprender las configuraciones:
Anfitrión :es un dispositivo que necesita ser monitoreado, como una máquina física, una estación de trabajo o un dispositivo de red.
Servicio :es el servicio o recurso que se supervisa en el host, como HTTP, SMTP, POP, DNS, número de usuarios registrados, uso de memoria, etc.
Complemento de Nagios: Estos son scripts que verifican el estado de un host o servicio y verifican si están funcionando correctamente. Hay algunos complementos predefinidos que pueden verificar recursos básicos como la carga del procesador, el uso del disco, las tasas de ping, etc. Los complementos generalmente se encuentran en /usr/local/nagios/libexec directorio.
Complemento NRPE (Ejecutor remoto de complementos de Nagios): El complemento NRPE ejecuta los complementos en los hosts remotos de Linux, lo que permite a Nagios vigilar los recursos locales (espacio en disco, uso de memoria, etc.). El complemento NRPE se compone de:
- demonio NRPE – Se ejecuta en hosts Linux/Unix remotos que necesitan ser monitoreados
- complemento check_nrpe – Es utilizado por el servidor de monitoreo de Nagios
Debe tener privilegios sudo en ambos servidores. Los detalles de nuestras máquinas son los siguientes:
Servidor de supervisión de Nagios:
- Nombre de host:servidor-nagios,
- Dirección IP:192.168.72.158
Host de Nagios:
- Nombre de host:cliente
- Dirección IP:192.168.72.159
Paso 1:Instalación de Nagios Core en el servidor de supervisión
En el servidor de monitoreo de Nagios, siga los pasos a continuación para descargar e instalar el núcleo de Nagios.
1. Instalación de requisitos previos
Primero, necesitaremos instalar Prerrequisitos en el servidor de monitoreo de Nagios. Para hacerlo, actualice la lista de paquetes usando el siguiente comando en la Terminal:
$ sudo actualización apt
Luego instale los paquetes requeridos:
$ sudo apt install -y autoconf gcc libc6 make wget unzip apache2 php libapache2-mod-php7.4 libgd-dev openssl libssl-dev
2. Descarga la fuente de Nagios
Vaya a /tmp directorio:
$ cd /tmp
Luego descargue el código fuente de Nagios usando wget dominio. Descargaremos la última versión actualmente disponible de Nagios que es 4.4.6 . Puede visitar las Descargas de Nagios para buscar la versión estable actual.
$ wget -O nagios.tar.gz https://github.com/NagiosEnterprises/nagioscore/archive/nagios-4.4.6.tar.gz
El archivo descargado se guardará como nagios.tar.gz en el /tmp directorio.
3. Fuente de compilación
Extraiga el archivo descargado nagios.tar.gz usando el siguiente comando:
$ tar -xzf nagios.tar.gz
Vaya a la carpeta extraída usando el cd comando:
$ cd nagioscore-nagios-4.4.6/
Ejecute la configuración script y especifica la ruta al directorio de configuración del servidor Apache:
$ ./configure --with-httpd-conf=/etc/apache2/sites-enabled
Una vez que se ejecuta el script de configuración, verá el siguiente resumen al final de la salida:
Su configuración el script puede fallar en caso de que falte algún requisito previo. En ese caso, instale los requisitos previos que faltan y vuelva a ejecutar el script.
Ahora compila Nagios usando el siguiente comando:
$ hacer todo
4. Crear usuario y grupo
Ahora cree un usuario y un grupo para Nagios.
$ sudo make install-groups-users
El comando anterior creará un usuario del sistema y un grupo de Nagios.
También necesitaremos agregar el usuario "www-data ” a los nagios grupo.
$ sudo usermod -a -G nagios www-data
5. Instalación de binarios
Luego, para instalar binarios, use el siguiente comando:
$ sudo hacer instalación
6. Instalar servicio/demonio
Para instalar archivos de servicio, use el siguiente comando:
$ sudo make install-daemoninit
7. Instalar el modo de comando
Para instalar y configurar el archivo de comando externo, use el siguiente comando:
$ sudo make install-commandmode
8. Instalar archivos de configuración
Luego, para instalar la configuración de muestra de Nagios, use el siguiente comando:
$ sudo make install-config
9. Instalar archivos de configuración de Apache
Esto instala los archivos de configuración de Apache, use el siguiente comando:
$ sudo make install-webconf
Ahora habilite los módulos de Apache usando los siguientes comandos:
$ sudo a2enmod reescritura
sudo a2enmod cgi
Cree una cuenta de usuario de Nagiosadmin para la interfaz web:
Ahora crearemos una cuenta de usuario de Apache que pueda acceder a la interfaz web de Nagios.
$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Ahora configure la contraseña para el nagiosadmin cuenta de usuario. Esta contraseña se utilizará para acceder a la interfaz web de Nagios.
Luego reinicie Apache para que los cambios de configuración surtan efecto:
$ sudo systemctl reiniciar apache2
Ahora hemos instalado correctamente el motor central de Nagios.
Paso 2:instalación del complemento de Nagios en el servidor de supervisión
Para que el núcleo de Nagios funcione correctamente, deberá instalar el complemento de Nagios.
Descargar complemento de Nagios
En el servidor de Nagios, vaya a /tmp directorio:
$ cd /tmp
A continuación, descargue el código fuente del complemento de Nagios utilizando wget dominio. Descargaremos la última versión actualmente disponible del complemento de Nagios que es 2.3.3. Puede visitar la página de Github para encontrar la versión estable reciente.
$ wget -O Nagios-plugins.tar.gz https://github.com/nagios-plugins/nagios-plugins/releases/download/release-2.3.3/nagios-plugins-2.3.3.tar. gz
El archivo descargado se guardará como Nagios-plugins.tar.gz en el /tmp directorio.
Compilar
Extraiga el archivo descargado Nagios-plugins.tar.gz usando el siguiente comando:
$ tar zxf nagios-plugins.tar.gz
Navegue a la carpeta extraída usando el cd comando:
$ cd nagios-plugins-2.3.3/
Ejecute la configuración guión:
$ sudo ./configure
Ahora compile el complemento de Nagios usando el siguiente comando:
$ sudo hacer
$ sudo hacer instalar
Paso 3:instalación del complemento check_nrpe en el servidor de supervisión
Ahora instalaremos check_nrpe plugin en nuestro servidor Nagios.
Descargar código fuente
En el servidor de Nagios, vaya a /tmp directorio:
$ cd /tmp
Luego descargue el código fuente de check_nrpe usando el comando wget. Descargaremos la última versión disponible de check_nrpe que es la 4.0.3. Puede visitar la página de Github para encontrar la versión estable reciente.
$ wget -O Nagios-nrpe.tar.gz https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-4.0.3.tar.gz
El archivo descargado se guardará como Nagios-nrpe.tar.gz en el /tmp directorio.
Compilando la Fuente
Extraiga el archivo descargado nagios.tar.gz usando el siguiente comando:
$ tar -xzf Nagios-nrpe.tar.gz
Navegue a la carpeta extraída usando el cd comando:
$ cd nrpe-4.0.3/
Ejecute la configuración guión:
$ sudo ./configure
Ahora compila el check_nrpe usando el siguiente comando:
$ sudo make check_nrpe
$ sudo make install-plugin
Paso 4:Configuración de Nagios
Ahora, configuraremos el archivo de configuración principal de Nagios. Edite el archivo de configuración de Nagios nagios.cfg usando el siguiente comando:
$ sudo nano /usr/local/nagios/etc/nagios.cfg
Ahora busque la siguiente línea en el archivo y elimínela quitando el # carácter desde el principio de la línea.
#cfg_dir=/usr/local/nagios/etc/servidores
La línea anterior especifica el directorio que contiene un archivo de configuración para todos los hosts que monitoreará el servidor Nagios. Ahora guarde y cierre el archivo de configuración.
Ahora crearemos el directorio en la ruta definida anteriormente:
$ sudo mkdir /usr/local/nagios/etc/servers
Configurar contactos de correo electrónico
Ahora configuraremos los contactos que deben ser notificados en caso de cualquier evento. Edite la configuración de contactos de Nagios usando el siguiente comando:
Para recibir alertas del servidor de monitoreo de Nagios, deberá configurar los contactos. Abre los contactos archivo de configuración y especifique la dirección de correo electrónico en la que le gustaría recibir los correos electrónicos de Nagios:
$ sudo nano /usr/local/nagios/etc/objects/contacts.cfg
En la directiva de correo electrónico, reemplace [email protected]localhost con su propia dirección de correo electrónico y luego guarde y cierre el archivo.
Configurar check_nrpe
Ahora para usar check_nrpe complemento, agregaremos un nuevo comando en el comando archivo de configuración. Edite el archivo de configuración de comandos commands.cfg usando el siguiente comando:
$ sudo nano /usr/local/nagios/etc/objects/commands.cfg
Agregue las siguientes líneas al final de commands.cfg archivo y luego guárdelo y ciérrelo:
define comando{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
Ahora inicie el servicio de Nagios:
$ sudo systemctl iniciar Nagios.servicio
Paso 5:acceder a la interfaz web de Nagios
Ahora acceda a la interfaz web de Nagios visitando la siguiente dirección en cualquier navegador web:
http://ip-del-servidor-nagios/nagios
En nuestro escenario, sería:
http://192.168.72.158/nagios
En la Autenticación requerida cuadro de diálogo, escriba nagiosadmin como el nombre de usuario y la contraseña que configuró anteriormente.
Una vez que haya iniciado sesión en la interfaz web, verá la página web predeterminada de Nagios. Ir a los Anfitriones pestaña de la barra lateral izquierda para ver los hosts monitoreados.
Actualmente, solo verá un host "localhost ” que es el propio servidor de Nagios. Para monitorear otros hosts, deberá instalar el NRPE demonio sobre ellos.
Paso 6:configuración del host remoto
Ahora tendrás que instalar el plugin de Nagios y NRPE en los hosts que necesitan ser monitoreados en el servidor Nagios.
1. Instale el complemento de Nagios en el host remoto
En el host remoto (cliente) que necesita ser monitoreado, siga los pasos a continuación para instalar el complemento de Nagios.
1. Primero, actualice el apt:
$ sudo actualización apt
2. Luego emita el siguiente comando para instalar los paquetes necesarios:
$ sudo apt install autoconf gcc libmcrypt-dev make libssl-dev dc build-essential gettext
3. Ahora, navegue hasta /tmp y descarga el complemento de Nagios.
$ cd /tmp
$ wget -O Nagios-plugins.tar.gz https://github.com/nagios-plugins/nagios-plugins/releases/download/release-2.3.3/nagios-plugins-2.3.3.tar. gz
4. Extraiga el archivo descargado:
$ tar -zxf nagios-plugins.tar.gz
5. Vaya a la carpeta extraída y ejecute configure guión:
$ cd nagios-plugins-2.3.3//
$ sudo ./configure
6. Compile el complemento:
$ sudo hacer
$ sudo hacer instalar
2. Instale el demonio NRPE en el host remoto
Siga los pasos a continuación para instalar NRPE en el host remoto.
1. Primero, actualice el apt:
$ sudo actualización apt
2. Ejecute el siguiente comando para instalar los requisitos previos:
$ sudo apt install -y autoconf automake gcc libc6 libmcrypt-dev make libssl-dev
3. Ahora navegue a /tmp y descarga NRPE.
$ cd /tmp
$ wget -O nrpe.tar.gz https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-4.0.3.tar. gz
4. Extraiga el archivo descargado:
$ tar xzf nrpe.tar.gz
5. Muévase a la carpeta extraída y ejecute el script de configuración:
$ sudo ./configure --enable-command-args
6. Compile el NRPE con los siguientes comandos:
$ sudo hacer todo
$ make install-groups-users
$ sudo make install
$ sudo make install-config
$ sudo make install-init
3. Configurar cortafuegos
Ahora, si se está ejecutando un firewall en su host remoto, deberá abrir el puerto 5666 (usado por NRPE) a través de él.
$ sudo ufw permitir 5666/tcp
4. Actualizar configuración NRPE
Ahora abra el archivo de configuración de NRPE en el host remoto:
$ sudo nano /usr/local/nagios/etc/nrpe.cfg
Deberá encontrar y modificar las siguientes entradas:
Agregar dirección IP del cliente:
server_address=192.168.72.159
Añadir dirección IP del servidor Nagios:
allowed_hosts=127.0.0.1,192.168.72.158
Además, reemplace /dev/vda1 con su sistema de archivos raíz:
comando[verificar_disco]=/usr/local/nagios/libexec/verificar_disco -w 20% -c 10% -p /dev/sda1
Luego inicie el servicio NRPE:
$ sudo systemctl start nrpe.servicio
Ahora compruebe si el servicio NRPE se está ejecutando correctamente:
$ sudo systemctl status nrpe.servicio
El activo (en ejecución) en el siguiente resultado muestra que el servicio se está ejecutando correctamente sin ningún problema. También puede ver que el NRPE permite la conexión desde 192.168.72.158 que es la dirección IP del servidor de Nagios.
Ahora para comprobar si el check_nrpe en el servidor de Nagios puede comunicarse con el NRPE en el host remoto , emita este comando en el servidor Nagios :
$ /usr/local/nagios/libexec/check_nrpe -H ip_host_remota
Debería recibir el siguiente resultado similar (número de versión de NRPE).
Paso 7:agregue la configuración del host al servidor de Nagios
Ahora en el servidor de monitoreo de Nagios, deberá crear archivos de configuración separados en /usr/local/nagios/etc/servers / para todos los hosts remotos que necesita monitorear.
Para nuestra máquina host, crearemos un nuevo archivo de configuración client.cfg :
$ sudo nano /usr/local/nagios/etc/servers/client.cfg
Reemplazar cliente con el nombre de su anfitrión:
Ahora agregue definición de host al nuevo archivo de configuración reemplazando el valor de host_name con el nombre de host remoto, alias con una breve descripción y la dirección con la dirección IP del host remoto.
Esta configuración verificará si la máquina host está activa o inactiva.
definir host {
usar linux-server
host_name client
alias client machine
dirección 192.168 .72.159
max_check_attempts 5
}
Ahora agregue definición de servicio al archivo de configuración para monitorear el host remoto. Reemplace el valor de host_name con el nombre de host remoto.
Agregue el siguiente bloque de servicio para monitorear la carga de la CPU en el servidor remoto
definir servicio {
usar servicio genérico
nombre_host cliente
descripción_servicio Carga de CPU
check_command check_nrpe! check_load
}
c en el host remoto:
definir servicio{
usar servicio genérico
host_name cliente
service_description Procesos totales
check_command check_nrpe! check_total_procs
Agregue el siguiente bloque de servicio para monitorear el uso del disco en el host remoto:
define service {
use generic-service
host_name cliente
service_description Check Disk
check_command check_nrpe!check_disk
Agregue el siguiente bloque de servicio para monitorear la cantidad de usuarios conectado actualmente en el host remoto:
define service {
use generic-service
host_name cliente
service_description Usuarios actuales
check_command check_nrpe!check_users
Ahora guarde y cierre el archivo de configuración.
Reinicie el servicio de Nagios para aplicar los cambios de configuración:
$ sudo systemctl reiniciar NagiosAhora acceda a la interfaz web usando http://nagios-server-ip/nagios. Espere un momento y su host remoto se agregará a la interfaz web de Nagios.
Ir a Anfitriones desde la barra de navegación izquierda y verá su host remoto en la lista.
Luego vaya a los Servicios y verá el estado de todos los servicios para un host que ha configurado para monitorear.
En esta publicación, hemos explicado cómo instalar y configurar la solución de monitoreo Nagios en Linux. También hemos explicado cómo configurar hosts remotos para el monitoreo. Ahora puede controlar fácilmente el estado de los hosts Linux y los servicios que se ejecutan en ellos.
Haga clic aquí si está interesado en monitorear sus servidores con Zabbix.