Dar de alta un nuevo host en Checkmk

Lo prometido es deuda y aquí estamos de nuevo a la carga, en este caso vamos a ver como dar de alta un nuevo en Checkmk. Como veremos con esta herramienta es bastante fácil añadir nuevos elementos para monitorizar. Recordar que en la anterior entrada vimos cómo instalar un servidor central para Checkmk

Antes de continuar os recuerdo que tengo mi laboratorio de pruebas en mi empresa de confianza Clouding.io Hace tiempo que trabajo con ellos y siempre me han dado un servicio excelente; además, están ubicados en mi ciudad, Barcelona, que siempre es un más a más.

Logo oficial de checkmk

Dar de alta un nuevo host en Checkmk

1. Aclarando algunos conceptos: hosts, servicios y agentes

Esto es un resumen de lo que viene en la documentación oficial. Al final de la entrada os dejaré un enlace a ella por si la queréis consultar. Para Checkmk, un host cualquier sistema autónomo, físico o virtual monitoreado. Lo habitual es que estos elementos tengan una IP asociada, como servidores físicos, virtuales, o dispositivos de red. Aunque también pueden tratarse de contenedores Docker u otros elementos lógicos sin dirección IP. Cada uno de estos elementos, una vez añadidos a la herramienta, pueden tener un estado UP, DOWN, UNREACH o PEND.

Cada uno de estos hosts suele tener asociado una serie de servicios, como puede ser un sensor de hardware, un sistema de archivos, un servidor web o un puerto de switch; aunque también pueden ser una métrica, como la utilización de la CPU. En este caso cada servicio puede tener un estado OK, WARN, CRIT, UNKNOWN o PEND

Para que la herramienta Checkmk pueda solicitar datos a un host dado, es necesario un agente. Se trata de un pequeño programa que se instala en el host y que proporciona datos. Lo servidores con sistemas operativos GNU/Linux, UNIX o Windows solo pueden ser monitoreados de forma efectiva si se instala dicho agente. En el caso de los elementos de red y otros dispositivos, en muchos casos el proveedor habrá incorporado previamente un agente para Checkmk, utilizando el protocolo SNMP. En lo que respecta a los servicios en la llamada nube, como AWS o Azure, estos incorporan una API que se puede consultar vía HTTP.

2. Pensar una estructura de carpetas

Checkmk permite organizar todos los elementos monitorizados en carpetas. Esto facilita mucho la vida, sobre todo cuando se controlan centenares o miles de elementos. En mi caso no haría falta porque apenas tengo algunos equipos en mis laboratorios de pruebas. Pero en el caso de las empresas, es importantes, antes de empezar a desplegar agentes, que tengamos claro como queremos que sea este árbol de carpetas.

Además, al organizarlo de esta manera, todos los atributos de configuración de los hosts se pueden definir en una carpeta, que luego son heredados automáticamente por sus subcarpetas y hosts.

Ejemplo de árbol de carpetas (extraído de la web oficial de Checkmk)

Esto sí, mover un host de una carpeta a otra puede tener consecuencias, ya que se modificaría su configuración.

Los criterios de clasificación para estas carpetas serían por ubicación, organización o tecnología. Por ejemplo, podemos tener carpetas separadas por ciudades, Barcelona, Madrid, etcétera; por tecnología, por ejemplo, GNU/Linux, Windows, o Apache, Oracle, MSSQL, etcétera. Aquí, en el caso de los servidores GNU/Linux, podemos indicar en la carpeta que todos los hosts tengan un monitor para controlar el servicio SSH o bien la antigüedad de la versión del núcleo o kernel.

3. Crear una nueva carpeta

Bien, empecemos a jugar. Nos vamos a nuestro Checkmk y nos dirigimos a la sección «Setup» y después «Hosts«

Tal y como se muestra en la imagen, ya tengo creada una carpeta con un host. Para crear una nueva carpeta vamos a marcar sobre «Add folder«

Menú de carpeta

A la nueva carpeta le añado el nombre «GNU/Linux» y una vez hecho esto, marco sobre el botón «Save«, para guardar la información.

