Nagios – Monitorizando Citrix NetScaler
Siguiendo un poco con elementos Citrix que podemos monitorizar… qué menos que nuestro NetScaler! En este documento podremos ver cómo monitorizar un appliance virtual Citrix NetScaler VPX que actualmente es el Gateway de mi organización de Citrix XenDesktop. Monitorizaremos mediante SNMP sus consumos básicos como son la CPU, Memoria o discos, si no que también las conexiones, sus interfaces de red o sus certificados!
En este documento usaremos un NetScaler 10.5 build 55.8, lo que haremos antes de nada será añadir en el NetScaler la comunidad SNMP, lo podremos hacer por GUI de una manera sencilla. “System” > “SNMP” > “Community” > “Add” y añadimos la comunidad.
Deberemos añadir también el equipo que hará las consultas SNMP, lo haremos desde “System” > “SNMP” > “Managers” > “Add” y añadimos la dirección IP de la máquina con Nagios o Centreon.
Tras ello, podremos grabar la configuración en el NetScaler,
CPU y Memoria,
Para monitorizar el uso de CPU y de Memoria del appliance de Citrix, nos basaremos en un script ya existente en nuestra instalación de Nagios o Centreon, usaremos ‘check_snmp’, pasandole el OID además de los valores de Warning & Critical que serán en % seguido del texto que nos pondrá en el output obtendremos los valores deseados.
Ejecutamos desde la shell de Nagios, en el path de los plugins:
[sourcecode]./check_snmp -H NETSCALER_IP -C COMUNIDAD_SNMP -o 1.3.6.1.4.1.5951.4.1.1.41.1.0 -w 80 -c 90 -l "CPU" -u %
./check_snmp -H NETSCALER_IP -CCOMUNIDAD_SNMP -o 1.3.6.1.4.1.5951.4.1.1.41.2.0 -w 80 -c 90 -l "Memoria" -u %[/sourcecode]
Así que si vamos a nuestro querido Centreon, desde “Configuration” > “Services” > “Add…” podremos añadir un Servicio y asociarlo al host de NetScaler. Ojo si no hemos definido en Centreon el Host del NetScaler es hora de hacerlo, con la plantilla de generic-host será más que suficiente. Lo dicho, creamos el servicio de CPU y de Memoria, deberemos tener en cuenta que en”Check Command” deberemos tener el comando ya existente llamado ‘check_snmp’, donde como argumentos le pasaremos el UUID anterior, así como los valores para Warning o Critical, o el texto que queremos leer en el output.
Conexiones de cliente y servidor,
Al igual que con la CPU y la Memoria RAM, obtendremos las conexiones de cliente y las conexiones de servidor de la misma manera, bastará con cambiar el OID correspondiente y listo!
Probamos si queremos checkear las conexiones establecidas de servidor y de clientes con:
[sourcecode]./check_snmp -H NETSCALER_IP -C COMUNIDAD_SNMP -o 1.3.6.1.4.1.5951.4.1.1.46.10.0 -w 400 -c 500 -l "Conexiones Servidor"
./check_snmp -H NETSCALER_IP -C COMUNIDAD_SNMP -o 1.3.6.1.4.1.5951.4.1.1.46.12.0 -w 400 -c 500 -l "Conexiones Cliente"[/sourcecode]
De nuevo venimos a Centreon y damos igualmente de alta los Servicios que monitorizarán las Conexiones Cliente establecidas o de Servidor, creamos un par de Servicios y los asociamos al Host del NetScaler, seleccionamos el comando de chequeo ‘check_snmp’ de nuevo y cumplimentamos con los OID anteriores.
Disco,
Para monitorizar el uso de disco de un NetScaler usaremos otro script, que deberemos descargar en nuestra máquina Nagios, usaremos ‘check_netscaler_disk.pl’ para visualizar el espacio ocupado de las particiones de disco. Descargamos de aquí el script: https://exchange.nagios.org/directory/Plugins/Network-Protocols/SNMP/check_netscaler_disk/details
Debemos modificar la línea 27 del fichero corrigiendo el path correcto de los plugins, quedando (en mi caso):
use lib “/usr/lib/nagios/plugins”;
Y probamos a ejecutarlo si queremos desde la Shell de Nagios, desde el path de plugins y una vez hecho ejecutable el script, ejecutamos:
[sourcecode]./check_netscaler_disk.pl -H NETSCALER_IP -C COMUNIDAD_SNMP -w WARNING -c CRITICAL -d[/sourcecode]
Deberemos crear el Comando en Centreon desde “Configuration” > “Commands” > “Add”:
- Command Name: Indicamos un nombre al comando, para asociarlo lo mejor será ponerle igual que se llame el script que ejecuta, en este caso ‘check_netscaler_disk.pl’.
- Command Type: Seleccionamos ‘Check’.
- Command Line: Indicamos lo que realmente ejecutará Centreon o Nagios cuando el Servicio que crearemos a continuación llame a este comando, quedaría algo como: ‘/usr/lib/nagios/plugins/check_netscaler_disk.pl -H $HOSTADDRESS$ -C $_HOSTSNMPCOMMUNITY$ -w $ARG1$ -c $ARG2$ -d’.
Definimos los argumentos indicando qué son y grabamos!
Nada, ya sólo quedará crear el Servicio que monitorizará el disco, desde “Configuration” > “Services” y clonamos algún servicio anterior del NetScaler & lo modificamos o creamos uno nuevo desde “Add…”, quedando de la siguiente manera:
- Description: Será el nombre con el que veremos el servicio en la monitorización, un nombre como ‘Disco’ lo identifica perfectamente o que? ?
- Linked with Hosts: Lo asociaremos al host del NetScaler.
- Template: Normalmente ‘generic-active-service-custom’, dependerá de las que usemos o hayamos modificado.
- Check Command: Seleccionamos el Comando que hemos creado en el paso anterior ‘check_netscaler_disk.pl’
- Args: Dicho comando nos requiere que cumplimentemos los 2 argumentos, será para el valor en % para Warning y Critical.
Grabamos con “Save”,
Exportamos los datos y recargamos la configuración para que Centreon pueda leer los nuevos cambios que acabamos de meter. Como siempre iremos a “Configuration” > “Pollers” > “Export configuration”, seleccionando nuestro poller, marcamos los checks y reiniciamos & “Export”.
Y ahora ya, desde “Monitoring” ya visualizaremos todos los servicios que monitorizamos de un NetScaler VPX. Para forzar y probarlo, le seleccionamos y en el combo escogemos: ‘Services – Schedule immediate check (Forced)’.
Si quieres acceder a la lista completa de los OIDs de NetScaler, puedes hacerlo desde aquí: http://docs.citrix.com/content/dam/docs/en-us/netscaler/10/downloads/ctx132381.htm
Si quieres saber cómo monitorizar un certificado que tenga instalado, puedes leer este documento.
Si quieres monitorizar los interfaces de red del appliance y controlar sus anchos de banda echa un vistazo a este otro documento, en la sección ‘Monitorizando el tráfico de red’.
Si quieres verificar que un puerto TCP o UDP está levantado en nuestro NetScaler, puedes verlo en este documento.