Checkmk es un sistema de monitorización de infraestructura que descubre automáticamente los servicios de cada host (CPU, memoria, sistemas de archivos, interfaces, procesos, servicios de systemd) y aplica umbrales mediante reglas en lugar de archivos de configuración a mano. En este tutorial instalarás la edición libre, Checkmk Raw, en Ubuntu 24.04, crearás un sitio de monitorización, instalarás el agente en un servidor Linux, lo registrarás con cifrado TLS y activarás la monitorización de sus servicios.

Requisitos previos

Para seguir esta guía necesitas:

  • Un servidor con Ubuntu 24.04 LTS para Checkmk, por ejemplo un VPS de CubePath, con al menos 2 vCPU, 4 GB de RAM y 20 GB libres en disco.
  • Un usuario no root con privilegios sudo.
  • Uno o varios servidores Linux que monitorizar. En los ejemplos, web01 con IP host_ip. El servidor de Checkmk se identifica como checkmk_ip.
  • Los puertos 80/tcp (interfaz web) y 8000/tcp (registro de agentes) accesibles en el servidor de Checkmk, y el 6556/tcp en cada host monitorizado, accesible solo desde checkmk_ip.

Paso 1: Descargar el paquete de Checkmk

Checkmk no se distribuye desde un repositorio de apt, sino como un paquete .deb por versión y distribución. Entra en la página de descargas de checkmk.com, elige Checkmk Raw, la distribución Ubuntu 24.04 (Noble Numbat) y copia el enlace de descarga. El nombre del paquete sigue este formato:

check-mk-raw-<versión>_0.noble_amd64.deb

Descarga el paquete en el servidor, sustituyendo your_download_url por el enlace copiado:

cd /tmp
wget your_download_url

La página de descargas muestra también la suma SHA256 del paquete. Calcula la del archivo descargado y comprueba que coincide:

sha256sum check-mk-raw-*_0.noble_amd64.deb

Paso 2: Instalar Checkmk

Instala el paquete con apt, que resolverá las dependencias (Apache, bibliotecas de Python, herramientas de monitorización, etc.):

sudo apt update
sudo apt install ./check-mk-raw-*_0.noble_amd64.deb

Checkmk se instala en /omd/versions/ y se gestiona con el comando omd (Open Monitoring Distribution). Comprueba la versión instalada:

omd version
OMD - Open Monitoring Distribution Version 2.x.xpXX.cre

El sufijo .cre indica Checkmk Raw Edition.

Paso 3: Crear e iniciar un sitio

Un sitio es una instancia independiente de Checkmk con su propio usuario de sistema, configuración, núcleo de monitorización y URL. Puedes tener varios en el mismo servidor, pero para empezar basta con uno. Créalo con el nombre monitoring:

sudo omd create monitoring

Al terminar, el comando muestra la URL y la contraseña inicial del usuario administrador cmkadmin. Anótala:

Created new site monitoring with version 2.x.xpXX.cre.

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

  The admin user for the web applications is cmkadmin with password: aB3dE5fG7h
  For command line administration of the site, log in with 'omd su monitoring'.

Inicia el sitio:

sudo omd start monitoring

Comprueba que todos sus componentes están en marcha:

sudo omd status monitoring
agent-receiver: running
mkeventd:       running
rrdcached:      running
npcd:           running
nagios:         running
apache:         running
redis:          running
crontab:        running
-----------------------
Overall state:  running

La lista exacta puede variar según la versión, pero Overall state debe ser running.

Paso 4: Abrir el firewall y cambiar la contraseña

Permite el acceso a la interfaz web y al servicio de registro de agentes (agent-receiver, puerto 8000):

sudo ufw allow 80/tcp
sudo ufw allow 8000/tcp

Si todos tus hosts están en una red privada, limita la regla del puerto 8000 a esa red, por ejemplo sudo ufw allow from 10.0.0.0/8 to any port 8000 proto tcp.

