
Saludos amigos, hoy os traigo una entrada muy interesante, se trata de la monitorización de trabajos de Veeam Backup & Replication en PRTG.Este impresionante trabajo es obra de Markus Kraus de My Cloud-(R)evolution, que además es Veeam Vanguard.
Gracias a esta integración queremos conseguir:
- Un reporte granular y en nuestro PRTG de múltiples servidores de Veeam Backup & Replication
- Estadísticas detalladas
- Alertas detalladas
Requisitos en el servidor de Veeam Backup & Replication
Necesitamos estar ejecutando Veeam Backup & Replication v9 o superior, eso es todo, con este nuevo Script no necesitamos Enterprise Manager o similar.
Requisitos en el servidor de PRTG
Lo primero será tener una licencia de PRTG, si aún no la tenéis hacer click aquí, ¡100 sensores gratis! Aquí tenemos que tener bastante cuidado y seguir todos los pasos de manera correcta, ya que si algún paso lo hacemos mal, tendremos errores a la hora de monitorizar Veeam con PRTG.
- Nota1: El Script, y la aplicación que tenemos que descargar están pensados para equipos de 64 bits, por lo que si tienes PRTG en 32 bits, este tutorial no es para ti.
- Nota2: El equipo de PRTG tiene que tener instalada la Veeam Remote Console, que no solamente nos otorga la consola en sí, si no que también incluye las herramientas de Powershell y el Veeam powershell Snapin.
- Nota3: En caso de que tengamos PRTG Probes, hay que instalar el PSx64 y Veeam Console en todos los Probes
- Nota4: La Veeam Remote Console instalada tiene que ser la misma versión, exacta, que el servidor de Veeam
Por ejemplo en mi caso he instalado la consola remota para Veeam 9.5 en el server de PRTG, y al intentar conectar a mi server he tenido que actualizarla:
- Nota5: El Server de Veeam y el de PRTG deben tener el mismo usuario y password, que en un entorno de AD suele suceder, tenerlo en cuenta.
Descargando la herramienta gratuita PSx64 y el Script PRTG-VeeamBRStats.ps1
Veeam Powershell ejecuta todos los scripts en 64bits, pero PRTG sin embargo lo hace en 32 bits, por lo que necesitaremos la herramienta gratuita llamada PSx64, disponible aquí.
Una vez descargamos el fichero, lo ubicaremos en el Probe, o server de PRTG en la ruta: C:\Program Files (x86)\PRTG Network Monitor\custom sensors\EXEXML\ de esta manera:
Nos iremos ahora hasta el github de Markus Kraus y descargaremos la última versión del script llamado PRTG-VeeamBRStats.ps1
- https://github.com/mycloudrevolution/Advanced-PRTG-Sensors/tree/master/Veeam
- El fichero se encuentra aquí con link directo
Este PRTG-VeeamBRStats.ps1 tiene que quedar también dentro del directorio C:\Program Files (x86)\PRTG Network Monitor\custom sensors\EXEXML\
Una buena práctica que podemos hacer si tenemos solo un server de Veeam es editar el fichero PRTG-VeeamBRStats.ps1 y editar la línea 29 con nuestro server de Veeam:
[string] $BRHost = "veeam01.lan.local",
Realizando comprobaciones desde Powershell en el server de PRTG
Si todo ha ido bien, ahora podremos ya lanzar un breve test para comprobar que nuestro Script puede ejecutarse, desde la Powershell, lanzar el siguiente comando:
PSx64.exe -f="PRTG-VeeamBRStats.ps1"
Si todo va bien, deberíamos ver lo siguiente
Configurando el Server de Veeam en PRTG
¡El último paso! Ya podemos irnos a nuestra consola de PRTG y crear un nuevo sensor para nuestro Host de Veeam. Tendremos que seleccionar que sea del tipo EXE/Script Advanced
Y lo configuraremos de la siguiente manera, ¡ojo a los detalles!
Y pasados unos segundos ya podremos ver el resultado del sensor:
Y con esto podremos editar los warning, mensajes y máximos para todos los campos tales como Failed Backups, Trabajos en Warning, etc. Muy, ¡muy útil!



