Monitorizando Jobs de Copia de seguridad o Réplica de Veeam Backup & Replication

Siguiendo con una mentalidad centralizadora, hoy veremos cómo desde Centreon poder monitorizar el estado de las copias de seguridad de Veeam Backup & Replication, con esto descargaremos otra tarea más a tener en cuenta en nuestros pensamientos, ya que si falla una tarea de copia o de réplica lo sabremos al momento. No tendremos que estar pendientes más de tener que entrar en la consola para checkearlos,

 

Bien, nos apoyaremos en un script llamado ‘check_veeam_eventlogs.ps1‘, que vamos a descargar en la máquina encargada de realizar los backups. Un script de PowerShell que sencillamente ejecutaremos de forma remota mediante NRPE desde la máquina de Centreon y leeremos su output para monitorizar si las tareas de Copia o de Replica se ejecutan bien. Como está claro, primero necesitamos tener NRPE instalado y bien configurado en nuestra máquina de Centreon, si no lo tienes hecho, repasa este documento.

 

El funcionamiento es muy sencillo, podemos probarlo a ejecutarlo desde una PowerShell, habremos dejado el fichero descargado en la carpeta de scripts de NSClient, deberemos pasarle un par de parámetros al script, uno el nombre del Job y otro con el tiempo en horas para checkear dentro de ese tiempo. Ejemplo:

.\check_veeam_eventlogs.ps1 'Backup Job Open Services IT' 24

 

El script funciona perfectamente para Jobs de tipo Copia, pero no para los Jobs de tipo Réplica, nada, duplicamos el script y a este le renombramos con un ‘_replica’ para tener 2 scripts, uno que monitorizará Jobs de Copia y otros de Réplica (en otro post veremos los Jobs de los EndPoint). En este nuevo fichero realizamos las siguientes modificaciones:

En la línea 35 cambiamos por:

$ArgEventID = 190 # Replication Job complete event id

 

En la línea 78, reemplazaríamos

if ($LogEntry.Message.ToString() -like "*Replica*`'$ArgBackupJobName`'*")

 

Y luego ya si queremos dejarlo chulo y cambiar el output por algo más personalizado en Castellano, cambiaríamos la línea 186:

$ResultString += "CRITICAL: Se encontraron $CriticalErrorResultCount errores criticos en la replica $ArgBackupJobName en las ultimas $ArgLastHours horas"

 

También la línea 192:

$ResultString += "Warning: La replica $ArgBackupJobName tiene $WarningResultCount mensajes Warning en las ultimas $ArgLastHours horas"

 

La 202:

$ResultString += "CRITICAL: La replica $ArgBackupJobName acabo con errores en las ultimas $ArgLastHours horas"

 

Y por último la 208:

$ResultString += "OK: La replica $ArgBackupJobName acabo perfectamente en las ultimas $ArgLastHours horas "

 

Ale, pues lo tenemos listo, ahora no es más que dar de alta en el fichero nsclient.ini (configuración de NSClient) los alias y comandos que debe ejecutar cuando le llamemos de otro equipo, como es en nuestro caso desde un Centreon. Añadimos:

[/settings/external scripts/scripts]
check_veeam_copia_os = cmd /c echo scripts\\check_veeam_eventlogs.ps1 'Backup Job Open Services IT' 24; exit($lastexitcode) | powershell.exe -command -
check_veeam_replica = cmd /c echo scripts\\check_veeam_eventlogs_replica.ps1 'Replication Job Open Services IT' 24; exit($lastexitcode) | powershell.exe -command -
...

[/settings/external scripts/alias]
check_veeam_copia_os = check_veeam_copia_os
check_veeam_replica = check_veeam_replica
...

 

Reiniciamos el servicio de NSClient++ del equipo para que relea la configuración y ya nos vamos a Centreon para dar de alta el Servicio que monitorizará los Jobs de Copia y de Réplica.

 

Desde «Configuration» > «Services», duplicamos cualquier Servicio que tengamos monitorizado con NRPE y así será mucho más sencillo, lo editamos y modificamos:

  • Description: El nombre del Servicio, por ejemplo el nombre del Job monitorizado.
  • Lined with Hosts: Lo enlazamos al servidor que tiene Veeam instalado y NRPE configurado.
  • Check Command: Seleccionamos el Comando, si has seguido los documentos de este blog, se llamará ‘check_nrpe’.
  • Argument: En el argumento debemos poner el Alias que hemos definido en el archivo nsclient.ini para que ejecute el script que nos interese.

 

Y estaría bien indicar en el ‘Normal Check Interval’ que se ejecute cada las X horas que nos interese, obviamente no nos interesa que se ejecute el checkeo cada 5 minutos si el job se ejecuta cada 24h por ejemplo. Grabamos el nuevo servicio con «Save» y podremos crear tantos servicios como necesitemos para otros Jobs de Copia o los de Réplica…

Grabamos la configuración & exportamos ficheros como es habitual…

 

Y podremos ver tras un rato que ya tenemos monitorizado nuestras tareas de copia de seguridad o de replicación! Con esto, otra cosa más centralizada y que podremos controlar y saber en todo momento su estado, además de disrutar de todas las ventajas de un sistema monitorizado, podremos medir SLAs…

 

Héctor Herrero