CheckMK RAW

Sistema de monitorización IT profesional. Monitoriza servidores, aplicaciones, redes y servicios.

Características

  • 🖥️ Monitorización completa: Servidores, aplicaciones, red, cloud
  • 📊 Dashboards: Visualización en tiempo real
  • 🔔 Alertas: Notificaciones por email, SMS, Slack, etc.
  • 📈 Métricas: Históricos de rendimiento y disponibilidad
  • 🔌 Agentes: Linux, Windows, Docker, SNMP
  • 🌐 Multi-sitio: Gestión centralizada de múltiples sites
  • 📱 Aplicación móvil: Monitorización desde el móvil
  • 🔧 Extensible: Plugins y checks personalizados

Requisitos Previos

  • Docker Engine instalado
  • Portainer configurado (recomendado)
  • Para Traefik o NPM: Red Docker proxy creada
  • Dominio configurado: Para acceso HTTPS
  • Contraseña generada: CMK_PASSWORD

⚠️ IMPORTANTE: CheckMK RAW es la versión gratuita. Para funcionalidades enterprise, considera CheckMK Enterprise.

Generar Contraseña

Antes de cualquier despliegue, genera una contraseña segura:

# CMK_PASSWORD (usuario cmkadmin)
openssl rand -base64 32

Guarda el resultado, lo necesitarás en el archivo .env.

⚠️ Importante: Usa comillas simples en el archivo .env si la contraseña contiene caracteres especiales. Ejemplo: CMK_PASSWORD='tu_password_generado'


Despliegue con Portainer

Opción A: Git Repository (Recomendada)

  1. En Portainer, ve a StacksAdd stack
  2. Nombra el stack: checkmk
  3. Selecciona Git Repository
  4. Configura:
    • Repository URL: https://git.ictiberia.com/groales/checkmk
    • Repository reference: refs/heads/main
    • Compose path: docker-compose.yml
    • GitOps updates: Activado (opcional)
  5. Solo para Traefik: En Additional paths, añade:
    • docker-compose.override.traefik.yml.example
  6. En Environment variables, añade:
CMK_PASSWORD=tu_password_generado
DOMAIN_HOST=checkmk.tudominio.com
  1. Click en Deploy the stack

Opción B: Web editor

  1. En Portainer, ve a StacksAdd stack
  2. Nombra el stack: checkmk
  3. Selecciona Web editor
  4. Pega el contenido de docker-compose.yml
  5. En Environment variables, añade las mismas variables que la Opción A
  6. Click en Deploy the stack

Despliegue con Docker CLI

Si prefieres trabajar desde la línea de comandos:

1. Clonar el repositorio

git clone https://git.ictiberia.com/groales/checkmk.git
cd checkmk

2. Generar contraseña

Contraseña para el usuario cmkadmin:

openssl rand -base64 32

3. Elegir modo de despliegue

Opción A: Traefik (recomendado para producción)

cp docker-compose.override.traefik.yml.example docker-compose.override.yml
cp .env.example .env
nano .env  # Editar: pegar CMK_PASSWORD, configurar DOMAIN_HOST

Opción B: Nginx Proxy Manager

cp .env.example .env
nano .env  # Editar: pegar CMK_PASSWORD, configurar DOMAIN_HOST

4. Iniciar el servicio

docker compose up -d

⏱️ La inicialización puede tardar 2-3 minutos (creación del site, configuración OMD).

5. Verificar el despliegue

# Ver logs en tiempo real
docker compose logs -f checkmk

# Verificar contenedores activos
docker compose ps

# Verificar estado del site CheckMK
docker compose exec checkmk omd status

# Listar sites disponibles
docker compose exec checkmk omd sites

Acceso:

  • Traefik: https://<DOMAIN_HOST>/monitoring/ (ejemplo: https://checkmk.example.com/monitoring/)
  • NPM: Configurar en NPM apuntando a checkmk puerto 5000https://checkmk.example.com/monitoring/

⚠️ IMPORTANTE: El path /monitoring/ es obligatorio (nombre del site CheckMK).

Credenciales iniciales:

  • Usuario: cmkadmin
  • Contraseña: La configurada en CMK_PASSWORD

6. Comandos OMD útiles

# Ver todos los servicios del site
docker compose exec checkmk omd status

# Reiniciar site
docker compose exec checkmk omd restart

# Backup manual
docker compose exec checkmk omd backup /tmp/backup.tar.gz

# Ver configuración del site
docker compose exec checkmk omd config

Modos de Despliegue

Traefik (Proxy Inverso con SSL automático)

Requisitos:

  • Stack de Traefik desplegado
  • Red proxy creada
  • DNS apuntando al servidor

Si desplegaste con Opción A (Git Repository) y añadiste el override en el paso 5, ya está todo configurado.

Accede a https://checkmk.tudominio.com

Nginx Proxy Manager (NPM)

Requisitos:

  • NPM desplegado y accesible
  • Red proxy creada
  • DNS apuntando al servidor

Pasos:

  1. Despliega el stack con el docker-compose.yml base (sin override)

  2. En NPM, crea un nuevo Proxy Host:

    • Domain Names: checkmk.tudominio.com
    • Scheme: http
    • Forward Hostname / IP: checkmk
    • Forward Port: 5000
    • Cache Assets: Activado
    • Block Common Exploits: Activado
    • Websockets Support: Activado
  3. En la pestaña SSL:

    • SSL Certificate: Request a new SSL Certificate
    • Force SSL: Activado
    • HTTP/2 Support: Activado
  4. Guarda y accede a https://checkmk.tudominio.com


Configuración Inicial

Primer Acceso

  1. Accede a CheckMK: https://checkmk.tudominio.com/monitoring/
  2. Login con:
    • Usuario: cmkadmin
    • Contraseña: La que configuraste en CMK_PASSWORD

