Solución de Problemas
groales edited this page 2025-12-05 09:43:15 +01:00

Solución de Problemas

Diagnóstico y resolución de problemas comunes en CheckMK.

Diagnóstico General

Ver Logs

# Logs del contenedor
docker logs checkmk --tail 100 -f

# Logs del site
docker exec checkmk tail -f /omd/sites/monitoring/var/log/cmc.log

# Logs de Apache
docker exec checkmk tail -f /omd/sites/monitoring/var/log/apache/access.log
docker exec checkmk tail -f /omd/sites/monitoring/var/log/apache/error.log

Verificar Estado

# Estado del contenedor
docker ps -a | grep checkmk

# Estado del site
docker exec checkmk omd status

# Uso de recursos
docker stats checkmk --no-stream

# Versión
docker exec checkmk omd version

Problemas Comunes

CheckMK No Inicia

Síntomas: Contenedor se reinicia constantemente

Diagnóstico:

docker logs checkmk | grep -i error
docker logs checkmk | grep -i fatal

Causas comunes:

  1. Volumen corrupto

    docker exec checkmk omd check
    

    Solución: Restaurar desde backup

  2. Permisos incorrectos

    docker exec checkmk ls -la /omd/sites
    

    Solución:

    docker exec checkmk chown -R monitoring:monitoring /omd/sites/monitoring
    docker restart checkmk
    
  3. Falta CMK_PASSWORD

    Síntomas: Error "No password set for cmkadmin"

    Solución: Añadir CMK_PASSWORD en .env y recrear contenedor

Error 404 al Acceder

Síntomas: https://checkmk.tudominio.com da 404

Soluciones:

  1. Falta /monitoring/ en la URL:

    https://checkmk.tudominio.com/monitoring/
    
  2. Site no iniciado:

    docker exec checkmk omd status
    docker exec checkmk omd start
    

Error 502 Bad Gateway (NPM/Traefik)

Síntomas: Proxy no puede conectar con CheckMK

Diagnóstico:

# Verificar que CheckMK está corriendo
docker ps | grep checkmk

# Verificar puerto 5000
docker exec checkmk netstat -tlnp | grep 5000

# Verificar desde proxy
docker exec npm curl http://checkmk:5000/monitoring/

Soluciones:

  • Verificar que CheckMK está en red proxy
  • Verificar que el puerto es 5000, no 80
  • Reiniciar CheckMK: docker restart checkmk
  • Verificar que el site está iniciado: docker exec checkmk omd status

Site No Inicia

Síntomas: omd status muestra servicios DOWN

Diagnóstico:

docker exec checkmk omd status

# Ver qué servicio falla
# Ejemplo salida:
# cmcd:         stopped
# apache:       running

Soluciones:

  1. Reiniciar site completo:

    docker exec checkmk omd restart
    
  2. Iniciar servicio específico:

    docker exec checkmk omd start cmc
    docker exec checkmk omd start apache
    
  3. Verificar configuración:

    docker exec checkmk omd check
    
  4. Reparar site (si está corrupto):

    docker exec checkmk omd stop
    docker exec checkmk omd repair
    docker exec checkmk omd start
    

Agentes No Conectan

Síntomas: Host en CheckMK muestra "Connection refused" o "Timeout"

Diagnóstico:

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

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

# Ver logs del agente (en el host)
# Linux: /var/log/check_mk/
# Windows: C:\ProgramData\checkmk\agent\log\

Soluciones:

  1. Firewall bloqueando:

    # En el host Linux
    sudo firewall-cmd --add-port=6556/tcp --permanent
    sudo firewall-cmd --reload
    
    # O iptables
    sudo iptables -A INPUT -p tcp --dport 6556 -j ACCEPT
    
  2. Agente no instalado/corriendo:

    # Linux
    systemctl status check-mk-agent@
    
    # Windows
    services.msc → buscar "Check MK Agent"
    
  3. IP incorrecta en CheckMK:

    • Verificar IP del host en Setup → Hosts

CheckMK Lento

Diagnóstico:

# Ver uso de recursos
docker stats checkmk

# Ver procesos
docker exec checkmk top -b -n 1

# Ver queries lentas
docker exec checkmk cmk --debug

