Como configurar Nagios

 

www.onlinetis.com

Nagios es una popular herramienta de código abierto utilizada para la monitorización de sistemas y redes. Su función principal es vigilar el estado de los equipos (hardware) y los servicios (software) de una infraestructura de TI, alertando a los administradores cuando se detecta un problema o una anomalía. Es ampliamente utilizado en entornos empresariales para garantizar la disponibilidad y el rendimiento de la red.


¿Para qué sirve Nagios?

La finalidad de Nagios es proporcionar una visión completa y centralizada del estado de toda la infraestructura. Esto permite a los equipos de TI:

  • Detección proactiva de problemas: Identifica fallos potenciales o cuellos de botella antes de que afecten a los usuarios finales. Por ejemplo, puede alertar si un servidor está a punto de quedarse sin espacio en disco o si el uso de la CPU es anormalmente alto.

  • Reducción del tiempo de inactividad: Al recibir alertas tempranas, los administradores pueden actuar rápidamente para resolver los problemas, minimizando el tiempo que los sistemas están fuera de servicio.

  • Mejora del rendimiento: Permite analizar métricas de rendimiento a lo largo del tiempo, lo que ayuda a planificar mejoras en la infraestructura y a optimizar el uso de los recursos.

  • Automatización de tareas: Puede programarse para ejecutar acciones correctivas de forma automática cuando se detecta un problema, como reiniciar un servicio.


Características principales