Configuración Básica

Cambiar Contraseña (Recomendado)

  1. Click en cmkadmin (esquina superior derecha)
  2. Change password
  3. Ingresa contraseña actual y nueva
  4. Save

Configurar Site

Setup → General → Global settings:

  • Site name: Nombre descriptivo de tu site
  • Admin email: Email del administrador
  • Timezone: Europe/Madrid

Configurar Notificaciones

Setup → Notifications:

  • Email notifications: Configura servidor SMTP
  • Slack/Teams: Webhooks para notificaciones
  • SMS: Proveedores de SMS

Añadir Hosts

Host Linux con Agente

  1. Setup → Hosts → Add host
  2. Hostname: servidor01.example.com
  3. IP address: IP del servidor
  4. Monitoring agents: Check_MK Agent
  5. Save & go to service configuration

Instalar agente en el host:

# Descargar agente desde CheckMK
wget https://checkmk.tudominio.com/monitoring/check_mk/agents/check-mk-agent_2.x.x-1_all.deb

# Instalar
dpkg -i check-mk-agent_2.x.x-1_all.deb

# Permitir conexión desde CheckMK
# Edita /etc/xinetd.d/check-mk-agent o /etc/check_mk/check-mk-agent.cfg
  1. Discover services en CheckMK
  2. Activate changes

Host Windows con Agente

  1. Descarga el agente Windows desde CheckMK
  2. Ejecuta check_mk_agent.msi en el servidor Windows
  3. Configura IP del servidor CheckMK
  4. En CheckMK, añade el host como arriba
  5. Discover services y Activate changes

Dispositivo de Red (SNMP)

  1. Setup → Hosts → Add host
  2. Hostname: switch01.example.com
  3. Monitoring agents: SNMP
  4. SNMP community: public (o tu community string)
  5. Save & discover services
  6. Activate changes

Dashboards y Vistas

Crear Dashboard Personalizado

  1. Customize → Dashboards
  2. Add dashboard
  3. Añade widgets:
    • Host statistics: Resumen de hosts
    • Service statistics: Resumen de servicios
    • Performance graphs: Gráficas de rendimiento
    • Top alerts: Alertas recientes

Vistas Personalizadas

Customize → Views:

  • Crea vistas filtradas por grupos
  • Exporta vistas como PDF/CSV
  • Programa envíos automáticos

Backup y Restauración

Backup Manual

# Backup completo del site
docker exec checkmk omd backup /tmp/checkmk-backup-$(date +%Y%m%d).tar.gz

# Copiar backup fuera del contenedor
docker cp checkmk:/tmp/checkmk-backup-FECHA.tar.gz ./

Backup Automático

Script /root/backup-checkmk.sh:

#!/bin/bash
BACKUP_DIR="/backups/checkmk"
DATE=$(date +%Y%m%d-%H%M%S)
RETENTION_DAYS=7

mkdir -p $BACKUP_DIR

# Backup del site
docker exec checkmk omd backup /tmp/checkmk-backup-$DATE.tar.gz
docker cp checkmk:/tmp/checkmk-backup-$DATE.tar.gz $BACKUP_DIR/
docker exec checkmk rm /tmp/checkmk-backup-$DATE.tar.gz

# Limpiar backups antiguos
find $BACKUP_DIR -name "*.tar.gz" -mtime +$RETENTION_DAYS -delete

echo "Backup completado: $DATE"

Cron:

chmod +x /root/backup-checkmk.sh
crontab -e

# Backup diario a las 3 AM
0 3 * * * /root/backup-checkmk.sh

Restauración

# Copiar backup al contenedor
docker cp checkmk-backup-FECHA.tar.gz checkmk:/tmp/

# Restaurar
docker exec checkmk omd restore /tmp/checkmk-backup-FECHA.tar.gz

# Reiniciar
docker restart checkmk

Actualización

# 1. Backup ANTES de actualizar
docker exec checkmk omd backup /tmp/checkmk-pre-update.tar.gz
docker cp checkmk:/tmp/checkmk-pre-update.tar.gz ./

# 2. Detener contenedor
docker stop checkmk

# 3. Actualizar imagen
docker pull checkmk/check-mk-raw:latest

# 4. Iniciar contenedor
docker start checkmk

# 5. Verificar versión
docker exec checkmk omd version

# 6. Acceder y verificar funcionamiento

Solución de Problemas

CheckMK no inicia

# Ver logs
docker logs checkmk --tail 100

# Verificar permisos del volumen
docker exec checkmk ls -la /omd/sites

# Reiniciar site
docker exec checkmk omd restart

Agente no conecta

# Probar conexión desde CheckMK
docker exec checkmk check_mk_agent HOST

# Verificar firewall en host
# Puerto 6556 TCP debe estar abierto

# Ver logs del agente
# En Linux: /var/log/check_mk/
# En Windows: C:\ProgramData\checkmk\agent\log\

Site corrupto

# Detener site
docker exec checkmk omd stop

# Verificar integridad
docker exec checkmk omd check

# Reparar (si es posible)
docker exec checkmk omd repair

# Restaurar desde backup (última opción)
docker exec checkmk omd restore /tmp/backup.tar.gz

Variables de Entorno

Requeridas

Variable Descripción Ejemplo
CMK_PASSWORD Contraseña usuario cmkadmin generada_con_openssl
DOMAIN_HOST Dominio completo checkmk.example.com

Opcionales

Variable Descripción Valor por defecto
CMK_SITE_ID ID del site CheckMK monitoring

Recursos


Licencia

CheckMK RAW Edition es software de código abierto bajo licencia GPLv2.

Description
No description provided
Readme 34 KiB