Nagios - Guía rápida

El ciclo de vida de DevOps es un ciclo continuo de varias etapas, el monitoreo continuo es la última etapa de este ciclo. El monitoreo continuo es una de las etapas de este ciclo de vida. En este capítulo, aprendamos en detalle qué es el monitoreo continuo y cómo Nagios es útil para este propósito.

¿Qué es el monitoreo continuo?

El monitoreo continuo comienza cuando se realiza la implementación en los servidores de producción. A partir de ahí, esta etapa se encarga de monitorear todo lo que sucede. Esta etapa es muy crucial para la productividad empresarial.

Hay varios beneficios de utilizar la supervisión continua:

  • Detecta todos los problemas del servidor y de la red.
  • Encuentra la causa raíz del fallo.
  • Ayuda a reducir el costo de mantenimiento.
  • Ayuda a solucionar los problemas de rendimiento.
  • Ayuda a actualizar la infraestructura antes de que se desactualice.
  • Puede solucionar problemas automáticamente cuando se detecta.
  • Se asegura de que los servidores, los servicios, las aplicaciones y la red estén siempre en funcionamiento.
  • Supervisa la infraestructura completa cada segundo.

Que es Nagios

Nagios es una herramienta de monitoreo continuo de código abierto que monitorea la red, las aplicaciones y los servidores. Puede encontrar y reparar problemas detectados en la infraestructura y detener problemas futuros antes de que afecten a los usuarios finales. Proporciona el estado completo de su infraestructura de TI y su rendimiento.

Por qué Nagios

Nagios ofrece las siguientes características que lo hacen utilizable por un gran grupo de comunidad de usuarios:

  • Puede monitorear servidores de bases de datos como SQL Server, Oracle, Mysql, Postgres
  • Proporciona información sobre el nivel de la aplicación (Apache, Postfix, LDAP, Citrix, etc.).
  • Proporciona un desarrollo activo.
  • Tiene un excelente soporte de una enorme comunidad activa.
  • Nagios se ejecuta en cualquier sistema operativo.
  • Puede hacer ping para ver si el host es accesible.

Beneficios de Nagios

Nagios ofrece los siguientes beneficios para los usuarios:

  • Ayuda a deshacerse de las pruebas periódicas.
  • Detecta fallas en una fracción de segundo cuando la muñequera aún está en la etapa "intermitente".
  • Reduce el costo de mantenimiento sin sacrificar el rendimiento.
  • Proporciona notificación oportuna a la gestión de control y avería.

Este capítulo habla en detalle sobre la arquitectura de Nagios.

Arquitectura de Nagios

Los siguientes puntos son dignos de mención sobre la arquitectura de Nagios:

  • Nagios tiene una arquitectura servidor-agente.

  • El servidor Nagios se instala en el host y los complementos se instalan en los hosts / servidores remotos que se van a monitorear.

  • Nagios envía una señal a través de un programador de procesos para ejecutar los complementos en los hosts / servidores locales / remotos.

  • Los complementos recopilan los datos (uso de CPU, uso de memoria, etc.) y los envían de vuelta al programador.

  • Luego, los horarios del proceso envían las notificaciones al administrador / sy actualiza la GUI de Nagios.

La siguiente figura muestra la arquitectura del agente del servidor Nagios en detalle:

Nagios contiene varios productos como se describe en detalle a continuación:

Nagios XI

Proporciona supervisión para componentes completos de la infraestructura de TI como aplicaciones, servicios, redes, sistemas operativos, etc. Ofrece una visión completa de su infraestructura y procesos comerciales. La GUI se puede personalizar fácilmente, lo que brinda la flexibilidad utilizada. La edición estándar de esta herramienta cuesta $ 1995 y la edición empresarial cuesta $ 3495.

Núcleo de Nagios

Es el núcleo de la supervisión de la infraestructura de TI. El producto Nagios XI también se basa fundamentalmente en el núcleo de Nagios. Siempre que hay algún problema de falla en la infraestructura, envía una alerta / notificación al administrador que puede tomar la acción rápidamente para resolver el problema. Esta herramienta es absolutamente gratuita.

Servidor de registro de Nagios

Hace que la búsqueda de datos de registro sea muy simple y fácil. Mantiene todos los datos de registro en una ubicación con configuración de alta disponibilidad. Puede enviar alertas fácilmente si se encuentra algún problema en los datos de registro. Puede escalar a miles de servidores que brindan más potencia, velocidad, almacenamiento y confiabilidad a su plataforma de análisis de registros. El precio de esta herramienta depende de la cantidad de instancias: 1 instancia $ 3995, 2 instancias $ 4995, 3 instancias $ 5995, 4 instancias $ 6995, 10 instancias $ 14995.

