Saltar a contenido

Runbook: Recuperar servicio Docker

Plantilla de recuperación de servicios

# Runbook: Recuperación de [NOMBRE SERVICIO]

## Propósito
Recuperar [nombre del servicio] tras una caída o mal funcionamiento.

## Síntomas
- [Síntoma 1]
- [Síntoma 2]

## Prerrequisitos
- Acceso SSH al servidor
- Acceso al directorio `/opt/[servicio]/`
- Credenciales en vault (ver inventario/credenciales.md)

## Procedimiento

### 1. Verificar estado del servicio
```bash
cd /opt/[servicio]
docker compose ps
docker compose logs --tail=50

2. Verificar conectividad

curl -I http://localhost:[puerto]
ping [servidor-dependencia]

3. Intentar reinicio

docker compose restart

4. Si no funciona, recrear contenedor

docker compose down
docker compose pull
docker compose up -d

5. Verificar logs después del reinicio

docker compose logs -f --tail=30

6. Validar funcionalidad

  • Servicio responde en puerto [puerto]
  • Logs sin errores críticos
  • Acceso desde navegador/cliente funciona
  • Monitoreo reporta estado OK

Rollback

Si la recuperación falla:

# Restaurar compose.yml desde backup
# Restaurar data/ desde PBS
docker compose down
docker compose up -d

Post-recuperación

  • Registrar en bitácora de incidentes
  • Verificar backups recientes
  • Notificar a usuarios afectados
    ## Runbook: Recuperar servicio genérico
    
    ### 1. Diagnóstico inicial
    ```bash
    # Verificar conectividad del servidor
    ping -c 3 servidor
    
    # SSH al servidor
    ssh usuario@servidor
    
    # Estado general
    htop
    df -h
    docker ps
    

2. Verificar logs del servicio

cd /opt/servicio-afectado
docker compose logs --tail=100 | grep -i error

3. Verificar recursos del sistema

# Disco
df -h
du -sh /var/lib/docker/

# Memoria
free -h

# Docker
docker system df

4. Acciones correctivas

Problema: Disco lleno

docker image prune -f
docker system prune -f
sudo journalctl --vacuum-size=500M

Problema: Contenedor crash loop

docker compose logs servicio
docker compose down
docker compose up -d

Problema: Puerto en uso

ss -tlnp | grep [PUERTO]
docker compose down
# Esperar 5s
docker compose up -d

5. Validación final

  • Servicio responde en URL esperada
  • Logs sin errores
  • Monitoreo externo reporta OK
  • Funcionalidad probada manualmente