Vista de la carpeta recién creada

Cuando colocamos el mouse en la pestaña o en la parte superior del ícono de una carpeta, la carpeta se despliega para revelar las acciones importantes para interactuar con ella.

Opciones para operar con las carpetas

4. Añadir el primer host

En la documentación oficial indican que la forma más fácil de ver como hacer este paso es añadir el propio servidor de Checkmk, pero yo voy a utilizar el host que tengo dedicado la para instancia de Mastodon.

Antes de añadir el propio host, vamos a la sección «Setup«, después «Agents» y para finalizar «Linux«

Lista de agentes disponibles

Aquí tenemos diferentes versiones de agente, como el host donde tengo la instancia es un Debian 11, utiliza el agente para paquetería DEB. Ahora instalamos:

dpkg -i http://checkmk.bitsandlinux.com/monitor/check_mk/agents/check-mk-agent_2.1.0p24-1_all.deb

Una vez instalado el agente todavía no lo vamos a registrar, primero de todo vamos a crear el host en Checkmk. Para ello nos iremos a «Setup» – «Hosts«. A continuación marcaremos sobre la carpeta «GNU/Linux«, y después, una vez dentro, sobre el botón «Add host«

Añadimos el nuevo host

Aquí podemos indicar únicamente el nombre del hostname junto con el dominio, si a nivel de DNS ambas máquinas se ven. En el caso contrario deberemos añadir la IP en el apartado «IPv4 address» El resto de apartadas dejaremos los que están por defecto. Finalmente marcaremos sobre el botón de la barra superior «Save and go to the folder«

Ya tenemos el host añadido pero sin conectar con el agente

OJO, cada vez que hagamos un cambio, debemos marcar sobre el símbolo de exclamación de arriba a la derecha y guardar los cambios.

Nos avisa que hay cambios por guardar

Para poder registrar el agente previamente debemos crear un usuario y una contraseña para el registro. Esto lo haremos desde «Setup» y «Users«

Una vez creado el usuario más su respectiva contraseña, nos vamos al host que queremos añadir, y conectamos el agente:

cmk-agent-ctl register --hostname mastodon.bitsandlinux.com --server checkmk.bitsandlinux.com \
--site monitor --user automation --password

Por motivos obvio la contraseña no os la he puesto.

Si todo ha ido bien en la conexión, volvemos a la interfaz de Checkmk y marcamos sobre el host que hemos añadido.

Una vez dentro en la parte superior, marcamos sobre el botón «Save and go to the service configuration«

Botón para desplegar los servicios

De esta manera el propio agente detectará los servicios que tenemos instalados y nos ofrecerá un serie de monitores, por si los queremos utilizar:

El agente de Checkmk nos ofrece una serie de monitores

En este caso, aunque tengo Postfix instalado no lo estoy utilizando por lo que ese monitor no me interesa, por lo que marcaré sobre el aspa para descartarlo.

Una vez seleccionados los que nos interesa, marcaremos sobre «Accept All», y depsués iremos a la parte superior derecha, para aplicar los cambios.

Si esperamos unos minutos a que el agente mande información a la consola central, ya tendremos lo monitores configurados y funcionando:

Ya tenemos los monitores seleccionados funcionando

Si observamos nos aparecen varios botones,  cerca del nombre del monitor. El primero con las barras, nos ofrece varias opciones, como hacer un «recheck» o ir directamente al manual web del monitor. En el otro botón, de color amarillo, podemos ver las gráficas ofrecidas por el monitor, si estas existen. Están gráficas están ofrecidas por el módulo de «Graphite»  Podemos ver  una vista previa pasando el ratón por encima del botón o una vista ampliada marcando sobre el botón.

Ejemplo de una gráfica, de otro host que tengo monitorizado que lleva unos días

Y esto es todo por hoy. Creo que la entrada ya ha quedado los suficientemente extensa.

Estad atentos a las próximas entradas. Nos vamos leyendo.

Fuentes consultadas

Docs.checkmk.com – Setting up monitoring