Nagios se destaca por su flexibilidad y capacidad de adaptación. Algunas de sus características más importantes incluyen:

  • Monitoreo de diversos elementos: Puede monitorear servicios de red comunes (como HTTP, SMTP, FTP), recursos del hardware (carga del procesador, uso de la memoria, espacio en disco), sistemas operativos (Linux, Windows) y aplicaciones específicas.

  • Sistema de alertas: Envía notificaciones a los contactos definidos (por correo electrónico, SMS, etc.) cuando un host o servicio cambia a un estado de alerta o advertencia, y también cuando el problema se resuelve.

  • Interfaz web centralizada: Proporciona un panel de control intuitivo desde donde se puede visualizar el estado de toda la red, ver los registros de eventos, generar informes y personalizar las vistas.

  • Arquitectura de plugins: Su funcionalidad se puede extender fácilmente a través de una gran cantidad de plugins desarrollados por la comunidad, lo que permite monitorear casi cualquier cosa. Los plugins son scripts o programas que Nagios ejecuta para realizar las comprobaciones.

  • Escalabilidad: Puede adaptarse a entornos de red pequeños o muy grandes y complejos, con la posibilidad de implementar una arquitectura distribuida.

    Configurar Nagios, especialmente Nagios Core, es un proceso que requiere una serie de pasos manuales que varían ligeramente dependiendo del sistema operativo (Linux, en la mayoría de los casos) que estés utilizando. El proceso implica la instalación del software principal, los plugins y la edición de archivos de configuración.

    A continuación, se presenta una guía general del proceso de configuración, que puede variar según la distribución de Linux (Ubuntu, Debian, CentOS, etc.).

    1. Instalación de Nagios Core y sus plugins

    La configuración comienza con la instalación del software. A menudo, esto se hace compilando desde el código fuente para obtener la última versión y un mayor control.

    • Instalación de requisitos: Antes de todo, debes instalar las dependencias necesarias, como un servidor web (Apache), PHP, compiladores (gcc) y otras librerías.

    • Creación de usuarios y grupos: Se recomienda crear un usuario y un grupo específicos para Nagios para mejorar la seguridad. Por ejemplo: nagios y nagcmd.

    • Descarga y compilación: Descarga la última versión de Nagios Core y los Nagios Plugins desde la página oficial. Luego, descomprime los archivos y compila el software.

    2. Configuración de la interfaz web

    Nagios utiliza una interfaz web para mostrar el estado de la red. La configuración del servidor web (Apache) es crucial para acceder a ella.

    • Configuración de Apache: Se instalan los archivos de configuración web de Nagios y se habilitan los módulos necesarios en Apache (como rewrite y cgi).

    • Creación de un usuario de administración: Se crea un usuario y contraseña (por ejemplo, nagiosadmin) para acceder a la interfaz web de Nagios.

    3. Configuración de los archivos de Nagios

    Esta es la parte más crítica de la configuración, donde defines qué y cómo monitorear. Nagios se configura a través de archivos de texto plano que se encuentran en el directorio de configuración (generalmente /usr/local/nagios/etc/).

    • Estructura de archivos: Los archivos de configuración están divididos en categorías para una mejor organización:

      • nagios.cfg: El archivo de configuración principal de Nagios. Aquí se define la ubicación de otros archivos de configuración.

      • objects/: Un directorio que contiene las definiciones de los objetos a monitorear. Esto incluye:

        • commands.cfg: Define los comandos que Nagios puede ejecutar para realizar las comprobaciones. Por ejemplo, un comando para hacer un ping o verificar el uso de la CPU.

        • templates.cfg: Define plantillas que puedes usar paraHosts y Servicios, lo que facilita la configuración de múltiples elementos con características similares.

        • contacts.cfg: Define los contactos que recibirán las notificaciones y los métodos de notificación.

        • timeperiods.cfg: Define los períodos de tiempo en los que se deben realizar las comprobaciones o enviar las notificaciones.

        • Archivos de hosts y servicios: Aquí es donde se define cada equipo (host) y cada servicio (service) que deseas monitorear. Por ejemplo, un archivo para un servidor Linux y otro para un servidor Windows.

    • Definición de hosts:

      Cada host (servidor, router, etc.) que quieras monitorear debe ser definido. Una definición de host incluye su nombre, dirección IP, alias y la plantilla de host que va a utilizar.

      define host{
          use                     linux-server
          host_name               servidor-web-01
          alias                   Servidor Web Principal
          address                 192.168.1.100
          ...
      }
      
    • Definición de servicios:

      Los servicios son los elementos específicos a monitorear en un host. Debes asociar cada servicio a un host y definir el comando de verificación, los umbrales de advertencia y crítico, y el intervalo de comprobación.

      define service{
          use                     generic-service
          host_name               servidor-web-01
          service_description     Estado del disco /
          check_command           check_nrpe!check_disk_root
          ...
      }
      

    4. Configuración del monitoreo remoto

    Para monitorear hosts remotos, Nagios necesita un agente o un método para ejecutar comandos en ellos. Uno de los métodos más comunes es usar NRPE (Nagios Remote Plugin Executor).

    • Instalación del agente NRPE: Debes instalar el agente NRPE en cada máquina remota que quieras monitorear.

    • Configuración del agente: El agente NRPE debe configurarse para permitir conexiones desde el servidor Nagios. También debes definir qué comandos locales pueden ser ejecutados por el servidor Nagios.

    5. Verificación y reinicio

    Una vez que has editado los archivos, es fundamental verificar la sintaxis para asegurar que no haya errores. Nagios incluye un comando para ello:

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

    Si la verificación es exitosa, puedes reiniciar el servicio de Nagios para que los cambios surtan efecto.

    Bash
    sudo systemctl restart nagios
    

    La configuración de Nagios es un proceso que puede parecer complejo al principio, pero sigue una lógica clara basada en la definición de objetos (hosts, servicios, comandos, contactos) en archivos de texto. Una vez que entiendes esta estructura, añadir nuevos dispositivos y servicios es un proceso mucho más sencillo.

     

    Los plugins son el corazón de la flexibilidad y la potencia de Nagios. A diferencia de otras herramientas de monitoreo que tienen funcionalidades predefinidas, Nagios se basa en una arquitectura modular que utiliza programas o scripts externos (los plugins) para realizar las comprobaciones de estado.

    ¿Qué son los plugins de Nagios?

    Un plugin de Nagios es un ejecutable o script independiente (escrito en Perl, Python, Bash, C++, etc.) que se ejecuta desde la línea de comandos. Su función es verificar el estado de un host o servicio específico y devolver un resultado a Nagios en un formato predefinido. Nagios no realiza las comprobaciones por sí mismo; simplemente ejecuta el plugin, lee la salida y el código de retorno, y actualiza el estado del objeto monitoreado en su base de datos.

    Este diseño tiene varias ventajas clave:

    • Flexibilidad: Permite a los usuarios monitorear prácticamente cualquier cosa. Si puedes escribir un script que verifique un estado y devuelva un resultado, puedes crear un plugin para Nagios.

    • Abstracción: Los plugins actúan como una capa de abstracción. Nagios solo necesita saber cómo ejecutar un comando y procesar su salida, sin entender la lógica interna de la comprobación.

    • Comunidad: La comunidad de Nagios ha creado miles de plugins para monitorear una enorme variedad de sistemas, aplicaciones, bases de datos y dispositivos.

    ¿Cómo funcionan?

    El funcionamiento es muy simple pero efectivo:

    1. Ejecución: Nagios ejecuta un plugin en el momento programado para una comprobación (por ejemplo, cada 5 minutos).

    2. Verificación: El plugin realiza su tarea (por ejemplo, comprueba el espacio en disco, hace un ping a una IP o verifica si un servicio web está activo).

    3. Salida y Código de Retorno: El plugin devuelve una línea de texto a la salida estándar y, lo más importante, un código de salida numérico que Nagios utiliza para determinar el estado:

      • 0 - OK: Todo está funcionando correctamente.

      • 1 - WARNING: Se ha detectado un problema que requiere atención, pero no es crítico.

      • 2 - CRITICAL: Hay un problema grave que necesita ser resuelto de inmediato.

      • 3 - UNKNOWN: No se pudo determinar el estado (por ejemplo, un error de conexión).

    Los plugins oficiales y la comunidad

    Nagios no se distribuye con plugins incorporados, pero la compañía Nagios y la comunidad de código abierto mantienen un conjunto de plugins oficiales llamados Nagios Plugins. Estos son los más comunes y se instalan junto con Nagios.

    Algunos de los plugins oficiales más utilizados son:

    • check_ping: Comprueba la conectividad de un host.

    • check_http: Verifica la disponibilidad de un servidor web.

    • check_disk: Monitorea el uso de espacio en disco en un sistema local.

    • check_load: Mide la carga del procesador de un servidor.

    • check_ssh: Se conecta a un host a través de SSH para verificar su estado.

    • check_nrpe: Este es uno de los plugins más importantes. Se utiliza para ejecutar plugins de forma remota en máquinas que no son el servidor de Nagios. Funciona junto con el agente NRPE (Nagios Remote Plugin Executor).

    Nagios Exchange

    Para encontrar miles de plugins desarrollados por la comunidad, el lugar principal es Nagios Exchange. Es un repositorio central donde los usuarios pueden buscar, descargar y compartir plugins, complementos y documentación. Si necesitas monitorear algo muy específico, es muy probable que ya exista un plugin en Nagios Exchange.

     

     

Entradas populares de este blog

Ciberseguridad y hacking con Whatweb

Como robar contraseñas haciendo un phishing web

Arsenal software hacking NFC