
Monitorizando las licencias de Citrix con Centreon
Si queremos tener centralizado el control de las licencias de nuestros entornos Citrix podemos hacerlo fácilmente con Centreon, como siempre, nos basaremos en un script que se ejecutará en el servidor de licencias y pasaremos su output a Centreon, así sabremos cuando nos vamos a quedar sin licencias y sobre todo, las tendremos controladas y nos servirán para justificar nuevas adquisiciones.
Como te lo imaginarás, usaremos NRPE para poder llamar un script desde Centreon, que se ejecute en el servidor Windows, y leamos su output para conocer las licencias que tenemos consumidas actualmente y en caso necesario recibir una alerta. Si necesitas echar un vistazo al fincionamiento de NRPE te recomiendo leas primeramente este post, ya que nos basamos en él para las configuraciones que necesitamos aplicar ahora con objeto de controlar las licencias.
En el servidor de licencias de Citrix, tras instalar NSClient++, en el directorio de scripts, pondremos este “licencias_citrix.cmd”:
[sourcecode]@echo off
"%ProgramFiles(x86)%\Citrix\Licensing\LS\LMSTAT.exe" -a -c "%ProgramFiles(x86)%\Citrix\Licensing\MyFiles" > licencias.txt
FINDSTR "MPS_ADV_CCU:" licencias.txt > licencias2.txt
set /p linea= <licencias2.txt
set licencias=%linea:~63,2%
if %licencias% gtr 120 if %licencias% lss 131 (
echo "Warning – Hay %licencias% consumidas |’Licencias Citrix’=%licencias%"
exit /B 1
)
if %licencias% gtr 130 (
echo "Critical – Hay %licencias% consumidas |’Licencias Citrix’=%licencias%"
exit /B 2
)
if %licencias% lss 121 (
echo "OK – Hay %licencias% consumidas |’Licencias Citrix’=%licencias%"
exit /B 0
)[/sourcecode]
Como vemos, este script Batch si lo ejecutamos consultará a LMSTAT.exe, generará un fichero temporal con todo el output y leeremos las líneas donde tenemos definidas nuestras licencias, en este caso unas “XDT_ENT_UD” o XenDesktop Enterprise, seguro que algo más elegante también funcionaría, pero vaya, debería ir bien, o lo modificáis en base a vuestra necesidad. Como vemos aquí directamente le indicamos los varemos de licencias consumidas, si hay más de 120 que genere un Warning y si hay más de 130 consumidas pues un mensaje Critical.
En nsclient.ini deberemos como siempre definir un Alias y el Comando que llamará este Alias, para así con check_nrpe poder llamar a este Alias, nos quedaría de la siguiente manera:
[sourcecode][/settings/external scripts/scripts]
check_citrix_lics = cmd /c scripts\\licencias_citrix.cmd
[/settings/external scripts/alias]
check_citrix_lics = check_citrix_lics[/sourcecode]
Y como siempre, tras guardar el fichero recordar reiniciar el servicio NSClient++ para recargar la configuración.
Ya podremos en Centreon crear nuestro Servicio asociado al Servidor de licencias, en el comando utilizamos el “check_nrpe” que tendremos ya definido (acuérdate de este post si lo necesitas). Y como Argumento pues le pasamos el Alias que hemos definido en el nsclient.ini para que ejecute el BAT (el script).
As usual, tras grabar la configuración y exportar los ficheros de Centreon, podremos verificar cómo tenemos el servicio listo y monitorizado! Así de facil quitamos otra cosa de la cabeza! Tenemos controladas las licencias, ante la necesidad y quedarnos sin ellas previamente lo sabremos y podremos actuar en consecuencia. Espero os haya resultado interesante,