Nagios Fusion

Este producto proporciona una vista centralizada del sistema de monitoreo completo. Con Nagios Fusion, escanea la configuración de servidores de monitoreo separados para geografías separadas. Se puede integrar fácilmente con Nagios XI y el núcleo de Nagios para brindar una visibilidad completa de la infraestructura. Esta herramienta cuesta $ 2495.

Analizador de red Nagios

Brinda la información completa de la infraestructura de red al administrador con las amenazas potenciales en la red para que el administrador pueda tomar acciones rápidas. Comparte datos muy detallados sobre la red después de un análisis de red en profundidad. Esta herramienta cuesta $ 1995.

En este capítulo, se analizan en detalle los pasos para configurar Nagios en Ubuntu.

Antes de instalar Nagios, algunos paquetes como Apache, PHP, paquetes de construcción, etc., deben estar presentes en su sistema Ubuntu. Por lo tanto, instalémoslos primero.

Step 1 - Ejecute el siguiente comando para instalar los paquetes requeridos previamente -

sudo apt-get install wget build-essential apache2 php apache2-mod-php7.0 php-gd
libgd-dev sendmail unzip

Step 2 - A continuación, cree un usuario y un grupo para Nagios y agréguelos a Apache www-data user.

sudo useradd nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios
sudo usermod -a -G nagios,nagcmd www-data

Step 3 - Descargue el último paquete de Nagios.

wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-
4.4.3.tar.gz

Step 4 - Extrae el archivo tarball.

tar -xzf nagios-4.4.3.tar.gz
cd nagios-4.4.3/

Step 5 - Ejecute el siguiente comando para compilar Nagios desde la fuente.

./configure --with-nagios-group=nagios --with-command-group=nagcmd

Step 6 - Ejecute el siguiente comando para construir archivos Nagios.

make all

Step 7 - Ejecute el comando que se muestra a continuación para instalar todos los archivos de Nagios.

sudo make install

Step 8 - Ejecute los siguientes comandos para instalar los archivos de configuración de comandos externos e init.

sudo make install-commandmode
sudo make install-init
sudo make install-config
sudo /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sitesavailable/
nagios.conf

Step 9 - Ahora copie el directorio del controlador de eventos al directorio de Nagios.

sudo cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/
sudo chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers

Step 10 - Descarga y extrae los complementos de Nagios.

cd
wget https://nagios-plugins.org/download/nagiosplugins-
2.2.1.tar.gz
tar -xzf nagios-plugins*.tar.gz
cd nagios-plugins-2.2.1/

Step 11 - Instale los complementos de Nagios usando el siguiente comando.

./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl
make
sudo make install

Step 12 - Ahora edite el archivo de configuración de Nagios y descomente la línea número 51 → cfg_dir = / usr / local / nagios / etc / servers

sudo gedit /usr/local/nagios/etc/nagios.cfg

Step 13 - Ahora, cree un directorio de servidor.

sudo mkdir -p /usr/local/nagios/etc/servers

Step 14 - Editar archivo de configuración de contactos.

sudo gedit /usr/local/nagios/etc/objects/contacts.cfg

Step 15 - Ahora habilite los módulos de Apache y configure un usuario nagiosadmin.

sudo a2enmod rewrite
sudo a2enmod cgi
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
sudo ln -s /etc/apache2/sites-available/nagios.conf /etc/apache2/sites-enabled/

Step 16 - Ahora, reinicie Apache y Nagios.

service apache2 restart
service nagios start
cd /etc/init.d/
sudo cp /etc/init.d/skeleton /etc/init.d/Nagios

Step 17 - Edite el archivo Nagios.

sudo gedit /etc/init.d/Nagios
DESC = "Nagios"
NAME = nagios
DAEMON = /usr/local/nagios/bin/$NAME
DAEMON_ARGS = "-d /usr/local/nagios/etc/nagios.cfg"
PIDFILE = /usr/local/nagios/var/$NAME.lock

Step 18 - Haga que el archivo Nagios sea ejecutable e inicie Nagios.

sudo chmod +x /etc/init.d/nagios
service apache2 restart
service nagios start

