Herramienta de monitorización Checkmk

Una buena práctica para conocer el estado de tus servidores, prevenir futuros incidentes o incluso reaccionar rápidamente a ellos cuando ocurren es el uso de herramientas de monitorización.

Hoy vamos a hablar sobre checkmk, es una herramienta completa y sencilla de instalar. Combina Nagios, un servicio de alertas y de código abierto con complementos propios para recopilar, monitoirzar y presentar datos en forma de gráficos, alertas y estados.

Tiene una interfaz web a través de la cual se puede adminitrar. Y funciona a través de servidor-agente. Haremos está guía instalando este paquete en un servidor Debian 11.

Instalación

Checkmk ofrece paquetes para cada sistema operativo, el cual podemos descargar desde la página oficial:

https://checkmk.com/download

Una vez descargado el paquete, ejecutaremos el comando:

sudo apt install -y ./check-mk-raw-1.X.XXX_X.bionic_amd64.deb

Esto instalará Checkmk junto con todas las dependencias que este necesita, incluyendo Apache para el servicio web.

Para comprobar que lo tenemos correctamente instalado, podemos ejecutar lo siguiente:

sudo omd
omd

Este comando nos debería de dar el resultado de una ayuda de ejecución para este comando, ya que con omd, será el comando que usemos para crear sitios de monitorizaciones

Por último, puede ser necesario configurar el firewall para permitir las conexiones, en mi caso ya tenía reglas configuradas ya que tenía un servicio web corriendo.

Crear instancias de monitorización

Checkmk utiliza instancias para poder levantar varias monitorizaciones en un mismo servidor. Para levantar una instancia debemos ejecutar el comando:

sudo omd create monitoring

Esto creará todo lo necesario y acabrá mostrando una salida como esta:

OutputAdding /opt/omd/sites/monitoring/tmp to /etc/fstab.
Creating temporary filesystem /omd/sites/monitoring/tmp...OK
Restarting Apache...OK
Created new site monitoring with version 1.6.0p8.cre.

  The site can be started with omd start monitoring.
  The default web UI is available at http://your_ubuntu_server/monitoring/

  The admin user for the web applications is cmkadmin with password: your-default-password
  (It can be changed with 'htpasswd -m ~/etc/htpasswd cmkadmin' as site user.)
  Please do a su - monitoring for administration of this site.

Nos tendremos que guardar el usuario y la contraseña, tras esto iniciaremos la monitorización:

sudo omd start monitoring

Si accedemos a la interfaz web con las credenciales que nos indico deberíamos de ver algo como lo siguiente:

Es posible que de primeras no muestre datos ya que no tenemos ningún host añadido

Monitorización de host

Ahora lo que tendremos que hacer es añadir hosts a nuestra monitorización, para ello debemos instalar el agente de checkmk en esos servidores. Estos agentes son los encargados de recibir los datos sobre el servidor instalado y presentar los datos a la instancia correspondiente donde lo hayamos registrado.

Instalar el agente

Desde la interfaz web, en la parte izquierda tenemos una opción -> Setup -> Agentes, desde donde podemos descargar el agente para diferentes SO

Una vez descargado el paso de instalación es el mismo que el registrado anteriormente en esta guía.

Añadir host a monitorización

Una vez está el agente instalado nos iremos a la intefaz web -> Setup -> Add Host -> Cubriremos la Ip o hostname del equipo y procedemos a descubrir dicho host.

Nos debería detectar el host y una serie de servicios base en el mismo. Aplicaríamos los cambios y, una vez aplicados podríamos ver algo como lo siguiente:

Dentro de cada servicio nos muestra datos de la siguiente forma:

Una de las grandes ventajas, a mi punto de vista, es que puedes crear scripts en bash o python para monitorizar lo que consideres, desde un servicio, hasta una simple tarea cron.

A parte de estos scripts, checkmk ofrece un montón de scripts propios para monitorizar servicios, como por ejemplo, el de EximQueue o por ejemplo el tamaño de las BD:

Pudiendo configurar valores para alertar cuando excede un determinado tamaño. Permite la configuración de alertas por correo para ello.