Soluciones:

  1. Limpiar caché:

    docker exec checkmk omd restart apache
    
  2. Optimizar RRD databases:

    docker exec checkmk cmk --optimize-rrds
    
  3. Reducir frecuencia de checks:

    • Setup → Service monitoring rules → Normal check interval
    • Cambiar de 1 min a 5 min para servicios no críticos
  4. Aumentar recursos del contenedor:

    • Editar docker-compose.yml:
    services:
      checkmk:
        deploy:
          resources:
            limits:
              cpus: '2'
              memory: 4G
    

Gráficos No Cargan

Síntomas: Dashboards sin gráficos, errores "RRD not found"

Diagnóstico:

# Verificar RRD databases
docker exec checkmk ls -la /omd/sites/monitoring/var/pnp4nagios/perfdata/

# Verificar permisos
docker exec checkmk stat /omd/sites/monitoring/var/pnp4nagios

Soluciones:

  1. Regenerar RRDs:

    docker exec checkmk cmk --update-rrds
    
  2. Corregir permisos:

    docker exec checkmk chown -R monitoring:monitoring /omd/sites/monitoring/var/pnp4nagios
    

Notificaciones No Llegan

Diagnóstico:

# Ver logs de notificaciones
docker exec checkmk tail -f /omd/sites/monitoring/var/log/notify.log

# Probar notificación manual
docker exec checkmk cmk --notify-test usuario@example.com

Soluciones:

  1. Verificar reglas de notificación:

    • Setup → Notifications → Personal notification rules
  2. Verificar SMTP:

    • Probar conexión SMTP desde CheckMK
    docker exec checkmk telnet smtp.gmail.com 587
    
  3. Verificar contactos asignados:

    • Setup → Hosts → Verificar que hosts tienen contactos

Comandos de Emergencia

Reiniciar Todo

# Reiniciar contenedor
docker restart checkmk

# Reiniciar solo el site
docker exec checkmk omd restart

Recrear Contenedor (Mantiene Datos)

docker stop checkmk
docker rm checkmk
docker compose up -d checkmk

Acceso de Emergencia

# Shell del contenedor
docker exec -it checkmk bash

# Shell del site
docker exec -it checkmk bash -c "su - monitoring"

# Resetear password de cmkadmin
docker exec checkmk htpasswd -b /omd/sites/monitoring/etc/htpasswd cmkadmin nuevapassword

Limpiar Todo el Site

# Detener site
docker exec checkmk omd stop

# Limpiar caché y logs
docker exec checkmk bash -c "rm -rf /omd/sites/monitoring/tmp/*"
docker exec checkmk bash -c "rm -rf /omd/sites/monitoring/var/log/*"

# Reiniciar
docker exec checkmk omd start

Recuperación de Desastres

Site Corrupto - Restaurar desde Backup

# 1. Detener site
docker exec checkmk omd stop

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

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

# 4. Iniciar
docker exec checkmk omd start

# 5. Verificar
docker exec checkmk omd status
docker logs checkmk --tail 50

Volumen Corrupto

# 1. Backup de volumen (si es posible)
docker run --rm -v checkmk_data:/data -v $(pwd):/backup alpine tar czf /backup/checkmk_volume_backup.tar.gz -C /data .

# 2. Detener y eliminar
docker stop checkmk
docker rm checkmk
docker volume rm checkmk_data

# 3. Recrear
docker volume create checkmk_data
docker compose up -d checkmk

# 4. Restaurar backup
docker cp checkmk-backup.tar.gz checkmk:/tmp/
docker exec checkmk omd restore /tmp/checkmk-backup.tar.gz

Obtener Ayuda

Información del Sistema

# Versión de CheckMK
docker exec checkmk omd version

# Información del site
docker exec checkmk omd config show

# Variables de entorno
docker exec checkmk env | grep -E "CMK_|SITE"

# Configuración del contenedor
docker inspect checkmk

Recursos Oficiales


Prevención

Monitorización del Propio CheckMK

  1. Monitoriza el contenedor CheckMK desde otro sistema
  2. Configura alertas de CPU/RAM/Disco
  3. Monitoriza logs: docker logs checkmk | grep -i error

Backups Regulares

  • Automatiza backups diarios (ver Backup y Restauración)
  • Prueba restauración mensualmente
  • Guarda backups en ubicación remota

Próximos Pasos

  1. Backup - Automatiza backups para prevenir desastres
  2. Actualización - Mantén CheckMK actualizado
  3. Comunidad - Pregunta si no encuentras solución