Step 19 - Ahora ve a tu navegador y abre la URL → http://localhost/nagios. Ahora inicie sesión en Nagios con el nombre de usuario nagiosadmin y use la contraseña que había establecido anteriormente. La pantalla de inicio de sesión de Nagios es como se muestra en la captura de pantalla que se muestra a continuación:

Si ha seguido todos los pasos correctamente, aparecerá la interfaz web de Nagios. Puede encontrar el panel de Nagios como se muestra a continuación:

En el capítulo anterior, hemos visto la instalación de Nagios. En este capítulo, entendamos su configuración en detalle.

Los archivos de configuración de Nagios se encuentran en / usr / local / nagios / etc. Estos archivos se muestran en la captura de pantalla que se muestra a continuación:

Entendamos la importancia de cada archivo ahora:

nagios.cfg

Este es el archivo de configuración principal del núcleo de Nagios. Este archivo contiene la ubicación del archivo de registro de Nagios, el intervalo de actualización del estado de los hosts y servicios, el archivo de bloqueo y el archivo status.dat. Los usuarios y grupos de Nagios en los que se ejecutan las instancias se definen en este archivo. Tiene la ruta de todos los archivos de configuración de objetos individuales como comandos, contactos, plantillas, etc.

cgi.cfg

Por defecto, el archivo de configuración CGI de Nagios se llama cgi.cfg. Le dice a los CGI dónde encontrar el archivo de configuración principal. Los CGI leerán los archivos de configuración principal y del host para cualquier otro dato que puedan necesitar. Contiene toda la información de usuarios y grupos y sus derechos y permisos. También tiene la ruta para todos los archivos frontend de Nagios.

resource.cfg

Puede definir macros $ USERx $ en este archivo, que a su vez se pueden utilizar en las definiciones de comandos en los archivos de configuración de su host. Las macros $ USERx $ son útiles para almacenar información confidencial como nombres de usuario, contraseñas, etc.

También son útiles para especificar la ruta a los complementos y controladores de eventos; si decide mover los complementos o controladores de eventos a un directorio diferente en el futuro, puede actualizar una o dos macros $ USERx $, en lugar de modificar muchas definiciones de comando. Los archivos de recursos también se pueden usar para almacenar directivas de configuración para fuentes de datos externas como MySQL.

Los archivos de configuración dentro del directorio de objetos se utilizan para definir comandos, contactos, hosts, servicios, etc.

commandos.cfg

Este archivo de configuración le proporciona algunas definiciones de comandos de ejemplo que puede consultar en las definiciones de host, servicio y contacto. Estos comandos se utilizan para verificar y monitorear hosts y servicios. Puede ejecutar estos comandos localmente en una consola Linux donde también obtendrá el resultado del comando que ejecute.

Ejemplo

define command {
   command_name check_local_disk
   command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
}

define command {
   command_name check_local_load
   command_line $USER1$/check_load -w $ARG1$ -c $ARG2$
}

define command {
   command_name check_local_procs
   command_line $USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$
}

contactos.cfg

Este archivo contiene información de contactos y grupos de Nagios. De forma predeterminada, un contacto ya está presente como administrador de Nagios.

Ejemplo

define contact {
   contact_name nagiosadmin
   use generic-contact
   alias Nagios Admin
   email [email protected]
}

define contactgroup {
   contactgroup_name admins
   alias Nagios Administrators
   members nagiosadmin
}

templates.cfg

Este archivo de configuración le proporciona algunas plantillas de definición de objetos de ejemplo que son referidas por otras definiciones de host, servicio, contacto, etc. en otros archivos de configuración.

timeperiods.cfg

Este archivo de configuración le proporciona algunas definiciones de período de tiempo de ejemplo que puede consultar en las definiciones de host, servicio, contacto y dependencia.

Nagios es la herramienta de monitoreo con multitud de características que se detallan a continuación:

  • Nagios Core es de código abierto, por lo tanto, de uso gratuito.

  • Potente motor de monitoreo que puede escalar y administrar miles de hosts y servidores.

  • Panel de control web integral que brinda visibilidad de los componentes de red completos y los datos de monitoreo.

  • Tiene capacidades multiinquilino donde varios usuarios tienen acceso al panel de Nagios.

  • Tiene una arquitectura extensible que puede integrarse fácilmente con aplicaciones de terceros con múltiples API.

  • Nagios tiene una comunidad grande y muy activa con más de 1 millón de usuarios en todo el mundo.

  • Sistema de alerta rápida, envía alertas a los administradores inmediatamente después de que se identifica cualquier problema.

  • Múltiples complementos disponibles para admitir Nagios, los complementos codificados personalizados también se pueden usar con Nagios.

  • Tiene un buen sistema de registro y base de datos que almacena todo lo que sucede en la red con facilidad.

  • La función de planificación proactiva ayuda a saber cuándo es el momento de actualizar la infraestructura.

