Primeros pasos con el módulo Director de Icinga 2

Hace unos meses os hablé del módulo Director para Icinga 2 e Icinga Web 2. Una pieza imprescindible para hacernos la vida más fácil en este plataforma de monitorización.

Recientemente, revisando los comentarios de la entrada, muchos usuarios me habéis pedido que hable más de este modulo. Concretamente en uso para añadir nuevos hosts y servicios. Y esa es precisamente la intención de este artículo.

Para ello he instalado Icinga 2 e Icinga Web 2 en una Raspberry 2, con la distribución Raspbian, que tenía por casa. De esta manera siempre la tengo encendida y evito las máquinas virtuales, que a la fuerza tenía que apagar, cuando ya no usaba mi laptop.

Añadiendo plantillas a Icinga Web 2 con el módulo director

Ya os comenté que con este módulo podemos realizar la mayoría de las operaciones, sin tocar la consola de comandos. Primero de todo debemos crear una serie de plantillas, la primera de todas sera la plantilla para los hosts.

Debemos irnos a «Icinga Director«, «Hosts» y «Host Template«. Para añadir una nueva solo debemos hacer click sobre «Add»

Sección para añadir nueva plantilla de host

Incidamos el nombre de la plantilla y un comando, que en mi caso siempre escojo «ping4»  De esta manera todos los nuevos hosts estarán monitorizados, al menos, con el comando ping para IPv4

Primeros pasos para crear la plantilla de host

En la siguiente sección definimos la ejecución de los «checks», aquí os dejo un pequeña explicación de cada parámetro:

  • Check interval: El intervalo de cada  verificación («checks»)
  • Retry interval: El intervalo de reintento, se aplicará después de un cambio de estado.
  • Max check attempts: Define después de cuántos intentos de verificación se alcanza un nuevo estado.
  • Check timeout: Comprueba el tiempo de espera del comando en segundos. Anula el atributo de tiempo de espera de CheckCommand
  • Executive active checks: Para comprobar activamente un objeto
  • Accept passive checks: Si se aceptan resultados de verificación pasiva para este objeto.
  • Send notifications: Para enviar notificaciones del objeto.
  • Enable event handler: Si habilitar controladores de eventos para este objeto.
  • Process performance data: Para procesar los datos de rendimiento proporcionados por este objeto.
  • Enable flap detection: Si la detección de «flap» está habilitada en este objeto
  • Flapping threshold (high): Flapping en el límite superior en porcentaje para que un servicio se considere como flapping
  • Flapping threshold (low): Flapping en el límite inferior en porcentaje para que un servicio se considere no flapping
  • Volatile: Si este chequeo es volátil.

Hay que contar que los valores de tiempo son en segundos, esto es, 5 minutos, por ejemplo, sería un valor de 300.

Sección de «Check execution»

Los parámetros que se ven en la imagen son orientativos. Debemos indicarlos según nuestras necesidades.

En la sección de «Additional properties«, podemos indicar entre otras cosas un icono para identificar el host. Podemos añadir a Tux para las máquinas GNU/Linux, una ventana para las Windows, etcétera.

La imágenes las encontramos en la ruta «/usr/share/icingaweb2/public/img/icons/«, en mi caso voy a escoger la de «tux.png»

Información adicional

Y por último la configuración de la zona y del agente, en la sección «Icinga Agent and zone settings» Aquí indicamos el nombre de la clúster de zona, si el host tendrá instalado el agente de Icinga y el «endpoint»

Aquí tenéis mi configuración:

Configuración de zona y agente en la plantilla de host

Con esto ya lo tenemos listo. Marcamos sobre «Store» y a continuación, justo en la parte superior, marcamos sobre «Deploy«, para que se apliquen los cambios.

Aplicar los cambios en la plantilla

Creación del primer host

En casa tengo otra RaspberryPi, más antigua, que usaremos como cliente. Para añadir el nuevo host nos iremos a «Icinga Director«, «Hosts» y «+Add»

En el desplegable «Host template«, escogemos el que hemos creado antes.

Añadir nuevo host

Si nos fijamos, el resto de parámetros son heredados de la plantilla:

Parámetros heredados de la plantilla

Al finalizar, marcamos sobre «Add» y después desplegamos con «Deploy»

Instalar agente en el host cliente

Hemos indicado en la plantilla que todos los hosts utilizarán el agente de Icinga, por lo que, para proseguir lo debemos instalar en el cliente. En el caso de Raspbian, la distribución de mi vieja RaspBerry Pi, debemos añadir los paquetes «Icinga2» y «nagios-plugins», de la siguiente manera:

  1. sudo apt update
  2. sudo apt install icinga2 nagios-plugins

Una vez instalados, nos vamos al host dentro del módulo Director.

Dentro del apartado del nuevo host, nos vamos a la pantalla «Agent«, tal y como se muestra en la imagen:

Apartado «Agente» en el host

Desde esta sección nos podemos descargar los ficheros ejecutables o bien copiar el código fuente, de los scripts de instalación de los agentes.

Instalador del agente de Icinga adaptado para cada host

Cada script está adaptado para el host en cuestión, así que no lo ejecutéis para otro host. En nuestro caso vamos a descargar el fichero para GNU/Linux y posteriormente lo copiaremos al cliente, para así ejecutarlo.

  1. scp icinga2-agent-kickstart.bash pi@192.168.0.75:/tmp

Accedemos al cliente y lo ejecutamos:

  1. sudo chmod +x icinga2-agent-kickstart.bash
  2. sudo ./icinga2-agent-kickstart.bash

De esta manera ya lo podemos ejecutar.

Con con resultado:

Parte final instalación cliente de Icinga2

Nos hemos dejado muchas cosas en el tintero, como por ejemplo la creación de servicios, que veremos más adelante.

Nos vamos leyendo.