Wiki completa de CheckMK: 9 páginas en español
- Home: Índice, características, quick start, arquitectura - Traefik: Despliegue con labels puerto 5000, troubleshooting - NPM: Despliegue con Proxy Hosts, comparativa - Configuración Inicial: Primer acceso, usuarios, notificaciones - Monitorización: Añadir hosts Linux/Windows/SNMP, dashboards, checks - Backup y Restauración: omd backup, scripts automáticos, restauración - Actualización: Updates, rollback, Watchtower - Solución de Problemas: Diagnóstico, errores comunes, recuperación - Sidebar: Navegación completa
232
Actualización.md
Normal file
232
Actualización.md
Normal file
@@ -0,0 +1,232 @@
|
||||
# Actualización
|
||||
|
||||
Mantén CheckMK actualizado de forma segura.
|
||||
|
||||
## Pre-requisitos
|
||||
|
||||
⚠️ **SIEMPRE haz backup antes de actualizar**
|
||||
|
||||
```bash
|
||||
# Backup rápido
|
||||
docker exec checkmk omd backup /tmp/checkmk-pre-update-$(date +%Y%m%d).tar.gz
|
||||
docker cp checkmk:/tmp/checkmk-pre-update-$(date +%Y%m%d).tar.gz ./
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Actualizar CheckMK
|
||||
|
||||
### Proceso Manual
|
||||
|
||||
```bash
|
||||
# 1. Backup (ver arriba)
|
||||
|
||||
# 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. Verificar site
|
||||
docker exec checkmk omd status
|
||||
|
||||
# 7. Acceder y verificar
|
||||
# https://checkmk.tudominio.com/monitoring/
|
||||
```
|
||||
|
||||
### Con Portainer
|
||||
|
||||
1. Ve al stack `checkmk`
|
||||
2. Click en **Pull and redeploy**
|
||||
3. Espera 2-3 minutos
|
||||
4. Verifica logs: `docker logs checkmk --tail 100`
|
||||
5. Accede y verifica funcionamiento
|
||||
|
||||
---
|
||||
|
||||
## Actualización de Versión Mayor
|
||||
|
||||
### Ejemplo: 2.1.x → 2.2.x
|
||||
|
||||
⚠️ **Las actualizaciones mayores requieren migración del site**
|
||||
|
||||
```bash
|
||||
# 1. Backup completo
|
||||
docker exec checkmk omd backup /tmp/checkmk-pre-major-update.tar.gz
|
||||
docker cp checkmk:/tmp/checkmk-pre-major-update.tar.gz ./
|
||||
|
||||
# 2. Detener y eliminar contenedor
|
||||
docker stop checkmk
|
||||
docker rm checkmk
|
||||
|
||||
# 3. Actualizar imagen
|
||||
docker pull checkmk/check-mk-raw:latest
|
||||
|
||||
# 4. Recrear contenedor
|
||||
docker compose up -d checkmk
|
||||
|
||||
# 5. Esperar inicialización
|
||||
sleep 60
|
||||
|
||||
# 6. Verificar migración automática
|
||||
docker logs checkmk | grep -i "migration"
|
||||
|
||||
# 7. Verificar site
|
||||
docker exec checkmk omd status
|
||||
|
||||
# 8. Acceder y verificar
|
||||
```
|
||||
|
||||
Si hay problemas, restaura desde backup (ver sección siguiente).
|
||||
|
||||
---
|
||||
|
||||
## Rollback (Revertir Actualización)
|
||||
|
||||
### Rollback Rápido
|
||||
|
||||
```bash
|
||||
# 1. Detener contenedor actual
|
||||
docker stop checkmk
|
||||
|
||||
# 2. Volver a imagen anterior
|
||||
docker pull checkmk/check-mk-raw:2.1.0
|
||||
docker tag checkmk/check-mk-raw:2.1.0 checkmk/check-mk-raw:latest
|
||||
|
||||
# 3. Iniciar contenedor
|
||||
docker start checkmk
|
||||
|
||||
# 4. Verificar versión
|
||||
docker exec checkmk omd version
|
||||
```
|
||||
|
||||
### Rollback Completo (con restauración)
|
||||
|
||||
```bash
|
||||
# 1. Detener y eliminar
|
||||
docker stop checkmk
|
||||
docker rm checkmk
|
||||
|
||||
# 2. Eliminar volumen
|
||||
docker volume rm checkmk_data
|
||||
|
||||
# 3. Recrear volumen
|
||||
docker volume create checkmk_data
|
||||
|
||||
# 4. Iniciar contenedor con versión anterior
|
||||
docker compose up -d checkmk
|
||||
|
||||
# 5. Esperar inicialización
|
||||
sleep 60
|
||||
|
||||
# 6. Restaurar desde backup
|
||||
docker cp checkmk-pre-update-20250105.tar.gz checkmk:/tmp/
|
||||
docker exec checkmk omd restore /tmp/checkmk-pre-update-20250105.tar.gz
|
||||
|
||||
# 7. Reiniciar
|
||||
docker restart checkmk
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Actualización Automática con Watchtower
|
||||
|
||||
### Desplegar Watchtower
|
||||
|
||||
```yaml
|
||||
services:
|
||||
watchtower:
|
||||
image: containrrr/watchtower
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
WATCHTOWER_CLEANUP: "true"
|
||||
WATCHTOWER_INCLUDE_STOPPED: "false"
|
||||
WATCHTOWER_SCHEDULE: "0 0 3 * * *" # 3 AM diario
|
||||
WATCHTOWER_ROLLING_RESTART: "true"
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
```
|
||||
|
||||
### Excluir CheckMK de Watchtower
|
||||
|
||||
Si quieres control manual, añade label a `checkmk`:
|
||||
|
||||
```yaml
|
||||
services:
|
||||
checkmk:
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=false"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Checklist Post-Actualización
|
||||
|
||||
### Verificar Funcionalidad
|
||||
|
||||
- [ ] CheckMK accesible en https://checkmk.tudominio.com/monitoring/
|
||||
- [ ] Login funciona correctamente
|
||||
- [ ] Hosts visibles y con datos
|
||||
- [ ] Servicios reportando métricas
|
||||
- [ ] Gráficos de rendimiento cargan
|
||||
- [ ] Dashboards funcionan
|
||||
- [ ] Notificaciones activas
|
||||
- [ ] Agentes conectan correctamente
|
||||
|
||||
### Verificar Logs
|
||||
|
||||
```bash
|
||||
# Sin errores críticos
|
||||
docker logs checkmk | grep -i error
|
||||
docker logs checkmk | grep -i fatal
|
||||
|
||||
# Site corriendo
|
||||
docker exec checkmk omd status
|
||||
```
|
||||
|
||||
### Verificar Versión
|
||||
|
||||
**Setup → Help → Info**:
|
||||
- Debe mostrar la nueva versión
|
||||
- Verificar que el site migró correctamente
|
||||
|
||||
---
|
||||
|
||||
## Mantenimiento
|
||||
|
||||
### Limpiar Imágenes Antiguas
|
||||
|
||||
```bash
|
||||
# Listar imágenes
|
||||
docker images | grep checkmk
|
||||
|
||||
# Eliminar imágenes sin usar
|
||||
docker image prune -a
|
||||
```
|
||||
|
||||
### Optimizar Site
|
||||
|
||||
```bash
|
||||
# Limpiar logs antiguos
|
||||
docker exec checkmk bash -c "find /omd/sites/monitoring/var/log -name '*.log' -mtime +30 -delete"
|
||||
|
||||
# Compactar RRD databases
|
||||
docker exec checkmk cmk --optimize-rrds
|
||||
|
||||
# Limpiar caché web
|
||||
docker exec checkmk omd restart apache
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Próximos Pasos
|
||||
|
||||
1. **[Backup](Backup-y-Restauración)** - Automatiza backups regulares
|
||||
2. **Monitoriza** - Configura alertas de caídas
|
||||
3. **Documenta** - Mantén registro de versiones
|
||||
224
Backup-y-Restauración.md
Normal file
224
Backup-y-Restauración.md
Normal file
@@ -0,0 +1,224 @@
|
||||
# Backup y Restauración
|
||||
|
||||
Protege tu configuración de CheckMK con backups automáticos.
|
||||
|
||||
## Qué Hacer Backup
|
||||
|
||||
CheckMK almacena todo en el site (`/omd/sites/monitoring`):
|
||||
|
||||
- Configuración de hosts y servicios
|
||||
- Históricos de rendimiento (RRD databases)
|
||||
- Usuarios y roles
|
||||
- Dashboards personalizados
|
||||
- Reglas y umbrales
|
||||
|
||||
---
|
||||
|
||||
## Backup Manual
|
||||
|
||||
### Backup Completo del Site
|
||||
|
||||
```bash
|
||||
# Backup completo
|
||||
docker exec checkmk omd backup /tmp/checkmk-backup-$(date +%Y%m%d).tar.gz
|
||||
|
||||
# Copiar fuera del contenedor
|
||||
docker cp checkmk:/tmp/checkmk-backup-20250105.tar.gz ./
|
||||
|
||||
# Limpiar backup temporal del contenedor
|
||||
docker exec checkmk rm /tmp/checkmk-backup-20250105.tar.gz
|
||||
|
||||
# Verificar
|
||||
tar -tzf checkmk-backup-20250105.tar.gz | head
|
||||
```
|
||||
|
||||
### Backup Solo Configuración
|
||||
|
||||
```bash
|
||||
# Backup solo config (más rápido, sin históricos)
|
||||
docker exec checkmk omd backup --no-rrds /tmp/checkmk-config-$(date +%Y%m%d).tar.gz
|
||||
docker cp checkmk:/tmp/checkmk-config-20250105.tar.gz ./
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Backup Automático
|
||||
|
||||
### Script de Backup
|
||||
|
||||
Crea `/root/backup-checkmk.sh`:
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
|
||||
# Configuración
|
||||
BACKUP_DIR="/backups/checkmk"
|
||||
DATE=$(date +%Y%m%d-%H%M%S)
|
||||
RETENTION_DAYS=7
|
||||
SITE_ID="monitoring"
|
||||
|
||||
# Crear directorio
|
||||
mkdir -p $BACKUP_DIR
|
||||
|
||||
# Backup completo del site
|
||||
echo "Backing up CheckMK site..."
|
||||
docker exec checkmk omd backup /tmp/checkmk-backup-$DATE.tar.gz
|
||||
|
||||
# Copiar fuera del contenedor
|
||||
docker cp checkmk:/tmp/checkmk-backup-$DATE.tar.gz $BACKUP_DIR/
|
||||
|
||||
# Limpiar temporal
|
||||
docker exec checkmk rm /tmp/checkmk-backup-$DATE.tar.gz
|
||||
|
||||
# Limpiar backups antiguos
|
||||
echo "Cleaning old backups..."
|
||||
find $BACKUP_DIR -name "checkmk-backup-*.tar.gz" -mtime +$RETENTION_DAYS -delete
|
||||
|
||||
# Verificar tamaño
|
||||
BACKUP_SIZE=$(du -h "$BACKUP_DIR/checkmk-backup-$DATE.tar.gz" | cut -f1)
|
||||
echo "Backup completado: $DATE (Tamaño: $BACKUP_SIZE)"
|
||||
```
|
||||
|
||||
### Automatizar con Cron
|
||||
|
||||
```bash
|
||||
chmod +x /root/backup-checkmk.sh
|
||||
crontab -e
|
||||
|
||||
# Backup diario a las 2 AM
|
||||
0 2 * * * /root/backup-checkmk.sh >> /var/log/backup-checkmk.log 2>&1
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Restauración
|
||||
|
||||
### Restaurar desde Backup
|
||||
|
||||
```bash
|
||||
# 1. Detener CheckMK
|
||||
docker stop checkmk
|
||||
|
||||
# 2. Copiar backup al contenedor
|
||||
docker cp checkmk-backup-20250105.tar.gz checkmk:/tmp/
|
||||
|
||||
# 3. Restaurar
|
||||
docker exec checkmk omd restore /tmp/checkmk-backup-20250105.tar.gz
|
||||
|
||||
# 4. Iniciar CheckMK
|
||||
docker start checkmk
|
||||
|
||||
# 5. Verificar
|
||||
docker exec checkmk omd status
|
||||
docker logs checkmk --tail 50
|
||||
```
|
||||
|
||||
### Restaurar en Contenedor Nuevo
|
||||
|
||||
```bash
|
||||
# 1. Crear volumen nuevo
|
||||
docker volume create checkmk_data_new
|
||||
|
||||
# 2. Iniciar contenedor temporal
|
||||
docker run -d --name checkmk-temp \
|
||||
-v checkmk_data_new:/omd/sites \
|
||||
checkmk/check-mk-raw:latest
|
||||
|
||||
# 3. Esperar inicialización
|
||||
sleep 30
|
||||
|
||||
# 4. Copiar y restaurar backup
|
||||
docker cp checkmk-backup-20250105.tar.gz checkmk-temp:/tmp/
|
||||
docker exec checkmk-temp omd restore /tmp/checkmk-backup-20250105.tar.gz
|
||||
|
||||
# 5. Detener temporal
|
||||
docker stop checkmk-temp
|
||||
docker rm checkmk-temp
|
||||
|
||||
# 6. Actualizar docker-compose.yml para usar checkmk_data_new
|
||||
# 7. Desplegar stack normal
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Backup Remoto
|
||||
|
||||
### Sincronizar con S3/MinIO
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
BACKUP_DIR="/backups/checkmk"
|
||||
S3_BUCKET="s3://mi-bucket/checkmk/"
|
||||
|
||||
# Hacer backup local primero
|
||||
/root/backup-checkmk.sh
|
||||
|
||||
# Sincronizar con S3
|
||||
aws s3 sync $BACKUP_DIR $S3_BUCKET --storage-class GLACIER
|
||||
|
||||
# O con rclone
|
||||
rclone sync $BACKUP_DIR minio:checkmk-backups
|
||||
```
|
||||
|
||||
### Sincronizar con Rsync
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
BACKUP_DIR="/backups/checkmk"
|
||||
REMOTE_SERVER="backup@servidor-remoto"
|
||||
REMOTE_PATH="/backups/checkmk"
|
||||
|
||||
# Sincronizar
|
||||
rsync -avz --delete $BACKUP_DIR/ $REMOTE_SERVER:$REMOTE_PATH/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Backup de Configuración (Git)
|
||||
|
||||
### Versionado de Configuración
|
||||
|
||||
CheckMK puede exportar configuración a Git:
|
||||
|
||||
**Setup → General → Site Management → Configuration → Enable Git support**
|
||||
|
||||
Esto versiona todos los cambios en `/omd/sites/monitoring/etc/check_mk/`
|
||||
|
||||
```bash
|
||||
# Commit manual
|
||||
docker exec checkmk bash -c "cd /omd/sites/monitoring/etc/check_mk && git add . && git commit -m 'Cambios de configuración'"
|
||||
|
||||
# Ver historial
|
||||
docker exec checkmk bash -c "cd /omd/sites/monitoring/etc/check_mk && git log --oneline"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Verificación de Backups
|
||||
|
||||
### Script de Verificación
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
BACKUP_FILE="/backups/checkmk/checkmk-backup-latest.tar.gz"
|
||||
|
||||
# Verificar integridad
|
||||
if tar -tzf "$BACKUP_FILE" > /dev/null 2>&1; then
|
||||
echo "✓ Backup válido"
|
||||
|
||||
# Verificar contenido
|
||||
FILES=$(tar -tzf "$BACKUP_FILE" | wc -l)
|
||||
echo "✓ Contiene $FILES archivos"
|
||||
else
|
||||
echo "✗ Backup corrupto"
|
||||
exit 1
|
||||
fi
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Próximos Pasos
|
||||
|
||||
1. **[Actualización](Actualización)** - Mantén CheckMK actualizado
|
||||
2. **Automatiza** - Configura cron para backups automáticos
|
||||
3. **Prueba restauración** - Verifica que los backups funcionan
|
||||
163
Configuración-Inicial.md
Normal file
163
Configuración-Inicial.md
Normal file
@@ -0,0 +1,163 @@
|
||||
# Configuración Inicial
|
||||
|
||||
Pasos para configurar CheckMK tras el primer despliegue.
|
||||
|
||||
## Primer Acceso
|
||||
|
||||
1. Accede a CheckMK: `https://checkmk.tudominio.com/monitoring/`
|
||||
2. Login con credenciales iniciales:
|
||||
- **Usuario**: `cmkadmin`
|
||||
- **Contraseña**: La que configuraste en `CMK_PASSWORD`
|
||||
|
||||
### Cambiar Contraseña (Recomendado)
|
||||
|
||||
1. Click en **cmkadmin** (esquina superior derecha)
|
||||
2. **Change password**
|
||||
3. Ingresa contraseña actual y nueva (mínimo 8 caracteres)
|
||||
4. **Save**
|
||||
|
||||
---
|
||||
|
||||
## Configuración del Site
|
||||
|
||||
### Global Settings
|
||||
|
||||
**Setup → General → Global settings**:
|
||||
|
||||
- **Site name**: `Monitorización Producción`
|
||||
- **Admin email**: `admin@example.com`
|
||||
- **Timezone**: `Europe/Madrid`
|
||||
- **Date/Time format**: `2025-12-05 14:30:00`
|
||||
|
||||
### Configurar URL Base
|
||||
|
||||
**Setup → General → Site Management → Global Settings**:
|
||||
|
||||
- **Site URL prefix**: `https://checkmk.tudominio.com/monitoring`
|
||||
|
||||
Esto corrige enlaces en emails y notificaciones.
|
||||
|
||||
---
|
||||
|
||||
## Usuarios y Roles
|
||||
|
||||
### Crear Usuario
|
||||
|
||||
**Setup → Users → Add user**:
|
||||
|
||||
1. **Username**: `jperez`
|
||||
2. **Full name**: `Juan Pérez`
|
||||
3. **Email**: `jperez@example.com`
|
||||
4. **Password**: Contraseña temporal
|
||||
5. **Roles**: `User` (o `Administrator` si necesita acceso completo)
|
||||
6. **Save**
|
||||
|
||||
### Roles Disponibles
|
||||
|
||||
- **Administrator**: Acceso completo al sistema
|
||||
- **User**: Puede ver y gestionar monitorización
|
||||
- **Guest**: Solo lectura
|
||||
|
||||
### Crear Rol Personalizado
|
||||
|
||||
**Setup → Users → Roles → Add role**:
|
||||
|
||||
1. **ID**: `operator`
|
||||
2. **Alias**: `Operador`
|
||||
3. **Permissions**:
|
||||
- ✅ View all hosts and services
|
||||
- ✅ Acknowledge problems
|
||||
- ❌ Configure CheckMK
|
||||
4. **Save**
|
||||
|
||||
---
|
||||
|
||||
## Configurar Notificaciones
|
||||
|
||||
### Email (SMTP)
|
||||
|
||||
**Setup → Notifications → Personal settings**:
|
||||
|
||||
1. Click en **cmkadmin** → **Notification rules**
|
||||
2. **Add rule**:
|
||||
- **Description**: `Alertas críticas por email`
|
||||
- **Notification Method**: `Email`
|
||||
- **Contact selection**: `All contacts of the notified object`
|
||||
- **Match conditions**:
|
||||
- **State**: `CRITICAL` y `DOWN`
|
||||
- **SMTP settings**:
|
||||
- **SMTP server**: `smtp.gmail.com:587`
|
||||
- **From**: `checkmk@example.com`
|
||||
- **TLS**: Activado
|
||||
3. **Save**
|
||||
|
||||
### Slack
|
||||
|
||||
1. Crea Webhook en Slack: `https://hooks.slack.com/services/XXX/YYY/ZZZ`
|
||||
2. **Setup → Notifications → Add rule**:
|
||||
- **Notification Method**: `Slack or Mattermost`
|
||||
- **Webhook URL**: Pega la URL
|
||||
- **Channel**: `#monitoring`
|
||||
3. **Save**
|
||||
|
||||
### Microsoft Teams
|
||||
|
||||
Similar a Slack, usando webhook de Teams.
|
||||
|
||||
---
|
||||
|
||||
## Contactos
|
||||
|
||||
### Añadir Contacto
|
||||
|
||||
**Setup → Users → Contacts → Add contact**:
|
||||
|
||||
1. **ID**: `admin-team`
|
||||
2. **Alias**: `Equipo Admin`
|
||||
3. **Email**: `admin-team@example.com`
|
||||
4. **Pager**: Número de teléfono (opcional)
|
||||
5. **Save**
|
||||
|
||||
### Asignar Contactos a Hosts
|
||||
|
||||
Al crear/editar hosts:
|
||||
- **Contacts**: Seleccionar contactos
|
||||
- Los contactos recibirán notificaciones de ese host
|
||||
|
||||
---
|
||||
|
||||
## Configuración de Site
|
||||
|
||||
### Performance
|
||||
|
||||
**Setup → General → Global settings → User Interface**:
|
||||
|
||||
- **Number of columns for service views**: `3`
|
||||
- **Number of elements to show**: `100`
|
||||
|
||||
**Setup → General → Global settings → Performance**:
|
||||
|
||||
- **Check result expiry**: `1800` (30 minutos)
|
||||
- **Enable cached web pages**: ✅ Activado
|
||||
|
||||
### Logging
|
||||
|
||||
**Setup → General → Global settings → Logging**:
|
||||
|
||||
- **Logging level**: `INFO` (production) o `DEBUG` (troubleshooting)
|
||||
|
||||
---
|
||||
|
||||
## Licencia (CheckMK RAW)
|
||||
|
||||
CheckMK RAW es gratuito y no requiere licencia.
|
||||
|
||||
Si necesitas funcionalidades enterprise (reportes avanzados, distribuido, etc.), considera CheckMK Enterprise Edition.
|
||||
|
||||
---
|
||||
|
||||
## Próximos Pasos
|
||||
|
||||
1. **[Monitorización](Monitorización)** - Añade tus primeros hosts
|
||||
2. **[Backup](Backup-y-Restauración)** - Automatiza backups
|
||||
3. **Explora** - Familiarízate con la interfaz
|
||||
127
Home.md
127
Home.md
@@ -1 +1,126 @@
|
||||
¡Bienvenidos a la Wiki!
|
||||
# CheckMK RAW - Wiki
|
||||
|
||||
Documentación completa para desplegar y configurar CheckMK RAW con Docker.
|
||||
|
||||
## 📋 Índice
|
||||
|
||||
### 🚀 Despliegue
|
||||
- [Traefik](Traefik) - Despliegue con Traefik (proxy inverso + SSL automático)
|
||||
- [NPM](NPM) - Despliegue con Nginx Proxy Manager
|
||||
|
||||
### ⚙️ Configuración
|
||||
- [Configuración Inicial](Configuración-Inicial) - Primer acceso, cambiar contraseña, site
|
||||
- [Monitorización](Monitorización) - Añadir hosts, agentes, SNMP, dashboards
|
||||
|
||||
### 💾 Mantenimiento
|
||||
- [Backup y Restauración](Backup-y-Restauración) - Backups automáticos, restauración
|
||||
- [Actualización](Actualización) - Actualizar CheckMK, rollback
|
||||
- [Solución de Problemas](Solución-de-Problemas) - Diagnóstico, errores comunes
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Características
|
||||
|
||||
- **Sistema de monitorización IT profesional**
|
||||
- **Agentes**: Linux, Windows, Docker, SNMP
|
||||
- **Dashboards**: Visualización en tiempo real
|
||||
- **Alertas**: Email, SMS, Slack, Teams
|
||||
- **Multi-sitio**: Gestión centralizada
|
||||
- **Gratuito**: CheckMK RAW Edition (GPLv2)
|
||||
|
||||
---
|
||||
|
||||
## ⚡ Quick Start
|
||||
|
||||
### Requisitos
|
||||
|
||||
- Docker Engine
|
||||
- Portainer (recomendado)
|
||||
- Red `proxy` creada
|
||||
- Dominio configurado
|
||||
|
||||
### Generar Contraseña
|
||||
|
||||
**ANTES de desplegar**, genera 1 contraseña segura:
|
||||
|
||||
```bash
|
||||
# CMK_PASSWORD (usuario cmkadmin)
|
||||
openssl rand -base64 32
|
||||
```
|
||||
|
||||
### Despliegue Básico
|
||||
|
||||
1. **Crea el stack en Portainer** con Git Repository:
|
||||
- URL: `https://git.ictiberia.com/groales/checkmk`
|
||||
- Compose path: `docker-compose.yml`
|
||||
|
||||
2. **Añade variables de entorno**:
|
||||
```env
|
||||
CMK_PASSWORD=password_generado
|
||||
DOMAIN_HOST=checkmk.tudominio.com
|
||||
```
|
||||
|
||||
3. **Deploy** y espera 2-3 minutos (CheckMK inicializa el site)
|
||||
|
||||
4. **Accede** según tu proxy inverso:
|
||||
- Con Traefik: `https://checkmk.tudominio.com/monitoring/`
|
||||
- Con NPM: Configura proxy host primero (ver [NPM](NPM))
|
||||
|
||||
5. **Login**:
|
||||
- Usuario: `cmkadmin`
|
||||
- Contraseña: La que configuraste en `CMK_PASSWORD`
|
||||
|
||||
---
|
||||
|
||||
## 📦 Arquitectura
|
||||
|
||||
### Stack Docker
|
||||
|
||||
```
|
||||
┌─────────────────────┐
|
||||
│ Traefik / NPM │ ← Puerto 443 (HTTPS)
|
||||
└──────────┬──────────┘
|
||||
│
|
||||
┌──────────▼──────────┐
|
||||
│ CheckMK │ ← Puerto 5000 (interno)
|
||||
│ (check-mk-raw) │
|
||||
└──────────┬──────────┘
|
||||
│
|
||||
┌──────────▼──────────┐
|
||||
│ checkmk_data │ ← Volumen persistente
|
||||
│ (/omd/sites) │
|
||||
└─────────────────────┘
|
||||
```
|
||||
|
||||
### Componentes
|
||||
|
||||
- **CheckMK**: Aplicación web (puerto 5000)
|
||||
- **Site**: Instancia de monitorización (ID: `monitoring`)
|
||||
- **Proxy**: Traefik o NPM para HTTPS
|
||||
|
||||
### Volúmenes
|
||||
|
||||
- `checkmk_data`: Configuración, históricos, RRD databases
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Próximos Pasos
|
||||
|
||||
1. **Elige tu modo de despliegue**:
|
||||
- [Traefik](Traefik) - Recomendado para múltiples servicios
|
||||
- [NPM](NPM) - Más simple para configurar
|
||||
|
||||
2. **Configura CheckMK**:
|
||||
- [Configuración Inicial](Configuración-Inicial) - Cambiar contraseña, timezone
|
||||
- [Monitorización](Monitorización) - Añadir tus primeros hosts
|
||||
|
||||
3. **Automatiza backups**:
|
||||
- [Backup y Restauración](Backup-y-Restauración) - Scripts de backup automáticos
|
||||
|
||||
---
|
||||
|
||||
## 📚 Recursos Externos
|
||||
|
||||
- [CheckMK Documentación Oficial](https://docs.checkmk.com/)
|
||||
- [CheckMK Community](https://forum.checkmk.com/)
|
||||
- [CheckMK GitHub](https://github.com/tribe29/checkmk)
|
||||
|
||||
228
Monitorización.md
Normal file
228
Monitorización.md
Normal file
@@ -0,0 +1,228 @@
|
||||
# Monitorización
|
||||
|
||||
Guía completa para añadir hosts y configurar monitorización en CheckMK.
|
||||
|
||||
## Añadir Host Linux
|
||||
|
||||
### Con Agente CheckMK
|
||||
|
||||
1. **En CheckMK**: **Setup → Hosts → Add host**
|
||||
- **Hostname**: `servidor01.example.com`
|
||||
- **IPv4 address**: `192.168.1.10`
|
||||
- **Site**: `monitoring`
|
||||
- **Monitoring agents**: `Check_MK Agent (Server)`
|
||||
- **Save & go to service configuration**
|
||||
|
||||
2. **En el servidor Linux**:
|
||||
|
||||
```bash
|
||||
# Descargar agente
|
||||
wget https://checkmk.tudominio.com/monitoring/check_mk/agents/check-mk-agent_2.x.x-1_all.deb
|
||||
|
||||
# Instalar (Debian/Ubuntu)
|
||||
sudo dpkg -i check-mk-agent_*.deb
|
||||
|
||||
# O para RHEL/CentOS
|
||||
sudo rpm -i check-mk-agent-*.rpm
|
||||
|
||||
# Verificar instalación
|
||||
systemctl status check-mk-agent@
|
||||
|
||||
# Permitir conexión desde CheckMK
|
||||
# El agente escucha en puerto 6556
|
||||
sudo firewall-cmd --add-port=6556/tcp --permanent
|
||||
sudo firewall-cmd --reload
|
||||
```
|
||||
|
||||
3. **En CheckMK**: **Discover services**
|
||||
- Click **Full scan**
|
||||
- Revisa servicios detectados
|
||||
- **Accept all**
|
||||
- **Activate changes**
|
||||
|
||||
---
|
||||
|
||||
## Añadir Host Windows
|
||||
|
||||
1. **En CheckMK**: **Setup → Hosts → Add host**
|
||||
- Configuración igual que Linux
|
||||
- **Monitoring agents**: `Check_MK Agent (Server)`
|
||||
|
||||
2. **En el servidor Windows**:
|
||||
- Descarga `check_mk_agent.msi` desde CheckMK
|
||||
- Ejecuta el instalador
|
||||
- Configura IP/hostname del servidor CheckMK
|
||||
- El agente se instala como servicio de Windows
|
||||
|
||||
3. **Firewall Windows**:
|
||||
- Permite puerto TCP 6556 entrante
|
||||
- O el instalador lo hace automáticamente
|
||||
|
||||
4. **En CheckMK**: **Discover services** y **Activate changes**
|
||||
|
||||
---
|
||||
|
||||
## Añadir Dispositivo SNMP
|
||||
|
||||
### Switch/Router
|
||||
|
||||
1. **Habilitar SNMP en el dispositivo**:
|
||||
|
||||
```
|
||||
# Cisco IOS example
|
||||
snmp-server community public RO
|
||||
snmp-server location "Datacenter Madrid"
|
||||
snmp-server contact "admin@example.com"
|
||||
```
|
||||
|
||||
2. **En CheckMK**: **Setup → Hosts → Add host**
|
||||
- **Hostname**: `switch01.example.com`
|
||||
- **IPv4 address**: `192.168.1.1`
|
||||
- **Monitoring agents**: `SNMP`
|
||||
- **SNMP community**: `public` (o tu community)
|
||||
- **SNMP version**: `v2c`
|
||||
- **Save & go to service configuration**
|
||||
|
||||
3. **Discover services** y **Activate changes**
|
||||
|
||||
### Impresora de Red
|
||||
|
||||
Similar a switches:
|
||||
- **Monitoring agents**: `SNMP`
|
||||
- CheckMK detecta automáticamente niveles de tóner, papel, etc.
|
||||
|
||||
---
|
||||
|
||||
## Monitorización Docker
|
||||
|
||||
### Opción 1: Agente en Host Docker
|
||||
|
||||
Instala agente CheckMK en el host que corre Docker. Detectará automáticamente contenedores.
|
||||
|
||||
### Opción 2: Plugin Docker
|
||||
|
||||
```bash
|
||||
# En el host Docker, instala plugin
|
||||
cd /usr/lib/check_mk_agent/plugins
|
||||
wget https://checkmk.tudominio.com/monitoring/check_mk/agents/plugins/mk_docker.py
|
||||
chmod +x mk_docker.py
|
||||
```
|
||||
|
||||
Esto monitoriza:
|
||||
- Contenedores corriendo
|
||||
- Uso de CPU/RAM por contenedor
|
||||
- Estado de imágenes y volúmenes
|
||||
|
||||
---
|
||||
|
||||
## Dashboards
|
||||
|
||||
### Crear Dashboard
|
||||
|
||||
**Customize → Dashboards → Add dashboard**:
|
||||
|
||||
1. **ID**: `overview`
|
||||
2. **Title**: `Resumen General`
|
||||
3. **Add dashlet**:
|
||||
- **Host statistics**: Muestra hosts UP/DOWN
|
||||
- **Service statistics**: Muestra servicios OK/WARNING/CRITICAL
|
||||
- **Top alerters**: Hosts con más problemas
|
||||
- **Performance graphs**: CPU, RAM, disco
|
||||
4. **Save**
|
||||
|
||||
### Dashlets Útiles
|
||||
|
||||
- **Host/Service statistics**: Resumen de estado
|
||||
- **Average scatterplot**: Gráficos de rendimiento
|
||||
- **Event bar chart**: Eventos por tiempo
|
||||
- **Custom graph**: Gráficos personalizados
|
||||
- **View**: Vistas personalizadas
|
||||
|
||||
---
|
||||
|
||||
## Grupos
|
||||
|
||||
### Crear Grupos de Hosts
|
||||
|
||||
**Setup → Hosts → Host groups → Add group**:
|
||||
|
||||
- **Name**: `servidores-web`
|
||||
- **Alias**: `Servidores Web`
|
||||
|
||||
Al añadir hosts, asígnalos a grupos:
|
||||
- **Host tags**: `Prod`, `Web`, `Critical`
|
||||
- **Host groups**: Seleccionar grupos
|
||||
|
||||
### Grupos de Servicios
|
||||
|
||||
Similar a host groups, para organizar servicios.
|
||||
|
||||
---
|
||||
|
||||
## Checks Personalizados
|
||||
|
||||
### Local Check (Script Bash)
|
||||
|
||||
En el host monitoreado:
|
||||
|
||||
```bash
|
||||
# Crear script en /usr/lib/check_mk_agent/local/
|
||||
cat > /usr/lib/check_mk_agent/local/custom_check.sh << 'EOF'
|
||||
#!/bin/bash
|
||||
# CheckMK local check format: STATUS NAME METRICS|OUTPUT
|
||||
|
||||
if [ $(df / | tail -1 | awk '{print $5}' | sed 's/%//') -gt 90 ]; then
|
||||
echo "2 DiskRoot - Disco raíz > 90%"
|
||||
else
|
||||
echo "0 DiskRoot size=85% Disco raíz OK"
|
||||
fi
|
||||
EOF
|
||||
|
||||
chmod +x /usr/lib/check_mk_agent/local/custom_check.sh
|
||||
```
|
||||
|
||||
En CheckMK, **Discover services** detectará `DiskRoot`.
|
||||
|
||||
---
|
||||
|
||||
## Thresholds (Umbrales)
|
||||
|
||||
### Configurar Umbrales
|
||||
|
||||
**Setup → Hosts → Service monitoring rules**:
|
||||
|
||||
1. Busca el servicio (ej: `CPU utilization`)
|
||||
2. **Create rule**
|
||||
3. **Conditions**:
|
||||
- **WARNING**: `80%`
|
||||
- **CRITICAL**: `95%`
|
||||
4. **Apply to**: Seleccionar hosts/grupos
|
||||
5. **Save** y **Activate changes**
|
||||
|
||||
---
|
||||
|
||||
## Business Intelligence (BI)
|
||||
|
||||
### Crear Agregación BI
|
||||
|
||||
**Setup → Business Intelligence → Add aggregation**:
|
||||
|
||||
Ejemplo: Disponibilidad de aplicación web
|
||||
|
||||
1. **ID**: `webapp-availability`
|
||||
2. **Title**: `Aplicación Web`
|
||||
3. **Tree structure**:
|
||||
- Nodo raíz: `WebApp`
|
||||
- Nodo hijo: `Servidor Web` (host: web01)
|
||||
- Nodo hijo: `Base de Datos` (host: db01)
|
||||
- Nodo hijo: `Balanceador` (host: lb01)
|
||||
4. **Aggregation function**: `Best` (OK si al menos uno está OK)
|
||||
5. **Save**
|
||||
|
||||
---
|
||||
|
||||
## Próximos Pasos
|
||||
|
||||
1. **[Backup](Backup-y-Restauración)** - Automatiza backups
|
||||
2. **[Configuración Inicial](Configuración-Inicial)** - Notificaciones
|
||||
3. **Explora** - Crea más dashboards y vistas
|
||||
143
NPM.md
Normal file
143
NPM.md
Normal file
@@ -0,0 +1,143 @@
|
||||
# Despliegue con NPM
|
||||
|
||||
Guía para desplegar CheckMK con Nginx Proxy Manager.
|
||||
|
||||
## Requisitos
|
||||
|
||||
- NPM desplegado y accesible
|
||||
- Red Docker `proxy` creada
|
||||
- DNS apuntando al servidor
|
||||
|
||||
---
|
||||
|
||||
## Pasos de Despliegue
|
||||
|
||||
### 1. Desplegar CheckMK
|
||||
|
||||
En Portainer, crea el stack **sin archivo override** (solo `docker-compose.yml`):
|
||||
|
||||
**Variables de entorno**:
|
||||
```env
|
||||
CMK_PASSWORD=password_generado
|
||||
DOMAIN_HOST=checkmk.tudominio.com
|
||||
```
|
||||
|
||||
### 2. Configurar Proxy Host en NPM
|
||||
|
||||
1. Accede a NPM (ej: `https://npm.tudominio.com`)
|
||||
2. Ve a **Hosts** → **Proxy Hosts** → **Add Proxy Host**
|
||||
|
||||
#### Pestaña Details
|
||||
|
||||
- **Domain Names**: `checkmk.tudominio.com`
|
||||
- **Scheme**: `http`
|
||||
- **Forward Hostname / IP**: `checkmk`
|
||||
- **Forward Port**: `5000`
|
||||
- ✅ **Cache Assets**: Activado
|
||||
- ✅ **Block Common Exploits**: Activado
|
||||
- ✅ **Websockets Support**: Activado
|
||||
|
||||
#### Pestaña SSL
|
||||
|
||||
- **SSL Certificate**: `Request a new SSL Certificate`
|
||||
- **Email**: tu@email.com
|
||||
- ✅ **Force SSL**: Activado
|
||||
- ✅ **HTTP/2 Support**: Activado
|
||||
- ✅ **HSTS Enabled**: Activado (opcional)
|
||||
|
||||
3. **Save**
|
||||
|
||||
### 3. Verificar
|
||||
|
||||
- Accede a `https://checkmk.tudominio.com/monitoring/`
|
||||
- Verifica el certificado SSL (candado verde)
|
||||
- Login con `cmkadmin` / `password_generado`
|
||||
|
||||
---
|
||||
|
||||
## Comparativa Traefik vs NPM
|
||||
|
||||
| Aspecto | Traefik | NPM |
|
||||
|---------|---------|-----|
|
||||
| **Configuración** | Labels en compose | UI web |
|
||||
| **SSL** | Automático | Manual por dominio |
|
||||
| **Dificultad** | Media | Fácil |
|
||||
| **Renovación SSL** | Automática | Automática |
|
||||
| **Multi-dominio** | Excelente | Bueno |
|
||||
| **Recomendado para** | Múltiples servicios | Pocos servicios |
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Error 502 Bad Gateway
|
||||
|
||||
**Verificar**:
|
||||
```bash
|
||||
# CheckMK corriendo
|
||||
docker ps | grep checkmk
|
||||
|
||||
# CheckMK en red proxy
|
||||
docker inspect checkmk | grep -A 5 Networks
|
||||
|
||||
# Site iniciado
|
||||
docker exec checkmk omd status
|
||||
```
|
||||
|
||||
**Soluciones**:
|
||||
- Verificar que CheckMK está en red `proxy`
|
||||
- Reiniciar CheckMK: `docker restart checkmk`
|
||||
- Verificar que el puerto es `5000`, no `80`
|
||||
|
||||
### Error 404 al acceder
|
||||
|
||||
**Problema**: NPM redirige correctamente pero da 404
|
||||
|
||||
**Solución**: Añade `/monitoring/` al final del dominio:
|
||||
```
|
||||
https://checkmk.tudominio.com/monitoring/
|
||||
```
|
||||
|
||||
O configura redirect en NPM **Custom locations**:
|
||||
- **Define location**: `/`
|
||||
- **Forward Hostname / IP**: `checkmk`
|
||||
- **Forward Port**: `5000`
|
||||
- **Forward Scheme**: `http`
|
||||
|
||||
### Certificado SSL falla
|
||||
|
||||
**Soluciones**:
|
||||
- Verificar DNS apunta correctamente
|
||||
- Intentar con DNS Challenge si puertos 80/443 bloqueados
|
||||
- Regenerar certificado en NPM UI
|
||||
|
||||
---
|
||||
|
||||
## Configuración Avanzada
|
||||
|
||||
### Custom Locations para Agentes
|
||||
|
||||
Si quieres servir agentes descargables directamente:
|
||||
|
||||
**Custom locations**:
|
||||
- **Define location**: `/monitoring/agents/`
|
||||
- **Forward Hostname / IP**: `checkmk`
|
||||
- **Forward Port**: `5000`
|
||||
|
||||
### Rate Limiting
|
||||
|
||||
Para proteger contra ataques, añade en NPM:
|
||||
|
||||
**Advanced** tab:
|
||||
```nginx
|
||||
limit_req_zone $binary_remote_addr zone=checkmk_limit:10m rate=10r/s;
|
||||
limit_req zone=checkmk_limit burst=20 nodelay;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Próximos Pasos
|
||||
|
||||
1. **[Configuración Inicial](Configuración-Inicial)** - Configurar CheckMK
|
||||
2. **[Monitorización](Monitorización)** - Añadir hosts
|
||||
3. **[Backup](Backup-y-Restauración)** - Automatiza backups
|
||||
430
Solución-de-Problemas.md
Normal file
430
Solución-de-Problemas.md
Normal file
@@ -0,0 +1,430 @@
|
||||
# Solución de Problemas
|
||||
|
||||
Diagnóstico y resolución de problemas comunes en CheckMK.
|
||||
|
||||
## Diagnóstico General
|
||||
|
||||
### Ver Logs
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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**:
|
||||
```bash
|
||||
docker logs checkmk | grep -i error
|
||||
docker logs checkmk | grep -i fatal
|
||||
```
|
||||
|
||||
**Causas comunes**:
|
||||
|
||||
1. **Volumen corrupto**
|
||||
```bash
|
||||
docker exec checkmk omd check
|
||||
```
|
||||
**Solución**: Restaurar desde backup
|
||||
|
||||
2. **Permisos incorrectos**
|
||||
```bash
|
||||
docker exec checkmk ls -la /omd/sites
|
||||
```
|
||||
**Solución**:
|
||||
```bash
|
||||
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**:
|
||||
```bash
|
||||
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**:
|
||||
```bash
|
||||
# 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**:
|
||||
```bash
|
||||
docker exec checkmk omd status
|
||||
|
||||
# Ver qué servicio falla
|
||||
# Ejemplo salida:
|
||||
# cmcd: stopped
|
||||
# apache: running
|
||||
```
|
||||
|
||||
**Soluciones**:
|
||||
|
||||
1. **Reiniciar site completo**:
|
||||
```bash
|
||||
docker exec checkmk omd restart
|
||||
```
|
||||
|
||||
2. **Iniciar servicio específico**:
|
||||
```bash
|
||||
docker exec checkmk omd start cmc
|
||||
docker exec checkmk omd start apache
|
||||
```
|
||||
|
||||
3. **Verificar configuración**:
|
||||
```bash
|
||||
docker exec checkmk omd check
|
||||
```
|
||||
|
||||
4. **Reparar site (si está corrupto)**:
|
||||
```bash
|
||||
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**:
|
||||
|
||||
```bash
|
||||
# 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**:
|
||||
```bash
|
||||
# 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**:
|
||||
```bash
|
||||
# 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**:
|
||||
```bash
|
||||
# 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é**:
|
||||
```bash
|
||||
docker exec checkmk omd restart apache
|
||||
```
|
||||
|
||||
2. **Optimizar RRD databases**:
|
||||
```bash
|
||||
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`:
|
||||
```yaml
|
||||
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**:
|
||||
```bash
|
||||
# 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**:
|
||||
```bash
|
||||
docker exec checkmk cmk --update-rrds
|
||||
```
|
||||
|
||||
2. **Corregir permisos**:
|
||||
```bash
|
||||
docker exec checkmk chown -R monitoring:monitoring /omd/sites/monitoring/var/pnp4nagios
|
||||
```
|
||||
|
||||
### Notificaciones No Llegan
|
||||
|
||||
**Diagnóstico**:
|
||||
```bash
|
||||
# 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
|
||||
```bash
|
||||
docker exec checkmk telnet smtp.gmail.com 587
|
||||
```
|
||||
|
||||
3. **Verificar contactos asignados**:
|
||||
- **Setup → Hosts** → Verificar que hosts tienen contactos
|
||||
|
||||
---
|
||||
|
||||
## Comandos de Emergencia
|
||||
|
||||
### Reiniciar Todo
|
||||
|
||||
```bash
|
||||
# Reiniciar contenedor
|
||||
docker restart checkmk
|
||||
|
||||
# Reiniciar solo el site
|
||||
docker exec checkmk omd restart
|
||||
```
|
||||
|
||||
### Recrear Contenedor (Mantiene Datos)
|
||||
|
||||
```bash
|
||||
docker stop checkmk
|
||||
docker rm checkmk
|
||||
docker compose up -d checkmk
|
||||
```
|
||||
|
||||
### Acceso de Emergencia
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
- [CheckMK Documentation](https://docs.checkmk.com/)
|
||||
- [CheckMK Forum](https://forum.checkmk.com/)
|
||||
- [CheckMK GitHub Issues](https://github.com/tribe29/checkmk/issues)
|
||||
- [CheckMK Discord](https://discord.gg/fR7QEqV)
|
||||
|
||||
---
|
||||
|
||||
## 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](Backup-y-Restauración))
|
||||
- Prueba restauración mensualmente
|
||||
- Guarda backups en ubicación remota
|
||||
|
||||
---
|
||||
|
||||
## Próximos Pasos
|
||||
|
||||
1. **[Backup](Backup-y-Restauración)** - Automatiza backups para prevenir desastres
|
||||
2. **[Actualización](Actualización)** - Mantén CheckMK actualizado
|
||||
3. **[Comunidad](https://forum.checkmk.com/)** - Pregunta si no encuentras solución
|
||||
165
Traefik.md
Normal file
165
Traefik.md
Normal file
@@ -0,0 +1,165 @@
|
||||
# Despliegue con Traefik
|
||||
|
||||
Guía para desplegar CheckMK con Traefik como proxy inverso.
|
||||
|
||||
## Requisitos
|
||||
|
||||
- Stack de Traefik desplegado y funcionando
|
||||
- Red Docker `proxy` creada
|
||||
- DNS apuntando al servidor
|
||||
- Contraseña generada
|
||||
|
||||
---
|
||||
|
||||
## Despliegue desde Portainer
|
||||
|
||||
### 1. Configurar Variables
|
||||
|
||||
En Portainer, al crear el stack con **Git Repository**, configura:
|
||||
|
||||
**Environment variables**:
|
||||
```env
|
||||
# Contraseña requerida
|
||||
CMK_PASSWORD=tu_password_generado
|
||||
|
||||
# Site ID (opcional, default: monitoring)
|
||||
CMK_SITE_ID=monitoring
|
||||
|
||||
# Dominio (requerido)
|
||||
DOMAIN_HOST=checkmk.tudominio.com
|
||||
```
|
||||
|
||||
### 2. Subir Archivo Override
|
||||
|
||||
En Portainer, en la sección **Additional paths**:
|
||||
- Añade: `docker-compose.override.traefik.yml.example`
|
||||
|
||||
### 3. Desplegar
|
||||
|
||||
Click en **Deploy the stack** y espera 2-3 minutos.
|
||||
|
||||
### 4. Verificar
|
||||
|
||||
- Accede a `https://checkmk.tudominio.com/monitoring/`
|
||||
- Verifica certificado SSL (candado verde)
|
||||
- Login con `cmkadmin` / `tu_password`
|
||||
|
||||
---
|
||||
|
||||
## Compose Completo con Traefik
|
||||
|
||||
```yaml
|
||||
services:
|
||||
checkmk:
|
||||
container_name: checkmk
|
||||
image: checkmk/check-mk-raw:latest
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
CMK_SITE_ID: ${CMK_SITE_ID:-monitoring}
|
||||
CMK_PASSWORD: ${CMK_PASSWORD}
|
||||
volumes:
|
||||
- checkmk_data:/omd/sites
|
||||
networks:
|
||||
- proxy
|
||||
tmpfs:
|
||||
- /opt/omd/sites/${CMK_SITE_ID:-monitoring}/tmp:uid=1000,gid=1000
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.routers.checkmk-http.rule=Host(`${DOMAIN_HOST}`)
|
||||
- traefik.http.routers.checkmk-http.entrypoints=web
|
||||
- traefik.http.routers.checkmk-http.middlewares=redirect-to-https
|
||||
- traefik.http.routers.checkmk.rule=Host(`${DOMAIN_HOST}`)
|
||||
- traefik.http.routers.checkmk.entrypoints=websecure
|
||||
- traefik.http.routers.checkmk.tls=true
|
||||
- traefik.http.routers.checkmk.tls.certresolver=letsencrypt
|
||||
- traefik.http.routers.checkmk.service=checkmk-svc
|
||||
- traefik.http.services.checkmk-svc.loadbalancer.server.port=5000
|
||||
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
|
||||
- traefik.http.middlewares.redirect-to-https.redirectscheme.permanent=true
|
||||
|
||||
volumes:
|
||||
checkmk_data:
|
||||
name: checkmk_data
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Labels de Traefik
|
||||
|
||||
| Label | Valor | Descripción |
|
||||
|-------|-------|-------------|
|
||||
| `traefik.enable` | `true` | Habilita Traefik |
|
||||
| `Host(\`${DOMAIN_HOST}\`)` | Dominio | Dominio que responde |
|
||||
| `loadbalancer.server.port` | `5000` | Puerto interno CheckMK |
|
||||
| `tls.certresolver` | `letsencrypt` | SSL automático |
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Error 404 al acceder
|
||||
|
||||
**Problema**: Accedes a `https://checkmk.tudominio.com` y da 404
|
||||
|
||||
**Solución**: Añade `/monitoring/` al final:
|
||||
```
|
||||
https://checkmk.tudominio.com/monitoring/
|
||||
```
|
||||
|
||||
### CheckMK no responde
|
||||
|
||||
**Verificar**:
|
||||
```bash
|
||||
# CheckMK corriendo
|
||||
docker ps | grep checkmk
|
||||
|
||||
# Site iniciado
|
||||
docker exec checkmk omd status
|
||||
|
||||
# Logs
|
||||
docker logs checkmk --tail 100
|
||||
```
|
||||
|
||||
### Certificado SSL no funciona
|
||||
|
||||
**Verificar**:
|
||||
- DNS apunta correctamente al servidor
|
||||
- Traefik tiene configurado `letsencrypt` certresolver
|
||||
- Puertos 80/443 abiertos en firewall
|
||||
|
||||
---
|
||||
|
||||
## Configuración Avanzada
|
||||
|
||||
### Headers de Seguridad
|
||||
|
||||
Añade middleware en Traefik para headers de seguridad:
|
||||
|
||||
```yaml
|
||||
labels:
|
||||
- traefik.http.routers.checkmk.middlewares=secure-headers@file
|
||||
```
|
||||
|
||||
En `traefik/config/middlewares.yml`:
|
||||
```yaml
|
||||
http:
|
||||
middlewares:
|
||||
secure-headers:
|
||||
headers:
|
||||
stsSeconds: 31536000
|
||||
stsIncludeSubdomains: true
|
||||
stsPreload: true
|
||||
forceSTSHeader: true
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Próximos Pasos
|
||||
|
||||
1. **[Configuración Inicial](Configuración-Inicial)** - Configurar CheckMK
|
||||
2. **[Monitorización](Monitorización)** - Añadir hosts
|
||||
3. **[Backup](Backup-y-Restauración)** - Automatiza backups
|
||||
17
_Sidebar.md
Normal file
17
_Sidebar.md
Normal file
@@ -0,0 +1,17 @@
|
||||
## CheckMK Wiki
|
||||
|
||||
### 🚀 Inicio
|
||||
- [Home](Home)
|
||||
|
||||
### 📦 Despliegue
|
||||
- [Traefik](Traefik)
|
||||
- [NPM](NPM)
|
||||
|
||||
### ⚙️ Configuración
|
||||
- [Configuración Inicial](Configuración-Inicial)
|
||||
- [Monitorización](Monitorización)
|
||||
|
||||
### 💾 Mantenimiento
|
||||
- [Backup y Restauración](Backup-y-Restauración)
|
||||
- [Actualización](Actualización)
|
||||
- [Solución de Problemas](Solución-de-Problemas)
|
||||
Reference in New Issue
Block a user