Monitoreo de la red con Nagios – PARTE IV

PARTE IV

|_8. Monitorización en Nagios

|_ _8.1.       Configuración de los chequeos de Nagios al localhost

|_ _8.2.       Configuración de los chequeos de Nagios a hosts Linux

|_ _8.3.       Configuración de los chequeos de Nagios a los Hypervisors

|_ _8.4.       Configuración de los chequeos de Nagios a dispositivos de red

|_ _8.5.       Configuración de los chequeos de Nagios a hosts Windows

|_ _8.6.       Mostrando los resultados de los chequeos

8. Monitorización en Nagios

En este apartado se definirán las plantillas de configuración necesarias para monitorizar nuestra red. Ellas son las siguientes:

• localhost.cfg: Plantilla de configuración para monitorizar los servicios del propio servidor Nagios.
• hypervisor.cfg: Plantilla de configuración para monitorizar los servicios de las plataformas de virtualización.
• linux.cfg: Plantilla de configuración para monitorizar los servicios de los hosts Linux.
• windows.cfg: Plantilla de configuración para monitorizar los servicios de los hosts Windows.
• netdev.cfg: Plantilla de configuración para monitorizar los servicios de los dispositivos de red.

También crearemos cuatro una serie de grupos de monitorización:
• nagios-servers: Agrupa a todos los servidores nagios de nuestra red.
• hypervisors: Agrupa a nuestra infraestructura de virtualización.
• network-devices: Agrupa a los dispositivos de red.
• linux-servers: Agrupa a los servidores Linux (no necesariamente localhost ni los host hypervisors ni dispositivos de red, que también pueden ser host Linux).
• windows-servers: Agrupa a los servidores Windows.
• admins-stations: Agrupa a las estaciones de trabajo de los administradores, que se encuentran en Windows.

#===========================================================
NOTA:
Si vamos al fichero «/etc/nagios/objects/templates.cfg» veremos cinco plantillas predefinidas para los hosts:
• generic-host: Plantilla genérica que usan el resto de plantillas.
• linux-server: Plantilla para servidores Linux. Es la que se usa por defecto para Nagios (localhost).
• windows-server: Plantilla para servidores Windows.
• generic-printer: Plantilla para monitorizar impresoras.
• generic-switch: Plantilla para monitorizar switches.

Todas las plantillas son bastante similares, con algunas pequeñas modificaciones. De todos modos, intentaremos explicar brevemente algunas de las directivas más interesantes. Pero antes
dejaremos claro que muchas de estas directivas simplemente tienen como valor un “1” o un “0”. Si está en “1” es que esta activada, si está en “0” desactivada. Las directivas que no se usan estarán desactivadas, pero algunas otras tienen valores por defecto, para conocer mejor esto lo mejor es mirar la documentación de Nagios. Así mismo, como ya comentamos, una plantilla puede tener un valor para una directiva, pero cuando otra plantilla o host usa esa plantilla puede sobrescribir la directiva con un valor distinto.
Una vez aclarado esto veamos algunas de las distintas directivas:

• name: Nombre utilizado para la directiva.
• notifications_enabled: Si esta activada enviará notificaciones al o los contactos definidos.
• flap_detection_enabled: Habilita o no la detección de “flapping”. Ahora veremos brevemente qué es.
• notification_period: Especifica el nombre del “time period” en el que se permite el envío de notificaciones.
• Register: Se usa únicamente con las plantillas y su valor debe ser “0”.

Antes de seguir avanzando, sería oportuno realizar una explicación rápida de algunas cosas.
• Las notificaciones son mensajes de alertas enviados a un contacto cuando sucede algo. Por ejemplo, si un host se apaga o falla un servicio, es posible configurar que se envíe una notificación a
uno o más contactos vía email, sms, mensajería instantánea etc…
• El flapping es un estado especial que tienen los hosts y los servicios. Básicamente podemos decir que esto ocurre cuando su estado cambia muchas veces en poco tiempo. Por ejemplo, cuando lo
reiniciamos varias veces en poco tiempo. Una de las ventajas de esto es que cuando sucede no se envían notificaciones. Imagina lo molesto que es recibir muchas notificaciones en poco tiempo por
un equipo que estamos reiniciando.
• Los time periods se definen en el fichero “timeperiods.cfg” y pueden ser usados para definir cuando queremos que se monitorice un equipo, o cuando queremos que se envíen notificaciones.
#======================================================

En “nagios-debian9”:

Definiendo el host «linux.cfg»:

Debajo de la sección “OBJECT CONFIGURATION FILE(S)” añadimos la referencia a los que serán nuestros ficheros de configuración:

Aprovechamos para editar el directorio de los logs de nagios, por el siguiente:

Hacemos una salva del fichero «/etc/nagios/objects/localhost.cfg»:

8.1. Configuración de los chequeos de Nagios al localhost

En “nagios-debian9”:

Editamos el fichero de configuración del localhost (nagios-debian9):

Borramos todo y agregamos lo siguiente (adaptando a su red):

Reiniciamos el servicio de nagios:

