Chequeando el estado de las máquinas VDA de Citrix con Centreon

Todos los que trabajamos con entornos Citrix sabemos de la criticidad de las máquinas VDA, una manera muy sencilla de conocer su salud, será monitorizándos con Centreon. Podremos conocer el estado del agente VDA de las máquinas, obteniendo por un lado las máquinas VDA que tienen problemas de registro con el Delivery Controller, y también interesante si tenemos alguna en modo mantenimiento.

Bien, lo haremos muy sencillamete, con 2 scripts de PowerShell, uno para identificar las máquinas que están en modo mantenimiento y otro para las que no estén registradas. Estos scripts los dejaremos en el Delivery Controller y los ejecutaremos desde Centreon mediante NRPE. Si tienes dudas de te hace falta instalar para tener NRPE en el Delivery Controller o cómo configurarlo, échale un vistazo a este capítulo.

Os dejo los 2 scripts que utilizaremos, los ponemos como sabemos en ‘%ProgramFiles%\NSClient++\scripts\’:

 

vdas_mantenimiento.ps1

Asnp Citrix.*
$m = Get-BrokerDesktop -MaxRecordCount 5000 | ? {$_.InMaintenanceMode -eq 'True'} | fl DNSName | measure

if ($m.Count -gt 0) {
echo "Hay algun VDA en modo mantenimiento"
Get-BrokerDesktop -MaxRecordCount 5000 | ? {$_.InMaintenanceMode -eq 'True'} | fl DNSName
exit 2
}
echo "Todas las VDAs trabajando"
exit 0

 

vdas_registrados.ps1

Asnp Citrix.*
$m = Get-BrokerDesktop -MaxRecordCount 5000 | ? {$_.RegistrationState -eq 'Unregistered'} | fl DNSName | measure

if ($m.Count -gt 0) {
echo "Hay algun VDA sin registrar"
Get-BrokerDesktop -MaxRecordCount 5000 | ? {$_.RegistrationState -eq 'Unregistered'} | fl DNSName
exit 2
}
echo "Todas los VDAs estan registrados"
exit 0

 

Modificamos el fichero nsclient.ini y añadimos la parte que nos queda, que sería definir un alias para cuando le llamemos desde Centreon y el comando que ejecutará. Añadimos algo como:

[/settings/external scripts/scripts]
vdas_mantenimiento = cmd /c echo scripts\\vdas_mantenimiento.ps1; exit($lastexitcode) | powershell.exe -executionpolicy bypass -command -
vdas_registrados = cmd /c echo scripts\\vdas_registrados.ps1; exit($lastexitcode) | powershell.exe -executionpolicy bypass -command -

...

[/settings/external scripts/alias]
vdas_mantenimiento = vdas_mantenimiento
vdas_registrados = vdas_registrados

 

 

Grabamos el fichero y reiniciamos el servicio de NSClient++,

 

Tras ello, damos de alta como de manera habitual el Servicio en la configuración de Centreon, normalmente contra el comando check_nrpe e introducimos en el Argumento el Alias que hemos definido en el fichero.ini. Como siempre, exportamos la configuración de Centreon y podremos observar que ya tenemos monitorizados dichos servicios, si se nos queda algún VDA en modo Mantenimiento lo sabremos, así como si un VDA no se ha registrado correctamente contra el sitio de Citrix.

 

Héctor Herrero

Autor del blog Bujarra.com
Cualquier necesidad que tengas, no dudes en contactar conmigo, os intentare ayudar siempre que pueda, compartir es vivir 😉 . Disfrutar de los documentos!!!

Últimos Posts de: Héctor Herrero (ver todos)