Cambia la contraseña de cmkadmin por una propia. Las tareas administrativas de un sitio se ejecutan como su usuario de sistema, que tiene el mismo nombre:

sudo omd su monitoring
cmk-passwd cmkadmin
exit

Abre http://your_server_ip/monitoring/ en el navegador y entra con cmkadmin y la nueva contraseña. Verás el panel principal, con el menú lateral dividido en Monitor, Customize y Setup.

Paso 5: Instalar el agente en un host Linux

Checkmk obtiene los datos de cada servidor a través de su agente. El paquete del agente se incluye con la instalación y el sitio lo sirve por HTTP. En el host que quieras monitorizar (web01), descárgalo. Para saber el nombre exacto del archivo, abre en la interfaz Setup > Agents > Linux o lista el directorio en el servidor de Checkmk con ls /omd/versions/default/share/check_mk/agents/*.deb:

cd /tmp
wget http://checkmk_ip/monitoring/check_mk/agents/check-mk-agent_2.x.xpXX-1_all.deb

Instálalo:

sudo apt install ./check-mk-agent_*_all.deb

El paquete instala el agente, un socket de systemd que escucha en el puerto 6556 y el Agent Controller (cmk-agent-ctl), que cifra la comunicación con el servidor. Comprueba su estado:

sudo cmk-agent-ctl status

La salida muestra la versión del agente, Agent socket: operational y que todavía no hay ninguna conexión registrada.

Permite el puerto del agente solo desde el servidor de Checkmk:

sudo ufw allow from checkmk_ip to any port 6556 proto tcp

Paso 6: Añadir el host en Checkmk

Antes de registrar el agente, el host debe existir en la configuración de Checkmk. En la interfaz web:

  1. Ve a Setup > Hosts > Add host.
  2. En Host name, escribe web01.
  3. Marca Network address > IPv4 address e indica host_ip. Si el nombre resuelve por DNS, puedes dejarlo vacío.
  4. Pulsa Save & view folder. No ejecutes todavía el descubrimiento de servicios.

Paso 7: Registrar el agente con TLS

El registro intercambia certificados entre el agente y el sitio. A partir de ese momento, toda la comunicación va cifrada y el agente solo responde al servidor registrado. En web01, ejecuta:

sudo cmk-agent-ctl register \
  --hostname web01 \
  --server checkmk_ip \
  --site monitoring \
  --user cmkadmin

El comando te pedirá que confirmes el certificado del servidor (responde Y tras revisar los datos) y la contraseña de cmkadmin. Al terminar, comprueba que la conexión está registrada:

sudo cmk-agent-ctl status

Ahora la salida incluye una conexión hacia checkmk_ip:8000/monitoring de tipo pull-agent, con un certificado emitido por la CA local del sitio.

Desde el servidor de Checkmk, verifica que puede leer los datos del agente. El comando cmk -d consulta al agente y muestra su salida en bruto:

sudo omd su monitoring
cmk -d web01 | head -n 5
exit
<<<check_mk>>>
Version: 2.x.xpXX
AgentOS: linux
Hostname: web01
AgentDirectory: /etc/check_mk

Paso 8: Descubrir servicios y activar los cambios

Vuelve a la interfaz web, entra en Setup > Hosts, pulsa sobre web01 y después en Save & run service discovery (o en el icono de descubrimiento de la lista). Checkmk mostrará los servicios encontrados: CPU load, CPU utilization, Memory, Filesystem para cada punto de montaje, interfaces de red, servicios de systemd, NTP, etc.

  1. Pulsa Accept all para añadirlos todos a la monitorización.
  2. Arriba a la derecha aparecerá un aviso de cambios pendientes. Pulsa sobre él y después en Activate on selected sites.

Checkmk no aplica ningún cambio de configuración hasta que lo activas. Es un paso deliberado para poder revisar varios cambios juntos antes de aplicarlos.

Ve a Monitor > Overview > All hosts. web01 debe aparecer en estado UP y, tras el primer ciclo de comprobaciones (un minuto por defecto), sus servicios en OK o, si hay algún umbral superado, en WARN o CRIT.

Repite los pasos 5 a 8 para cada servidor. Para monitorizar el propio servidor de Checkmk, instala el agente desde /omd/versions/default/share/check_mk/agents/ y regístralo del mismo modo.

Paso 9: Ajustar umbrales con reglas

En Checkmk no se editan los umbrales host por host: se crean reglas que se aplican según carpeta, etiquetas o nombre del host. Por ejemplo, para cambiar el umbral de ocupación de los sistemas de archivos:

  1. Ve a Setup > Services > Service monitoring rules y busca Filesystems (used space and growth).
  2. Pulsa Add rule.
  3. En Levels for used/free space, indica por ejemplo 85 % para aviso y 95 % para crítico.
  4. En Conditions, limita la regla a una carpeta o a hosts concretos, o déjala sin condiciones para que se aplique a todos.
  5. Guarda y activa los cambios.

El servicio Filesystem / de cada host afectado mostrará los nuevos umbrales en su detalle tras la siguiente comprobación.

Paso 10: Recibir notificaciones por correo

Checkmk envía las notificaciones por correo a través del MTA local, por lo que el servidor necesita poder enviar correo, por ejemplo con Postfix configurado como relay de tu proveedor SMTP. Después:

  1. En Setup > Users, edita cmkadmin (o crea tu propio usuario) e indica una dirección en Email address.
  2. Asigna el usuario a un grupo de contactos que incluya los hosts, por ejemplo all, desde Setup > Users > Contact groups.
  3. La regla de notificación por defecto en Setup > Events > Notifications ya envía un correo HTML a los contactos de cada host o servicio que cambia de estado.
  4. Activa los cambios.

Para probarlo, fuerza un problema real (por ejemplo, detén un servicio de systemd monitorizado en web01).

Actualizar Checkmk

Para actualizar a una versión nueva, instala el nuevo paquete .deb como en los pasos 1 y 2 y después actualiza el sitio. omd update copia la configuración del sitio a la nueva versión y te preguntará qué hacer si detecta conflictos:

sudo omd stop monitoring
sudo omd cp monitoring monitoring_backup
sudo omd update monitoring
sudo omd start monitoring

La copia monitoring_backup te permite volver atrás si algo falla. Bórrala con sudo omd rm monitoring_backup cuando hayas comprobado que todo funciona. Actualiza también el agente de los hosts con el paquete de la nueva versión.

Solución de problemas

cmk-agent-ctl register falla con Connection refused o timeout: el puerto 8000 del servidor de Checkmk no está accesible desde el host. Comprueba sudo ufw status en el servidor y que el sitio está en marcha con sudo omd status monitoring.

El registro falla indicando que el host no existe: el host no está en la configuración o no se han activado los cambios. Créalo como en el paso 6 y activa los cambios antes de registrar.

El servicio Check_MK del host aparece en CRIT con Connection refused o timeout: el servidor no llega al puerto 6556 del host. Revisa la regla de UFW del paso 5 y que la IP configurada en el host de Checkmk es la correcta.

La interfaz web devuelve 404 Not Found: la URL debe incluir el nombre del sitio, http://your_server_ip/monitoring/. Comprueba con sudo omd sites qué sitios existen.

Conclusión

Has instalado Checkmk Raw en Ubuntu 24.04, has creado un sitio, has registrado un agente Linux con comunicación cifrada y has activado el descubrimiento automático de sus servicios. A partir de aquí, añadir servidores es repetir la instalación y el registro del agente, y los umbrales se gestionan de forma centralizada con reglas.

Como siguientes pasos puedes:

  • Organizar los hosts en carpetas y etiquetas (producción, bases de datos, web) para aplicar reglas distintas a cada grupo.
  • Añadir chequeos activos de HTTP y certificados TLS con la regla Check HTTP web service.
  • Monitorizar switches y otros dispositivos de red por SNMP desde el mismo sitio.