Files
save-url-main/documentacion/07_RUNBOOK_OPERACION.md
2026-05-09 14:20:17 -04:00

67 lines
2.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Runbook de operación
## Objetivo operacional
Mantener la sincronización:
- FTP (archivos del mes/carpeta) → SQL Server (`URL_FTP`)
con observabilidad en Kafka y alerta por webhook.
## Qué esperar en una ejecución “sana”
Por cada item en `INFORMATIONS` se esperan, en logs de Airflow:
- `✅ FTP ... <N> archivos en <code_folder>`
- `✅ SQL ... <M> registros existentes`
- `️ DIFF ... A insertar: <K>`
- `✅ INSERT ... Insertados: <K>` (o warning de “Sin registros nuevos”)
Al final:
- `⏹ FINALIZADO ...`
## Inputs críticos (pre-flight)
- **Airflow Variables** existen y tienen valores válidos:
- FTP: `FTP_000oqta_SERVER`, `FTP_000oqta_USER`, `FTP_000oqta_PASSWORD`
- SQL: `DB_MSSQ_SERVER`, `DB_MSSQ_USER`, `DB_MSSQ_PASSWORD`
- Kafka: `BOOTSTRAP_SERVERS_DOCKER`, `KAFKA_USE_SSL`
- Webhook: `WEBHOOK_URL_NOTIFICATION`
- El worker donde corre el DAG tiene:
- driver ODBC 18 instalado
- conectividad a FTP/SQL/Kafka/webhook
## Procedimiento ante incidentes (rápido)
1. Revisar logs del task `save_url_ftp` en Airflow.
2. Identificar el “BD lógico” afectado (ej. `glm_pmi`, `IS001`, etc.).
3. Clasificar el fallo:
- FTP (login, path, listing)
- SQL (conexión, permisos, tabla)
- INSERT (schema/constraint)
- Kafka (broker/SSL/SASL)
- Webhook (endpoint caído / 4xx/5xx)
4. Ejecutar acciones según tipo (ver `08_TROUBLESHOOTING.md`).
## Operación programada del DAG
El DAG corre cada 2 horas (`0 */2 * * *`).
Si necesitas ejecución manual:
- Ejecuta el task `save_url_ftp` desde la UI de Airflow (Trigger DAG / Run Task).
## Indicadores recomendados (SLOs simples)
- **Frescura**: últimas URLs del FTP aparecen en SQL < 24 horas.
- **Cobertura**: por cada item, `A insertar` tiende a 0 tras una corrida exitosa.
- **Errores**: tasa de `FAILED` por item debe ser baja; si sube, revisar conectividad o cambios de naming en FTP.
## Mantenimiento preventivo
- Revisar que `FTP_BASE_PATH` (año) sea correcto cuando cambie el año.
- Verificar que las rutas/certificados SSL (si aplica) sean válidos dentro del contenedor.
- Confirmar que el naming en FTP siga el patrón esperado (contiene `_{YYYY}-{MM}` e `identity_id`).