ADC

Comprender los monitores de

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 NetScaler no admite. El siguiente diagrama ilustra cómo funciona un monitor de usuario.

Figura 1. Monitores de usuario

User-monitor

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 de retorno (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 admite la interfaz de puerta de enlace común (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 utilicen HTTPS en lugar de HTTP activando la opción “seguro” en el monitor y configurándolo como despachador externo. Sin embargo, un despachador interno solo entiende HTTP y no puede usar HTTPS.

En una configuración de alta disponibilidad, el despachador se ejecuta tanto en el dispositivo NetScaler principal como en el 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 el valor cero (0). El despachador considera que cualquier otro valor es un error de sondeo.

El dispositivo NetScaler incluye scripts de ejemplo para los protocolos de uso común. Los scripts existen en el directorio /nsconfig/monitors. Si quieres agregar un guión, añádelo allí. Para personalizar un script existente, cree una copia con un nombre nuevo y modifíquela.

Importante:

  • A partir de NetScaler 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 build 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 denominado conflicts en /nsconfig/monitors/ y todas los scripts integradas de las compilaciones anteriores se trasladan a este directorio.
    • Todas las nuevas scripts integradas están disponibles en el directorio /netscaler/monitors/. Todas los scripts personalizadas están disponibles en el directorio /nsconfig/monitors/.
    • Guarde un nuevo script personalizado en el directorio /nsconfig/monitors/.
    • Una vez finalizada la actualización, si se crea un script personalizado y se guarda en el directorio /nsconfig/monitors/, con el mismo nombre que el script integrado, el script del directorio /netscaler/monitors/ tiene 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:

    • Todas los scripts integradas 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 del nombre del guión no debe exceder de 63.
  • El número máximo de argumentos de script que se pueden proporcionar a un script no debe superar 512.
  • El número máximo de caracteres que se pueden proporcionar en los argumentos de script de parámetros no debe exceder de 639.

Para depurar el script, debe ejecutarlo mediante el script nsumon-debug.pl de la CLI. El nombre del script (con sus argumentos), la dirección IP y el puerto se utilizan 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 nsumon-debug.pl.

En la CLI, escriba:

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

Importante: A partir de la versión 10.5 build 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, nuevos pm files se han incluido nuevos para la compatibilidad con IPv6.

    • RADIUS
    • NNTP
    • POP3
    • SMTP
  • Los siguientes scripts de ejemplo de /netscaler/monitors/ se han actualizado para admitir 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 los scripts personalizados existentes con servicios IPv6, asegúrese de actualizar los scripts personalizados existentes con los cambios proporcionados en los scripts de ejemplo actualizados 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.

  • Los siguientes tipos de monitores LB se han actualizado para admitir direcciones IPv6:

    • USER

    • SMTP

    • NNTP

    • LDAP

    • SNMP

    • POP3

    • FTP_EXTENDED

    • StoreFront

    • APPC

    • CITRIX_WI_EXTENDED

    Si va a crear un script personalizado que utiliza uno de estos tipos de monitores LB, asegúrese de incluir compatibilidad con IPv6 en el script personalizado. Consulte el script de ejemplo asociado en /netscaler/monitors/ para ver los cambios que debe realizar en el script personalizado para admitir 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 de la sonda (código de respuesta) al despachador. El despachador convierte el código de respuesta en una respuesta HTTP y lo envía al monitor. Según la respuesta HTTP, el monitor marca el servicio como activo o inactivo.

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

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 sonda
SMTP El monitor no establece una conexión con el servidor.
NNTP El monitor no establece una conexión con el servidor.
  Argumentos de script faltantes o no válidos, que pueden incluir un número de argumentos o un formato de argumentos no válidos.
  El monitor no encuentra el grupo NNTP.
LDAP El monitor no establece una conexión con el servidor.
  Argumentos de script faltantes o no válidos, que pueden incluir un número de argumentos o un formato de argumentos no válidos.
  El monitor no se puede enlazar con el servidor LDAP.
  El monitor no encuentra ninguna entrada para la entidad de destino en el servidor LDAP.
FTP Se agotó 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 de argumentos o un formato de argumentos no válidos.
  Error de inicio de sesión.
  El monitor no encuentra el archivo en el servidor.
POP3 El monitor no establece una conexión con la base de datos.
  Argumentos de script faltantes o no válidos, que pueden incluir un número de argumentos o un formato de argumentos no válidos.
  Error de inicio de sesión.
  La preparación de la consulta SQL falla.
  Error en la ejecución de la consulta SQL.
SNMP El monitor no establece una conexión con la base de datos.
  Argumentos de script faltantes o no válidos, que pueden incluir un número de argumentos o un formato de argumentos no válidos.
  Error de inicio de sesión.
  El monitor no crea la sesión SNMP.
  El monitor no encuentra el identificador del 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 de argumentos o un formato de argumentos no válidos.
  El monitor no crea un zócalo.
  La falta de coincidencia en las versiones.
  El monitor no confirma la conexión.

Puede ver el archivo de registro desde la CLI mediante los siguientes comandos:

> shell
root@ns# cat /var/nslog/nsumond.log
root@ns# exit
>
<!--NeedCopy-->

El comando abre un shell de BSD, muestra el archivo de registro en la pantalla, cierra el shell de BSD y lo devuelve a la CLI.

Antes de la versión 13.0 compilación 52.X de NetScaler, el comando show service/service group mostraba un mensaje de error genérico que decía “error de sondeo” como causa del error del sondeo del monitor de 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
<!--NeedCopy-->

A partir de la versión 13.0 compilación 52.X de NetScaler, el comando show service/service group muestra la causa real del error del sondeo del monitor de 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
<!--NeedCopy-->

Los monitores de usuario también tienen un valor de tiempo de espera y un recuento de reintentos para los fallos de sondeo. Puede utilizar monitores de usuario con monitores que no sean usuarios. Durante un uso elevado de la CPU, un monitor que no es usuario permite detectar con mayor rapidez un fallo del servidor.

Si el sondeo del monitor de usuario se desactiva durante un uso elevado de la CPU, el estado del servicio permanece sin cambios.

Ejemplo 1:

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

Nota:

Para los 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.

Ejemplo 2:

add lb monitor <name> USER –scriptname <script-name> -scriptargs <Arguments> -secureargs <Arguments>
<!--NeedCopy-->

Nota:

Le recomendamos que utilice el secureargs parámetro en lugar del scriptargs parámetro para cualquier dato confidencial relacionado con los scripts.

Comprender los monitores de

En este artículo