Nagios puede aplicarse a una amplia gama de aplicaciones. Se dan aquí:

  • Supervise los recursos del host, como el espacio en disco, los registros del sistema, etc.

  • Supervise los recursos de red: http, ftp, smtp, ssh, etc.

  • Supervise los archivos de registro de forma continua para identificar infraproblemas.

  • Supervise las aplicaciones windows / linux / unix / web y su estado.

  • Nagios Remote Plugin Executer (NRPE) puede monitorear servicios de forma remota.

  • Ejecute verificaciones de servicio en paralelo.

  • Los túneles SSH o SSL también se pueden utilizar para la supervisión remota.

  • Enviar alertas / notificaciones

  • vía email, sms, buscapersonas de cualquier problema de infraestructura

  • Recomendar cuándo actualizar la infraestructura de TI.

Nagios es la herramienta más popular que se utiliza para monitorear hosts y servicios que se ejecutan en su infraestructura de TI. Los hosts y las configuraciones de servicio son los componentes básicos de Nagios Core.

  • El host es como una computadora; puede ser un dispositivo físico o virtual.

  • Los servicios son aquellos que utiliza Nagios para comprobar algo sobre un host.

Puede crear un archivo de host dentro del directorio del servidor de Nagios y mencionar las definiciones de host y servicio. Por ejemplo

sudo gedit /usr/local/nagios/etc/servers/ubuntu_host.cfg

# Archivo de configuración de Ubuntu Host

