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):