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»
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
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.
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»
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:
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.
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.
Si nos fijamos, el resto de parámetros son 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:
sudo apt update
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:
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.
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.
scp icinga2-agent-kickstart.bash pi@192.168.0.75:/tmp
Accedemos al cliente y lo ejecutamos:
sudo chmod +x icinga2-agent-kickstart.bash
sudo ./icinga2-agent-kickstart.bash
De esta manera ya lo podemos ejecutar.
Con con resultado:
Nos hemos dejado muchas cosas en el tintero, como por ejemplo la creación de servicios, que veremos más adelante.
Nos vamos leyendo.