Citrix ADC

Comprender los monitores de usuario

Los monitores de usuario amplían el alcance de los monitores personalizados. Puede crear monitores de usuario para realizar un seguimiento del estado de las aplicaciones y protocolos personalizados que el dispositivo Citrix ADC no admite. El siguiente diagrama ilustra cómo funciona un monitor de usuario.

Ilustración 1. Monitores de usuario

Monitor de usuario

Un monitor de usuario requiere los siguientes componentes.

  • Despachador. Proceso, en el dispositivo, que escucha las solicitudes de supervisión. Un despachador puede estar en la dirección IP de bucle invertido (127.0.0.1) y en el puerto 3013. Los despachadores también se conocen como despachadores internos. Un despachador también puede ser un servidor web que admita Common Gateway Interface (CGI). Dichos despachadores también se conocen como despachadores externos. Se utilizan para scripts personalizados que no se ejecutan en el entorno de FreeBSD, como guiones de.NET.

    Nota: Puede configurar el monitor y el despachador para que usen HTTPS en lugar de HTTP activando la opción “seguro” en el monitor y configurándolo como un despachador externo. Sin embargo, un despachador interno solo entiende HTTP y no puede usar HTTPS.

    En una configuración de alta disponibilidad, el distribuidor se ejecuta en los dispositivos Citrix ADC primario y secundario. El despachador permanece inactivo en el dispositivo secundario.

Guión. El script es un programa que envía sondeos personalizados al servidor con equilibrio de carga y devuelve el código de respuesta al despachador. El script puede devolver cualquier valor al despachador, pero si un sondeo tiene éxito, el script debe devolver un valor de cero (0). El despachador considera cualquier otro valor como error de sondeo.

El dispositivo Citrix ADC se incluye con scripts de ejemplo para los protocolos de uso común. Los scripts existen en el directorio /nsconfig/monitors. Si quiere agregar un script, agréguelo allí. Para personalizar un script existente, cree una copia con un nuevo nombre y modifíquelo.

Importante:

  • A partir de Citrix ADC versión 13.0 compilación 41.20, puede utilizar el script nsntlm-lwp.pl para crear un monitor para supervisar un servidor NTLM seguro.

  • A partir de la versión 10.1 compilación 122.17, los archivos de script para los monitores de usuario se encuentran en una nueva ubicación.

    Si actualiza un dispositivo virtual MPX o VPX a la versión 10.1 compilación 122.17 o posterior, los cambios son los siguientes:

    • Se crea un nuevo directorio llamado conflicts en /nsconfig/monitors/ y todos los scripts integrados de las compilaciones anteriores se mueven a este directorio.
    • Todos los nuevos scripts integrados están disponibles en el directorio /netscaler/monitors/. Todos los scripts personalizados están disponibles en el directorio /nsconfig/monitors/.
    • Guarde un nuevo script personalizado en el directorio /nsconfig/monitors/.
    • Una vez completada la actualización, si se crea y guarda un script personalizado en el directorio /nsconfig/monitors/, con el mismo nombre que el script integrado, el script del directorio /netscaler/monitors/ toma prioridad. El script personalizado no se ejecuta.

    Si aprovisione un dispositivo virtual con la versión 10.1 compilación 122.17 o posterior, los cambios son los siguientes:

    • Todos los scripts integrados están disponibles en el directorio /netscaler/monitors/.
    • El directorio /nsconfig/monitors/ está vacío.
    • Si crea un script personalizado, debe guardarlo en el directorio /nsconfig/monitors/.

Para que los scripts funcionen correctamente:

  • El número máximo de caracteres en el nombre del script no debe superar los 63.
  • El número máximo de argumentos de script que se pueden proporcionar a un script no debe exceder 512.
  • El número máximo de caracteres que se pueden proporcionar en los argumentos de script de parámetros no debe exceder 639.

Para depurar el script, debe ejecutarlo mediante el script nsumon-debug.pl de la CLI. Utilice el nombre del script (con sus argumentos), la dirección IP y el puerto como argumentos del script nsumon-debug.pl. Los usuarios deben usar el nombre del script, la dirección IP, el puerto, el tiempo de espera y los argumentos del script para el script nsumon-debug.pl.

En la CLI, escriba:

nsumon-debug.pl <scriptname> <IP> <port> <timeout> <partitionID> [scriptarguments][is_secure]

Importante: A partir de la versión 10.5 compilación 57.x y los archivos de script 11.0 para monitores de usuario admiten direcciones IPv6 e incluyen los siguientes cambios:

  • Para los siguientes protocolos, se han incluido nuevos archivos pm para soporte IPv6.

    • RADIUS
    • NNTP
    • POP3
    • SMTP
  • Se han actualizado los siguientes scripts de ejemplo en /netscaler/monitors/ para compatibilidad con IPv6:

    • nsbmradius.pl

    • nsldap.pl

    • nsnntp.pl

    • nspop3 nssf.pl

    • nssnmp.pl

    • nswi.pl

    • nstftp.pl

    • nssmtp.pl

    • nsrdp.pl

    • nsntlm-lwp.pl

    • nsftp.pl

    • nsappc.pl

    Después de actualizar a la versión 10.5 compilación 57.x, o 11.0, si quiere utilizar las scripts personalizadas existentes con servicios IPv6, asegúrese de actualizar las scripts personalizadas existentes con los cambios proporcionados en las scripts de ejemplo actualizadas en /netscaler/monitors/.

    Nota: El script de ejemplo nsmysql.pl no admite la dirección IPv6. Si un servicio IPv6 está enlazado a un monitor de usuario que utiliza nsmysql.pl, se produce un error en el sondeo.

  • Se han actualizado los siguientes tipos de monitor LB para admitir direcciones IPv6:

    • USUARIO

    • SMTP

    • NNTP

    • LDAP

    • SNMP

    • POP3

    • FTP_EXTENDED

    • StoreFront

    • APPC

    • CITRIX_WI_EXTENDED

    Si va a crear un script personalizada que utiliza uno de estos tipos de monitores LB, asegúrese de incluir compatibilidad con IPv6 en el script personalizada. Consulte el script de ejemplo asociada en /netscaler/monitors/ para ver los cambios que debe realizar en el script personalizada para la compatibilidad con IPv6.

