En entornos virtualizados con VMware vSphere, el cumplimiento de los Acuerdos de Nivel de Servicio (SLA) es una métrica clave. No basta con saber que los backups “se hicieron”; los stakeholders necesitan saber qué máquinas están fuera de su RPO (Recovery Point Objective) de forma clara y procesable.
En este post vamos a construir un script de PowerShell que extrae datos directamente de Veeam Backup & Replication para generar un reporte de cumplimiento dinámico.
Que vamos a medir?
Para este reporte, definiremos que una VM cumple el SLA si tiene un punto de restauración válido dentro de las últimas 24 horas (este valor es ajustable en el script).
Beneficios de esta Estrategia
- Sin Costo Adicional: No necesitas licencias de Veeam ONE si solo buscas métricas básicas de cumplimiento.
- Personalización Total: Puedes filtrar por Nombres de Job, por carpetas de VMware o incluso por Tags de vSphere.
- Auditoría: Mantener un histórico de estos reportes es vital para auditorías de cumplimiento (ISO 27001, por ejemplo).
Requisitos previos
- PowerShell v7
- Tener instalado el Veeam PowerShell Module (incluido en la consola de Veeam).
- Permisos de lectura en el servidor de Veeam Backup & Replication.
- Entorno de VMware vSphere conectado a Veeam.
Conectar con Veeam Backup desde PowerShell
El script debe ejecutarse en un equipo que tenga instalada la Consola de Veeam Backup & Replication. Esto es vital porque la consola instala los binarios y el módulo de PowerShell necesarios.
- Opción A: Ejecutarlo directamente en el servidor de Veeam (para la version Windows)
- Opción B: Ejecutarlo desde tu PC, siempre que tengas instalada la consola de Veeam y conectividad con el servidor Veeam Backup.
Abrir la consola de PowerShell v7, y ejecutar los siguientes comandos para conectarse con la instancia de Veeam Backup Server (opcionalmente la conexión se puede hacer directamente desde el script de PowerShell, como se verá más adelante)
El Script de PowerShell
A continuación, presentamos el bloque de código principal. Este script recorre todas las VMs procesadas y compara su último backup con la hora actual.
Visualización y Automatización
- Salida en Formato HTML Dinámico: Para que el reporte sea legible para directores hemos configurado una salida en formato HTML. Opcionalmente es posible configurar una salida en formato CSV o a traves de la misma consola PowerShell.
- Programación mediante Task Scheduler: La verdadera magia ocurre cuando automatizas este reporte. Puedes configurar una Tarea Programada en Windows para que el script se ejecute cada mañana a las 8:00 AM y envíe el resultado por correo electrónico usando
Send-MailMessage.
Mejores Prácticas
- Excluir VMs Replicadas: Si usas Replicación además de Backup, asegúrate de filtrar los puntos de restauración para no duplicar datos en el reporte.
- Manejo de Errores: Añade bloques
Try-Catchpara gestionar situaciones donde el servidor de Veeam no responda o la sesión haya expirado. - Uso de Tags: En infraestructuras de gran tamaño, usa vSphere Tags para definir diferentes niveles de SLA (Bronce: 48h, Plata: 24h, Oro: 4h) y adapta el script para leer esos tags.
Conclusión
Automatizar el reporte de SLAs con PowerShell no solo ahorra tiempo, sino que elimina el error humano en la supervisión de la infraestructura. Con este script, pasas de ser un administrador reactivo a uno proactivo que identifica brechas de protección antes de que se conviertan en un problema.



Get Social