define host {
   use linux-server
   host_name ubuntu_host
   alias Ubuntu Host
   address 192.168.1.10
   register 1
}
define service {
   host_name ubuntu_host
   service_description PING
   check_command check_ping!100.0,20%!500.0,60%
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

Las definiciones anteriores agregan un host llamado ubuntu_host y definen los servicios que se ejecutarán en este host. Cuando reinicie Nagios, este host comenzará a ser monitoreado por Nagios y se ejecutarán los servicios especificados.

Hay muchos más servicios en Nagios que pueden usarse para monitorear prácticamente cualquier cosa en el host en ejecución.

Una definición de comando define un comando. Los comandos incluyen verificaciones de servicio, notificaciones de servicio, controladores de eventos de servicio, verificaciones de host, notificaciones de host y controladores de eventos de host. Las definiciones de comandos para Nagios se definen en el archivo commands.cfg.

El siguiente es el formato para definir un comando:

define command {
   command_name command_name
   command_line command_line
}

Command name- Esta directiva se utiliza para identificar el comando. Se hace referencia a las definiciones de contacto, host y servicio mediante el nombre del comando.

Command line - Esta directiva se usa para definir lo que ejecuta Nagios cuando el comando se usa para verificaciones de servicio o host, notificaciones o controladores de eventos.

Ejemplo

define command{
   command_name check_ssh
   command_line /usr/lib/nagios/plugins/check_ssh ‘$HOSTADDRESS$’
}

Este comando ejecutará el complemento - / usr / libl / nagios / plugins / check_ssh con 1 parámetro: '$ HOSTADDRESS $'

Una definición de host muy corta que usaría este comando de verificación podría ser similar a la que se muestra aquí:

define host{
   host_name host_tutorial
   address 10.0.0.1
   check_command check_ssh
}

Las definiciones de los comandos indican cómo realizar comprobaciones de host / servicio. También definen cómo generar notificaciones si se identifica algún problema y cómo manejar cualquier evento. Hay varios comandos para realizar las comprobaciones, como comandos para verificar si SSH está funcionando correctamente o no, comando para verificar que la base de datos esté funcionando, comando para verificar si un host está vivo o no y muchos más.

Hay comandos que les dicen a los usuarios qué problemas están presentes en la infraestructura. Puede crear sus propios comandos personalizados o usar cualquier comando de terceros en Nagios, y se tratan de manera similar al proyecto de complementos de Nagios, no hay distinción entre ellos.

También puede pasar argumentos en el comando, esto le da más flexibilidad al realizar las verificaciones. Así es como necesitas definir un comando con parámetro -

define command {
   command_name check-host-alive-limits
   command_line $USER5$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5
}

La definición de host para el comando anterior:

define host {
   host_name system2
   address 10.0.15.1
   check_command check-host-alive-limits!1000.0,70%!5000.0,100%
}

Puede ejecutar comandos externos en Nagios agregándolos al archivo de comandos que el demonio de Nagios procesa periódicamente.

Con los comandos externos puede realizar muchas comprobaciones mientras Nagios se está ejecutando. Puede deshabilitar temporalmente algunas comprobaciones, o forzar algunas verificaciones para que se ejecuten inmediatamente, deshabilitar las notificaciones temporalmente, etc. La siguiente es la sintaxis de los comandos externos en Nagios que deben escribirse en el archivo de comandos:

[time] command_id;command_arguments

También puede consultar la lista de todos los comandos externos que se pueden usar en Nagios aquí:https://assets.nagios.com/downloads/nagioscore/docs/externalcmds/

Una vez que el host y los servicios están configurados en Nagios, se utilizan comprobaciones para ver si los hosts y los servicios funcionan como se supone que deben hacerlo o no. Veamos un ejemplo para realizar comprobaciones en el host:

Considere que ha puesto sus definiciones de host dentro del archivo host1.cfg en el directorio / usr / local / nagios / etc / objects.

cd /usr/local/nagios/etc/objects
gedit host1.cfg

Así es como se ven sus definiciones de host actualmente:

define host {
   host_name host1
   address 10.0.0.1
}

Ahora agreguemos la directiva check_interval. Esta directiva se utiliza para realizar comprobaciones programadas de los hosts para el número que estableció; por defecto es en minutos. Utilizando la definición siguiente, se realizarán comprobaciones en el host cada 3 minutos.

define host {
   host_name host1
   address 10.0.0.1
   check_interval 3
}

En Nagios, se realizan 2 tipos de comprobaciones en hosts y servicios:

  • Cheques activos
  • Cheques pasivos

Cheques activos

Las comprobaciones activas son iniciadas por el proceso de Nagios y luego se ejecutan de forma regular programada. La lógica de verificación dentro del proceso de Nagios inicia la verificación activa. Para monitorear hosts y servicios que se ejecutan en máquinas remotas, Nagios ejecuta complementos e indica qué información recopilar. Luego, el complemento se ejecuta en la máquina remota donde recopila la información requerida y la envía de regreso al demonio de Nagios. Según el estado recibido en los hosts y los servicios, se toman las medidas adecuadas.

La figura que se muestra a continuación muestra una verificación activa:

Estos se ejecutan en intervalos regulares, según lo definido por check_interval y retry_interval.

Los procesos externos realizan comprobaciones pasivas y los resultados se devuelven a Nagios para su procesamiento.

Los controles pasivos funcionan como se explica aquí:

Una aplicación externa verifica el estado de los hosts / servicios y escribe el resultado en el archivo de comando externo. Cuando el demonio de Nagios lee un archivo de comando externo, lee y envía todas las comprobaciones pasivas en la cola para procesarlas más tarde. Periódicamente, cuando se procesan estos cheques, se envían notificaciones o alertas según la información del resultado del cheque.

La figura que se muestra a continuación muestra una verificación pasiva:

Por lo tanto, la diferencia entre la verificación activa y pasiva es que las verificaciones activas son ejecutadas por Nagios y las verificaciones pasivas son ejecutadas por aplicaciones externas.

Estas comprobaciones son útiles cuando no puede supervisar hosts / servicios de forma regular.

Nagios almacena el estado de los hosts y servicios que está monitoreando para determinar si están funcionando correctamente o no. Habrá muchos casos en los que las fallas ocurrirán al azar y serán temporales; por lo tanto, Nagios usa estados para verificar el estado actual de un host o servicio.

Hay dos tipos de estados:

  • Estado suave
  • Estado duro

Estado suave

Cuando un host o servicio está inactivo durante un período de tiempo muy corto y su estado no se conoce o es diferente del anterior, se utilizan los estados suaves. El host o los servicios se probarán una y otra vez hasta que el estado sea permanente.

Estado duro

Cuando se ejecuta max_check_attempts y el estado del host o del servicio aún no es correcto, se usa el estado duro. Nagios ejecuta controladores de eventos para manejar estados duros.

La siguiente figura muestra estados blandos y estados duros.

Este capítulo da una idea de los puertos y protocolos que comprende Nagios.

Protocolos

Los protocolos predeterminados utilizados por Nagios son los que se indican en:

  • http (s), puertos 80 y 443: las interfaces del producto están basadas en web en Nagios. Los agentes de Nagios pueden usar http para mover datos.

  • snmp, puertos 161 y 162 - snmp es una parte importante del monitoreo de la red. El puerto 161 se usa para enviar solicitudes a los nodos y la publicación 162 se usa para recibir resultados.

  • ssh, puerto 22: Nagios está diseñado para ejecutarse de forma nativa en CentOS o RHEL Linux. El administrador puede iniciar sesión en Nagios a través de SSH siempre que lo desee y realizar comprobaciones.

Puertos

Los puertos predeterminados utilizados por los complementos comunes de Nagios son los que se indican a continuación:

  • Butcheck_nt (nsclient ++) 12489
  • NRPE 5666
  • NSCA 5667
  • NCPA 5693
  • MSSQL 1433
  • MySQL 3306
  • PostgreSQL 5432
  • MongoDB 27017, 27018
  • OracleDB 1521
  • Correo electrónico (SMTP) 25, 465, 587
  • WMI 135, 445 / puertos adicionales asignados dinámicamente en el rango 1024-1034

Los complementos ayudan a monitorear bases de datos, sistemas operativos, aplicaciones, equipos de red, protocolos con Nagios. Los complementos son ejecutables compilados o secuencias de comandos (Perl o no Perl) que amplían la funcionalidad de Nagios para monitorear servidores y hosts. Nagios ejecutará un complemento para verificar el estado de un servicio o host. Nagios se puede compilar con soporte para un intérprete de Perl incorporado para ejecutar complementos de Perl. Sin él, Nagios ejecuta complementos Perl y no Perl bifurcando y ejecutando los complementos como un comando externo.

Tipos de complementos de Nagios

Nagios tiene los siguientes complementos disponibles:

Official Nagios Plugins- Hay 50 complementos oficiales de Nagios. Los complementos oficiales de Nagios son desarrollados y mantenidos por el equipo oficial de complementos de Nagios.

Community Plugins - Hay más de 3.000 complementos de Nagios de terceros que han sido desarrollados por cientos de miembros de la comunidad de Nagios.

Custom Plugins- También puede escribir sus propios complementos personalizados. Hay ciertas pautas que se deben seguir para escribir complementos personalizados.

Directrices para escribir complementos personalizados de Nagios

Al escribir un complemento personalizado en Nagios, debe seguir las pautas que se detallan a continuación:

  • Los complementos deben proporcionar una opción de línea de comandos "-V" (verifique los cambios de configuración)
  • Imprime solo una línea de texto
  • Imprima el diagnóstico y solo una parte del mensaje de ayuda
  • Los complementos de red usan DEFAULT_SOCKET_TIMEOUT para agotar el tiempo de espera
  • "-v" o "--verbose" está relacionado con el nivel de verbosidad
  • "-t" o "--timeout" (tiempo de espera del complemento);
  • "-w" o "--warning" (umbral de advertencia);
  • "-c" o "--crítico" (umbral crítico);
  • "-H" o "--hostname" (nombre del host a comprobar)

Varios complementos de Nagios se ejecutan y realizan comprobaciones al mismo tiempo, para que todos funcionen juntos sin problemas, el complemento de Nagios sigue un código de estado. La tabla que se muestra a continuación indica el estado del código de salida y su descripción:

Código de salida Estado Descripción
0 Okay Funcionando bien
1 ADVERTENCIA Funciona bien, pero necesita atención
2 CRÍTICO No funciona correctamente
3 DESCONOCIDO Cuando el complemento no puede determinar el estado del host / servicio

Los complementos de Nagios usan opciones para su configuración. Los siguientes son algunos parámetros importantes aceptados por el complemento de Nagios:

No Señor Opción y descripción
1

-h, --help

Esto proporciona ayuda

2

-V, --version

Esto imprime la versión exacta del complemento.

3

-v, --verbose

Esto hace que el complemento brinde información más detallada sobre lo que está haciendo.

4

-t, --timeout

Esto proporciona el tiempo de espera (en segundos); después de este tiempo, el complemento informará el estado CRÍTICO

5

-w, --warning

Esto proporciona los límites específicos del complemento para el estado de ADVERTENCIA

6

-c, --critical

Esto proporciona los límites específicos del complemento para el estado CRÍTICO

7

-H, --hostname

Esto proporciona el nombre de host, la dirección IP o el socket Unix para comunicarse

8

-4, --use-ipv4

Esto le permite utilizar IPv4 para la conectividad de red.

9

-6, --use-ipv6

Esto le permite utilizar IPv6 para la conectividad de red.

10

-p, --port

Se utiliza para conectarse al puerto TCP o UDP

11

-s, -- send

Esto proporciona la cadena que se enviará al servidor.

12

-e, --expect

Esto proporciona la cadena que debe enviarse desde el servidor.

13

-q, --quit

Esto proporciona la cadena para enviar al servidor para cerrar la conexión.

El paquete de complementos de Nagios tiene muchas verificaciones disponibles para hosts y servicios para monitorear la infraestructura. Probemos los complementos de Nagios para realizar algunas comprobaciones.

SMTP es un protocolo que se utiliza para enviar correos electrónicos. Los complementos estándar de Nagios tienen comandos para realizar comprobaciones de SMTP. La definición de comando para SMTP -

define command {
   command_name check_smtp
   command_line $USER2$/check_smtp -H $HOSTADDRESS$
}

Usemos el complemento de Nagios para monitorear MySQL. Nagios ofrece 2 complementos para monitorear MySQL. El primer complemento verifica si la conexión mysql está funcionando o no, y el segundo complemento se usa para calcular el tiempo necesario para ejecutar una consulta SQL.

Las definiciones de comandos para ambos son las siguientes:

define command {
   command_name check_mysql
   command_line $USER1$/check_mysql –H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -d
   $ARG3$ -S –w 10 –c 30
}

define command {
   command_name check_mysql_query
   command_line $USER1$/check_mysql_query –H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -d
   $ARG3$ -q $ARG4$ –w $ARG5$ -c $ARG6$
}

Note - El nombre de usuario, la contraseña y el nombre de la base de datos se requieren como argumentos en ambos comandos.

Nagios ofrece un complemento para verificar el espacio en disco montado en todas las particiones. La definición del comando es la siguiente

define command {
   command_name check_partition
   command_line $USER1$/check_disk –p $ARG1$ –w $ARG2$ -c $ARG3$
}

La mayoría de las comprobaciones se pueden realizar a través de complementos estándar de Nagios. Pero hay aplicaciones que requieren verificaciones especiales para monitorearlas, en cuyo caso puede usar complementos de Nagios de terceros que proporcionarán verificaciones más sofisticadas en la aplicación. Es importante conocer los problemas de seguridad y licencias cuando utiliza un complemento de terceros desde el intercambio de Nagios o descarga el complemento desde otro sitio web.

El demonio de Nagios que ejecuta comprobaciones en máquinas remotas en NRPE (Ejecutor de complemento remoto de Nagios). Le permite ejecutar complementos de Nagios en otras máquinas de forma remota. Puede monitorear las métricas de la máquina remota, como el uso del disco, la carga de la CPU, etc. También puede verificar las métricas de las máquinas Windows remotas a través de algunos complementos del agente de Windows.

Veamos cómo instalar y configurar NRPE paso a paso en la máquina cliente que necesita ser monitoreada.

Step 1 - Ejecute el siguiente comando para instalar NRPE en la máquina linux remota que se va a monitorear.

sudo apt-get install nagios-nrpe-server nagios-plugins

Step 2 - Ahora, cree un archivo de host dentro del directorio del servidor y coloque todas las definiciones necesarias para el host.

sudo gedit /usr/local/nagios/etc/servers/ubuntu_host.cfg
# Ubuntu Host configuration file

define host {
   use linux-server
   host_name ubuntu_host
   alias Ubuntu Host
   address 192.168.1.10
   register 1
}

define service {
   host_name ubuntu_host
   service_description PING
   check_command check_ping!100.0,20%!500.0,60%
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

define service {
   host_name ubuntu_host
   service_description Check Users
   check_command check_local_users!20!50
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

define service {
   host_name ubuntu_host
   service_description Local Disk
   check_command check_local_disk!20%!10%!/
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

define service {
   host_name ubuntu_host
   service_description Check SSH
   check_command check_ssh
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

define service {
   host_name ubuntu_host
   service_description Total Process
   check_command check_local_procs!250!400!RSZDT
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

Step 3 - Ejecute el comando que se muestra a continuación para verificar el archivo de configuración.

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

Step 4 - Reinicie NRPE, Apache y Nagios si no hay errores.

service nagios-nrpe-server restart
service apache2 restart
service nagios restart

Step 5- Abra su navegador y vaya a la interfaz web de Nagios. Puede ver que el host que debe monitorearse se ha agregado al servicio central de Nagios. De manera similar, puede agregar más hosts para que sean monitoreados por Nagios.

V-Shell es una interfaz web liviana para Nagios Core escrita en PHP. Es fácil de instalar y usar y es una alternativa a la salida de Nagios. La interfaz de VShell está en AngularJs, por lo tanto, el diseño es receptivo y moderno. Proporciona funcionalidad de búsqueda rápida y API RESTful impulsada por CodeIgniter.

Nagios VShell es compatible con Nagios XI y Nagios Core 3.x. Requiere php 5.3 o superior, php-cli y apache instalados en el sistema. Veamos cómo instalar Nagios VShell.

Step 1 - Vaya al directorio tmp y descargue el archivo tar de vshell.

cd /tmp
wget http://assets.nagios.com/downloads/exchange/nagiosvshell/vshell.tar.gz

Step 2 - Extrae el archivo tar.

tar zxf vshell.tar.gz

Step 3- Vaya al directorio vshell y otorgue permiso ejecutable para instalar el archivo .php. Finalmente, ejecute el script de instalación.

cd vshell
chmod +x install.php
./install.php

Step 4 - Ahora ve ahttps://192.168.56.101/vshell en su navegador, inicie sesión con nagiosadmin y aparecerá su Vshell.

En este capítulo, veamos estudios de casos de dos organizaciones que han implementado Nagios con éxito.

Bitnetix con Nagios

Bitnetix en una organización de consultoría de TI que se dedica a redes, centros de datos, monitoreo y voz sobre IP. A través de sus ofertas, hacen que las pequeñas empresas parezcan grandes. Sus soluciones lo ayudan a administrar las relaciones con los clientes de una mejor manera al aumentar su compromiso y mejorar su satisfacción. Dicen que están en el negocio de la comunicación, por lo que comunicar el mensaje correcto a sus clientes en el momento adecuado es muy importante para ellos.

Bitnetix estaba trabajando con un cliente que estaba interesado en el marketing por correo electrónico. Solían monitorear los servidores de AWS que se asignaban dinámicamente y eran responsables de entregar miles de correos electrónicos a los clientes. Estaban usando el núcleo de Nagios antes, pero querían pasar al nuevo Nagios XI e integrarse con el chef sin tiempo de inactividad. Hubo desafíos al mover la configuración del estado en vivo en el núcleo de Nagios a las comprobaciones adecuadas en Nagios XI. Pero con Nagios, pudieron configurar el archivo de configuración de Nagios XI con chef integrado. Pudieron trasladar a todos los clientes del núcleo de Nagios a Nagios XI sin tiempo de inactividad. Nagios XI también pudo integrarse con PagerDuty para enviar notificaciones instantáneas.

EverWatch.gobal con Nagios

EverWatch.global es una organización de consultoría y gestión de TI que ayuda a organizaciones pequeñas y medianas y sin fines de lucro. Su sede se encuentra en Rochester, Nueva York. Han ganado numerosos premios por su trabajo con Nagios.

EverWatch.global estaba trabajando con un cliente minorista de comercio electrónico con ingresos anuales de mil millones de dólares. Ellos eran responsables de mantener el sitio web en funcionamiento en todo momento, monitorear el carrito y la funcionalidad de pago, enviar notificaciones al personal necesario en caso de difamación. El desafío era que los servidores de sus clientes estaban ubicados a 500 millas de su sede en Nueva York. Para supervisar la producción, la puesta en escena, la garantía de calidad y el desarrollo en la misma plataforma, se suponía que las configuraciones eran únicas y similares para ambas áreas.

Con la ayuda de Nagios, pudieron crear reglas de firewall ssh para equipos y Centro de operaciones de red. También pudieron realizar verificaciones de casos de difamación y reducir los falsos positivos. Al configurar controladores de eventos en Nagios, la cantidad de notificaciones disminuyó drásticamente. Nagios los ayudó manteniendo el tiempo de actividad del sitio web de sus clientes al 98% anual desde el 85% anual, esto fue un gran éxito.

"En términos de dólares reales, la empresa pudo lograr casi $ 125 millones en ventas adicionales como resultado". Eric Loyd, director ejecutivo de EverWatch Global.