Hola.
Hemos configurado el sensor en nuestro entorno y ejecutar el script nos tarda 20 minutos, con lo que no lo vemos muy viable. No sé si nos faltará algo, pero el resultado es correcto.
Gracias
Saludos Elvira,
Es correcto, en entornos de producción puede llegar a tardar eso y más, en un cliente grande en UK he visto que tarda unos 50 minutos, cambia el tiempo en la configuración para que se ejecute cada tres horas o así, o el tiempo que necesites. No creo que necesites monitorizar los trabajos de Veeam cada 15 minutos tampoco, ya que se suelen ejecutar de manera muy programada, cierto?
Me alegro que os haya servido, ya sabéis que si queréis compartir luego como os queda en una imagen, siempre se agradece 🙂
Estimados,
Realice todo lo solicitado, pero no me arroja la información, me sale este error:
XML: El XML devuelto no coincide con el esquema que se esperaba. (código: PE233)– JSON: El JSON devuelto no coincide con la estructura que se esperaba (Invalid JSON.). (código: PE231)
A mi me tiro el mismo error el prtg.
ese error sale, porque tienes que hacer una excepción en el antivirus para que permita ejecutar el comando de powershell que se configuro en este manual, me paso a mi y lo logre solucionar de esa manera.
ese error sale, porque tienes que hacer una excepción en el antivirus para que permita ejecutar el comando de powershell que se configuro en este manual, me paso a mi y lo logre solucionar de esa manera.
Hola Jorge. En las notificaciones de veeam (success, warnings, error) se puede diferenciar entre notificaciones de backup y de replicas?
Gracias.
Hola, por seguridad nuestro servidor veeam no se encuentra en el dominio, ¿hay alguna manera de pasar las credenciales al script para que este pueda conectar?
Me respondo yo mismo para sí le sirve a alguien:
No es una buena practica en cuanto a seguridad tener el servidor VEEAM Backup en el dominio o misma red,
puesto que en caso de un ataque Ransomware si el servidor veeam comparte credenciales las copias pueden ser encriptadas o eliminadas y si eso sucede tenemos un problema.
Para ello comento aquí como lo he resuelto yo
1.- Mediante powershell creamos un archivo con la contraseña encriptada que utilizaremos para la conexión remota a Veeam, podríamos poner directamente usuario y password en el script, pero está tampoco sería una buena solución, ya que expondríamos los datos y estaríamos en las mismas.
Son dos comandos, el primero pide las credenciales que vamos a utilizar para conectar al servidor VEEAM y el segundo crea el fichero que las almacenará encriptadas
$Credential = Get-Credential
$Credential | Export-CliXml -Path “c:\temp\Cred.Cred”
2.- Editamos el script original para cargar las credenciales del fichero y agregarlas en las cadenas de conexión
Creamos una variable invocando las credenciales
$cred = Import-Clixml -Path C:\temp\Cred.Cred
Añadimos él -User y él -Password en la cadena de conexión
La conexión se configura en el apartado del script “#region: Start BRHost Connection”
Hay que modificar dos lineas
Cambiamos las dos:
Connect-VBRServer -Server $BRHost
Por:
Connect-VBRServer -Server $BRHost -User $cred.UserName -Password $cred.GetNetworkCredential().password
Espero que sea de ayuda para alguien
Saludos
Hola que tal tengo el mismo problema que Francisco García says pero no lo he solucionado aun, he llegado para que me diera el resultado en el servidor que tiene instalado el PRTG y me da bien el resultado del los jobs en vbr pero al momento de montar el sensor dice XML: Structural error in xml file, 2 open items. — JSON: The returned JSON does not match the expected structure (Invalid JSON.). (code: PE231)
Alguno me puede ayudar probe con el script v1 y v3