Files
dtic-DIIAA/docs/ambito/dtic-BKPs/A03.P002_Automatizacion_Backups.md
T
Ricardo Monla 12aede9d5e 🔧 Core & Ámbitos: Commit general de mejoras y nodos pendientes
- Docs: A03 BKP updates y nuevo manifiesto nodo dasu-sql4
- W-Zombi: Nuevas rutas explícitas (exec.rb, ps1.rb) y estado stateful (cmd.json)
- Bóveda: candados/.boveda.json modificados al agregar nuevos servidores (sql2, sql3)
- Cleanup: Remover token .session de candados
- Core API: Fixes en Bitacora_db
2026-04-09 22:23:00 -03:00

89 lines
4.5 KiB
Markdown

# Plan: Automatización de Backups de Servidores
> **Grupo de Trabajo:** dtic-BKPs (Respaldos de Infraestructura)
**Código:** A03.P002
**Fecha:** 06 de abril de 2026
**Autor:** Sistema ADN
**Versión:** 1.2
**Estado:** ✅ COMPLETADO (F4.1 alertas pendiente futura iteración)
**Dependencia:** [A03.P001 — Migración a Tools ADN](A03.P001_Migracion_ADN.md) ✅
**Última verificación:** 2026-04-09 08:40 (dron activos: XEN01 en procesamiento)
## 📋 Resumen Ejecutivo
Automatizar el ciclo completo de backups de servidores virtualizados (XenServer y Proxmox). Gracias a la migración completada en A03.P001, ya se cuenta con:
- CLI unificada: `./adn/tools/run bkps <subcomando>` (11 subcomandos)
- Modo batch: `bkps run C4 --batch` (pipeline completo sin interacción)
- Saneamiento: `bkps sanear --dias N` (limpieza con retención)
- Backup individual: `bkps backup <nodo>` (vzdump remoto)
- Monitoreo: `bkps estados` (estado Proxmox en tiempo real)
- Delegación: `dron lanzar --evento ID -- <comando>` (auto-cierre bitácora)
El objetivo de este plan es llevar esas capacidades a ejecución **programada y desatendida** con registro automático, notificaciones y políticas de retención.
## 🎯 Objetivo
1. **Ejecución programada** — Cron jobs en horarios de baja carga sin intervención.
2. **Registro automático en bitácora** — Cada ejecución crea/cierra su evento vía `dron`.
3. **Notificaciones** — Alertas por resultado (éxito/fallo).
4. **Rotación y limpieza** — Políticas de retención automatizadas vía `bkps sanear`.
5. **Monitoreo de salud** — Reporte de estado ampliado en `bkps status`.
## 📅 Fases de Implementación
### ✅ FASE 1: Ejecución No-Interactiva (Completada — heredada de A03.P001)
- **1.1:** ✅ `bkps run C4 --batch` — pipeline completo sin interacción.
- **1.2:** ✅ Logging con métricas: duración por tarea (▶→✔ Xm Ys) + total + conteo de fallos.
- **1.3:** ✅ Auto-cierre de bitácora vía `dron lanzar --evento ID -- <comando>`.
### ✅ FASE 2: Programación y Orquestación (Completada 2026-04-06)
- **2.1:** ✅ Cron wrapper: `adn/tools/bkps/cron-bkps.sh C4 "nota"`.
- **2.2:** ✅ Lockfile en `tmp/locks/bkps_<ref>.lock` (auto-cleanup, stale detection).
- **2.3:** ✅ Integración dron: bitácora automática (evento:crear + auto-cierre con resultado).
```bash
# Ejemplo cron nocturno con bitácora automática
./adn/tools/run dron lanzar --evento AUTO --nota "Cron: backup nocturno C4" -- ./adn/tools/run bkps run C4 --batch
```
### ✅ FASE 3: Retención y Limpieza Automática (Completada 2026-04-06)
- **3.1:** ✅ Retención 3 tiers en YAML: Proxmox (zfsDISCO1), Local (ns8Disco3), Nube (rmOneDrive).
- **3.2:** ✅ `bkps sanear` con protección 🛡️ más reciente por nodo por tier.
- **3.3:** ✅ `bkps buscar <nodo>` — localizar backups en los 3 tiers.
- **3.4:** ✅ C5 (`full_full_sanear`) con post-sanear automático.
### ✅ FASE 4: Notificaciones y Monitoreo (Completada 2026-04-06)
- **4.1:** ⏳ Alertas por fallo (email/webhook) — pendiente futura iteración.
- **4.2:** ✅ `bkps status` ampliado: herramientas, espacio disco, retención configurada.
- **4.3:** ✅ Bitácora web ya muestra eventos de backups vía `dron` auto-cierre.
## 🛠 Herramientas Disponibles (heredadas de A03.P001)
| Comando | Función |
| :--- | :--- |
| `bkps run C4 --batch` | Pipeline completo sin interacción |
| `bkps backup <nodo>` | Backup individual vzdump remoto |
| `bkps buscar <nodo>` | Localizar backups en 3 tiers |
| `bkps estados` | Estado Proxmox en tiempo real |
| `bkps sanear` | Sanear 3 tiers con protección por nodo |
| `bkps sanear --tier N` | Sanear tier específico |
| `bkps status` | Estado del sistema + espacio disco |
| `dron lanzar --evento ID/AUTO -- <cmd>` | Auto-cierre de bitácora |
| `dron flota` | Dashboard de flota |
| `dron salud` | Health check (zombies/estancados) |
## 🛸 Estado de Drones (Verificación 2026-04-06)
**Flota:** 2 drones completados y limpiados
- `dron_125106_654316` — Evento #1395: "Test diario de vuelo" → ✔ OK (0min)
- `dron_125505_657901` — Evento #1398: "Test diario v2" → ✔ OK
**Diagnóstico:** Ambos drones completaron exitosamente pero quedaron como "zombies" (PID muerto, estado=vigilando). El health check los auto-reparó marcándolos como fallidos y `dron limpiar` los removió.
**Conclusión:** Sistema de auto-reparación funciona correctamente. Verificar flota al inicio de sesión:
```bash
./adn/tools/run dron salud # Detecta y auto-repara zombies
./adn/tools/run dron limpiar # Remueve completados
```