8.2. Configuración de los chequeos de Nagios a hosts Linux

Editaremos el fichero “linux.cfg”, para adecuarlo a nuestros hosts Linux. Lo haremos con la posibilidad de que nrpe envíe comandos con argumentos, sin ser necesariamente el propio localhost (nagios), el host Linux a chequear. En este ejemplo, se tendrán en cuenta las siguientes consideraciones:

• El host FW1 (fw1-debian9) debe tener configurado múltiples servidores ovpnN. Si no se tiene esta estructura, entonces FW1 deberá enrutar el tráfico de la subred de gestión con el resto de la red. Ya no se tendría el principio de una gestión segura (por cifrado de la VPN) y aislada (por no ser enrutable). A continuación, se muestran las interfaces de FW1:

• Nagios tendrá la siguiente configuración de red (adapte a su entorno):

• Nagios monitorizará servicios de los hosts Linux sin comandos NRPE para: localhost (nagios).
• Nagios monitorizará servicios de los hosts Linux mediante comandos NRPE con argumentos y chequeos directos para: pve1-debian9, fw1-debian9, “hostmaster-pc” y el resto de host Linux y Windows que se vayan agregando con el tiempo.
• Nagios monitorizará el SNMP de los dispositivos de interconexión de red, mediante comandos NRPE con argumentos y chequeos indirectos para: fw2-vyos1.2.0-rc8, fw3-vyos1.2.0-rc8, a través de “fw1-debian9”. Esto se debe a que, los dispositivos de red generalmente son dispositivos físicos que no tienen implementado un cliente OpenVPN (necesario para la comunicación de agente-gestor de la red propuesta en este tutorial).
• También monitorizará su propia información SNMP, así como la de los hosts que esté monitorizando (no necesariamente dispositivos de red).
• La información SNMP aportará los siguientes datos:

o sysDescr: Descripción del sistema.
o sysLocation: Localización del servidor o dispositivo de red.
o sysContact: Contacto del administrador.
o ifDescr: Descripción de la interfaz de red.
o ifOperStatus: Estado operacional de la interfaz de red.
o ifSpeed: velocidad de la interfaz de red.

En “nagios-debian9”:

Comenzamos a configurar la monitorización a realizar por nagios:

Borramos todo y agregamos lo siguiente (adaptando a su red):

Reiniciamos el servicio de nagios:

8.3. Configuración de los chequeos de Nagios a los Hypervisors

En “nagios-debian9”:

Los hypervisors de nuestra red son Proxmox VE 5.4-3, sobre S.O. Debian 9, por lo que se pueden considerar como host Linux también. Lo separamos de los demás hosts porque pudieran ser ESXi u otra plataforma de virtualización.

Comenzamos a configurar la monitorización a realizar por nagios:

Borramos todo y agregamos lo siguiente (adaptando a su red):

Reiniciamos el servicio de nagios:

8.4. Configuración de los chequeos de Nagios a dispositivos de red

En “nagios-debian9”:

Los dispositivos de red que se tendrán en nuestra red son VNFs basadas en VyOS, herederos del antiguo sistema de networking de Vyatta. Usar este sistema no es obligado, ustedes pueden emplear cualquiera. Esto es sólo un ejemplo.

Podrán notar, que los tres hosts a ser monitoreados por nagios en esta plantilla, respondne a la misma dirección IP, del host “fw1-debian9”. Esto se debe a que nagios sabe cómo alcanzar la IP de “fw1-debian9”, pero no la de los dispositivos de red, porque nagios está en una subred no enrutable (características propias de la infraestructura del ejemplo), por lo que se debe hacer uso de chequeos indirectos con nrpe, a través de “fw1-debian9”.

Comenzamos a configurar la monitorización a realizar por nagios:

Borramos todo y agregamos lo siguiente (adaptando a su red):

Reiniciamos el servicio de nagios:

8.5.      Configuración de los chequeos de Nagios a hosts Windows

En todos los hosts Windows:

La configuración en los equipos Windows es muy sencilla. Lo primero es instalar el agente en los hosts Windows a monitorizar, en nuestro caso instalaremos “NSClient++” que es el que recomiendan en la documentación de Nagios. Sin embargo, hay más clientes que podrían servir, como “NC_Net”. La instalación no es difícil, solo hay que seguir el asistente y aceptar la licencia.

Establecemos en “Allowed hosts” la IP del servidor Nagios (en este caso en particular, la que tendrá por el ovpn1). Además, tenemos la opción de añadir una contraseña, aunque por defecto nos genera una aleatoria. Podemos utilizar esta, dejarlo en blanco o personalizarla a nuestro gusto. Es recomendable usar una contraseña ya que es una medida más de seguridad.

#=============================================

NOTA:

Copiamos la contraseña anterior “YPg7gMkLOOne49PB” (ponga la que le generó el cliente) y se la vamos a poner a cada host Windows en el que instalemos el “NSClient++”.

#=============================================