Para realizar un seguimiento del estado del servidor, el monitor envía una solicitud HTTP POST al distribuidor configurado. Esta solicitud POST contiene la dirección IP y el puerto del servidor, y el script que se debe ejecutar. El despachador ejecuta el script como un proceso secundario, con parámetros definidos por el usuario (si los hay). A continuación, el script envía un sondeo al servidor. El script envía el estado del sondeo (código de respuesta) al despachador. El despachador convierte el código de respuesta en una respuesta HTTP y lo envía al monitor. En función de la respuesta HTTP, el monitor marca el servicio como activo o inactivo.

El dispositivo Citrix ADC registra los mensajes de error en el archivo /var/nslog/nsumond.log cuando fallan los sondeos del monitor del usuario. Estos mensajes de error detallados se muestran en GUI y en CLI para losshow service/service group comandos.

En la siguiente tabla se enumeran los monitores de usuario y las posibles razones del error.

Tipo de monitor de usuario Motivos de fallo de sondeo
SMTP Monitor no puede establecer una conexión con el servidor.
NNTP Monitor no puede establecer una conexión con el servidor.
  Argumentos de script faltantes o no válidos, que pueden incluir un número no válido de argumentos o un formato de argumento.
  El monitor no puede encontrar el grupo NNTP.
LDAP Monitor no puede establecer una conexión con el servidor.
  Argumentos de script faltantes o no válidos, que pueden incluir un número no válido de argumentos o un formato de argumento.
  Monitor no se puede enlazar con el servidor LDAP.
  Monitor no puede localizar una entrada para la entidad de destino en el servidor LDAP.
FTP El tiempo de espera de la conexión con el servidor.
  Argumentos de script faltantes o no válidos, que pueden incluir un número no válido de argumentos o un formato de argumento.
  Error de inicio de sesión.
  Monitor no puede encontrar el archivo en el servidor.
POP3 Monitor no puede establecer una conexión con la base de datos.
  Argumentos de script faltantes o no válidos, que pueden incluir un número no válido de argumentos o un formato de argumento.
  Error de inicio de sesión.
POP3 Monitor no puede establecer una conexión con la base de datos.
  Argumentos de script faltantes o no válidos, que pueden incluir un número no válido de argumentos o un formato de argumento.
  Error de inicio de sesión.
  Se produce un error en la preparación de la consulta SQL.
  Se produce un error en la ejecución de la consulta SQL.
SNMP Monitor no puede establecer una conexión con la base de datos.
  Argumentos de script faltantes o no válidos, que pueden incluir un número no válido de argumentos o un formato de argumento.
  Error de inicio de sesión.
  El monitor no puede crear la sesión SNMP.
  El monitor no puede encontrar el identificador de objeto.
  El valor del umbral del monitor es mayor o igual que el umbral real del monitor.
RDP (Windows Terminal Server) Argumentos de script faltantes o no válidos, que pueden incluir un número no válido de argumentos o un formato de argumento.
  El monitor no puede crear un socket.
  No coinciden las versiones.
  El monitor no puede confirmar la conexión.

Puede ver el archivo de registro desde la CLI mediante los siguientes comandos, que abren un shell BSD, muestran el archivo de registro en la pantalla y, a continuación, cierre el shell BSD y lo devuelven a la CLI:

> shell
root@ns# cat /var/nslog/nsumond.log
root@ns# exit
>

Antes de Citrix ADC versión 13.0 compilación 52.X, el show service/service group comando mostraba un mensaje de error genérico que decía “error de sondeo” como causa del error del sondeo del monitor del usuario.

Ejemplo:

show service ftp

Monitor Name: mon2
State: UNKNOWN  Weight: 1   Passive: 0
Probes: 3    Failed [Total: 0 Current: 0]
Last response: Failure - Probe failed.
Response Time: 1071.838 millisec

A partir de Citrix ADC versión 13.0 compilación 52.X en adelante, el show service/service group comando muestra la causa real del error del sondeo del monitor del usuario.

Ejemplo:

show service ftp

Monitor Name: mon2
State: DOWN   Weight: 1   Passive: 0
Probes: 729   Failed [Total: 726 Current: 726]
Last response: Failure - Login failed.
Response Time: 8000.0 millisec

Los monitores de usuario también tienen un valor de tiempo de espera y un recuento de reintentos para errores de sondeo. Puede utilizar monitores de usuario con monitores que no sean usuarios. Durante la alta utilización de la CPU, un monitor que no sea usuario permite una detección más rápida de un fallo en el servidor.

Si el sondeo del monitor de usuario aumenta el tiempo de espera durante el uso de CPU elevado, el estado del servicio permanece sin cambios.

Nota:

Para monitores con scripts, el tiempo de espera de respuesta debe configurarse en un valor igual al tiempo de espera esperado + 1 segundo.

Por ejemplo, si espera que el tiempo de espera sea de 4 segundos, configure el tiempo de espera de respuesta como 5 segundos.

Comando de ejemplo:

add lb monitor <name> USER –scriptname <script-name> -resptimeout 5 seconds

Comprender los monitores de usuario