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