Hecho esto en todos los hosts Windows a monitorizar, procederemos con la configuración de los archivos de nagios. La idea es crear dos nuevos grupos (usted puede crear los que crea convenientes). Uno agrupará a las estaciones de trabajo de los administradores (generalmente en Windows) y el otro a los servidores con Windows. Se asumirá que las estaciones y servidores usan Windows 10.

En “nagios-debian9”:

Editamos el fichero de configuración de nagios:

Descomentamos la línea que especifica la plantilla de configuración para servidores Windows:

Editamos la plantilla de nagios que alberga la configuración genérica de sus objetos por defecto:

En la sección de “HOST TEMPLATES”, debajo de la definición de para host “windows-server”, agregamos lo siguiente:

Hacemos una copia del fichero original para servidores Windows:

Editamos el fichero donde se definen los comandos para nagios:

En la definición del comando para “check_nt”, comentamos el que viene por defecto y agregamos el siguiente:

Editamos la plantilla de nagios para servidores Windows:

Borramos todo y agregamos lo siguiente (adaptando a su red):

Reiniciamos el servidor nagios para aplicar los cambios:

8.6. Mostrando los resultados de los chequeos

Accedemos a la web de nagios y verificamos los cambios realizados. Podremos ver cómo nos saldrán los grupos que planificados:

#=============================================

NOTA:

En este caso aparecen algunos hosts en estado “DOWN”, porque no aún no están creados dichos servidores o no se tienen configurados los plugins de nagios. Se hizo para que se vieran todos los estados posibles en Nagios.

#=============================================

Con las configuraciones realizadas, ahora el host “nagios-debian9”, por ejemplo, no solo muestra los servicios que tenía por defecto, sino que ahora agrega también, la información proporcionada por SNMP:

De igual manera Check_MK mostrará estas informaciones en su web:

#===========================================================

NOTA:

  • Con los cambios hechos en las plantillas de nagios, es necesario recordar que ahora en la web de pnp4nagios podremos buscar las gráficas de cada uno de los hosts agregados a los chequeos. Como “localhost” ya no es uno de esos chequeos (es nagios-debian9), lo eliminamos de los registros de pnp4nagios:

Accedemos a la web de pnp4nagios con el siguiente enlace:

http://192.168.100.3/site01/pnp4nagios/

#===========================================================

 

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 4.5 / 5. Recuento de votos: 2

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Sobre Franco Diaz Hurtado 27 artículos
Ing. Telecomunicaciones y Electrónica; 1er Especialista en Redes de ECASA Nivel Central

1 comentario


  1. Warning: Undefined array key 1 in /var/www/html/sysadminsdecuba/wp-content/plugins/wp-useragent/wp-useragent-detect-os.php on line 668
    Firefox 88.0 Firefox 88.0 Ubuntu x64 Ubuntu x64
    Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0

    Franco, como esta todo colega?? Estoy tratando de montar un nagios, en Debian 10 siguiendo esta guía, sin complicar es escenario con redes aisladas, sin openvpn y esas cosas. Todo me ha ido bien, hasta que llego a la parte de activar en nagios la plantilla /etc/nagios/objects/linux.cfg después de esto al reiniciar nagios se funde:

    root@nagios:/etc# systemctl restart nagios.service
    Job for nagios.service failed because the control process exited with error code.
    See «systemctl status nagios.service» and «journalctl -xe» for details.
    root@nagios:/etc# systemctl status nagios.service
    ● nagios.service – Nagios Core 4.4.6
    Loaded: loaded (/lib/systemd/system/nagios.service; enabled; vendor preset: enabled)
    Active: failed (Result: exit-code) since Fri 2021-06-04 22:00:03 CDT; 18s ago
    Docs: https://www.nagios.org/documentation
    Process: 27378 ExecStartPre=/usr/local/nagios/bin/nagios -v /etc/nagios/nagios.cfg (code=exited, status=1/FAILURE)
    Process: 27379 ExecStopPost=/bin/rm -f /usr/local/nagios/var/rw/nagios.cmd (code=exited, status=0/SUCCESS)

    jun 04 22:00:03 nagios nagios[27378]: ***> One or more problems was encountered while processing the config files…
    jun 04 22:00:03 nagios nagios[27378]: Check your configuration file(s) to ensure that they contain valid
    jun 04 22:00:03 nagios nagios[27378]: directives and data definitions. If you are upgrading from a previous
    jun 04 22:00:03 nagios nagios[27378]: version of Nagios, you should be aware that some variables/definitions
    jun 04 22:00:03 nagios nagios[27378]: may have been removed or modified in this version. Make sure to read
    jun 04 22:00:03 nagios nagios[27378]: the HTML documentation regarding the config files, as well as the
    jun 04 22:00:03 nagios nagios[27378]: ‘Whats New’ section to find out what has changed.
    jun 04 22:00:03 nagios systemd[1]: nagios.service: Control process exited, code=exited, status=1/FAILURE
    jun 04 22:00:03 nagios systemd[1]: nagios.service: Failed with result ‘exit-code’.
    jun 04 22:00:03 nagios systemd[1]: Failed to start Nagios Core 4.4.6.

    Como te contacto vía telegram, para que me des una mano, si es posible???

    Saludos…

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*