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,
web01con IPhost_ip. El servidor de Checkmk se identifica comocheckmk_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.
Importantela interfaz viaja en HTTP. Para un uso en producción, configura HTTPS en el Apache del sistema con un certificado de Let's Encrypt (
sudo apt install certbot python3-certbot-apacheysudo certbot --apache -d your_domain) y abre el puerto 443.
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:
- Ve a Setup > Hosts > Add host.
- En Host name, escribe
web01. - Marca Network address > IPv4 address e indica
host_ip. Si el nombre resuelve por DNS, puedes dejarlo vacío. - 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.
- Pulsa Accept all para añadirlos todos a la monitorización.
- 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:
- Ve a Setup > Services > Service monitoring rules y busca
Filesystems (used space and growth). - Pulsa Add rule.
- En Levels for used/free space, indica por ejemplo 85 % para aviso y 95 % para crítico.
- En Conditions, limita la regla a una carpeta o a hosts concretos, o déjala sin condiciones para que se aplique a todos.
- 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:
- En Setup > Users, edita
cmkadmin(o crea tu propio usuario) e indica una dirección en Email address. - Asigna el usuario a un grupo de contactos que incluya los hosts, por ejemplo
all, desde Setup > Users > Contact groups. - 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.
- 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.
