¿Cómo puedo solucionar los problemas y corregir los fallos en las comprobaciones de estado de los equilibradores de carga de aplicación?

8 minutos de lectura
0

Los destinos registrados en el equilibrador de carga de aplicación no están en buen estado. ¿Cómo puedo saber por qué los destinos no superan las comprobaciones de estado?

Solución

Para solucionar problemas y corregir fallos en las comprobaciones de estado del equilibrador de carga de aplicación:

  1. Consulte el estado de los destinos para encontrar el código del motivo y la descripción del problema.
  2. Siga los pasos que se indican a continuación para solucionar el error mostrado.

Elb.InitialHealthChecking

Descripción: Comprobaciones de estado iniciales en curso.

Solución: Antes de que un destino pueda recibir solicitudes del equilibrador de carga, dicho destino debe superar las comprobaciones de estado iniciales. Espere a que el destino supere las comprobaciones de estado iniciales y, a continuación, vuelva a comprobar su estado.

Elb.RegistrationInProgress

Descripción: Registro de destino en curso.

Solución: El equilibrador de carga comienza a enrutar las solicitudes al destino en cuanto se completa el proceso de registro y el destino supera las comprobaciones de estado iniciales.

Target.DeregistrationInProgress

Descripción: Anulación del registro del destino en curso.

Solución: Cuando se anula el registro de un destino, el equilibrador de carga espera a que se completen las solicitudes en curso. Esto se conoce como retraso en la anulación del registro. De forma predeterminada, Elastic Load Balancing espera 300 segundos antes de completar el proceso de anulación del registro. Sin embargo, puede personalizar este valor.

Si un destino en proceso de anulación del registro no tiene solicitudes en curso ni conexiones activas, Elastic Load Balancing anulará el registro inmediatamente sin esperar a que transcurra el retraso en la anulación del registro. El estado inicial de un destino en proceso de anulación del registro es draining. Una vez transcurrido el retraso en la anulación del registro, el proceso de anulación del registro se completa y el estado del destino pasa a ser unused. Si el destino forma parte de un grupo de escalamiento automático, se puede terminar y reemplazar.

Target.FailedHealthChecks

Descripción: El equilibrador de carga recibió un error durante el establecimiento de una conexión con el destino o la respuesta del destino tenía un formato incorrecto.

Solución:

  • Compruebe que la aplicación se esté ejecutando. Utilice el comando service para comprobar el estado de los servicios en los destinos de Linux. En el caso de los destinos de Windows, consulte la pestaña Servicios del Administrador de tareas de Windows. Si el servicio se ha detenido, inícielo. Si no se reconoce el servicio, compruebe que se haya instalado.
  • Compruebe si el destino está escuchando el tráfico en el puerto de comprobación de estado. Puede utilizar el comando ss en los destinos de Linux para comprobar los puertos en los que escucha su servidor. En el caso de los destinos de Windows, puede utilizar el comando netstat.
  • Compruebe si su aplicación responde a las solicitudes de comprobación de estado del equilibrador de carga debidamente. En el siguiente ejemplo se muestra una solicitud de comprobación de estado típica del equilibrador de carga de aplicación que sus destinos deben devolver con una respuesta HTTP válida. El valor del encabezado Host contiene la dirección IP privada del destino, seguida del puerto de comprobación de estado. User-agent se ha definido como ELB-HealthChecker/2.0. El terminador de línea para los campos message-header es la secuencia CRLF. El encabezado termina en la primera línea vacía seguida de CRLF. Si es necesario, añada un host virtual predeterminado a la configuración de su servidor web para recibir las solicitudes de comprobación de estado.
GET / HTTP/1.1
Host: 10.0.0.1:80
Connection: close
User-Agent: ELB-HealthChecker/2.0
Accept-Encoding: gzip, compressed
  • El tipo de destino del grupo de destino determina la interfaz de red a la que el equilibrador de carga envía las comprobaciones de estado en los destinos. Por ejemplo, puede registrar ID de instancia, direcciones IP y funciones de Lambda. Si el tipo de destino es un ID de instancia, el equilibrador de carga enviará las solicitudes de comprobación de estado a la interfaz de red principal de los destinos. Si el tipo de destino es una dirección IP, el equilibrador de carga enviará las solicitudes de comprobación de estado a la interfaz de red asociada a la dirección IP correspondiente. Si sus destinos tienen varias interfaces conectadas, compruebe si la aplicación está escuchando en la interfaz de red correcta.
  • La política de seguridad ELBSecurityPolicy-2016-08 se utiliza para las conexiones de destino y las comprobaciones de estado de HTTPS. Compruebe si el destino proporciona un certificado de servidor y una clave en el formato especificado en la política de seguridad. Compruebe también que el destino admita uno o varios cifrados coincidentes y un protocolo proporcionado por el equilibrador de carga para establecer el protocolo de enlace TLS.

Target.InvalidState

Descripción: El estado del destino es stopped o terminated.

Solución: Si el destino es una instancia de Amazon Elastic Compute Cloud (Amazon EC2), abra la consola de Amazon EC2. A continuación, compruebe que la instancia se esté ejecutando. Inicie la instancia si es necesario.

Target.IpUnusable

Descripción: La dirección IP no se puede usar como destino porque la está utilizando un equilibrador de carga.

Solución: Al crear un grupo de destino, se especifica el tipo de destino. Si el tipo de destino es IP, no elija una dirección IP que ya esté siendo utilizada por un equilibrador de carga.

Target.NotInUse

Descripción: Ningún equilibrador de carga usa el grupo de destino o el destino se encuentra en una zona de disponibilidad que no está habilitada para el equilibrador de carga.

Solución:

  • Compruebe el grupo de destino y asegúrese de que esté configurado para recibir tráfico del equilibrador de carga.
  • Compruebe que la zona de disponibilidad del destino esté habilitada para el equilibrador de carga.

Target.NotRegistered

Descripción: El destino no está registrado en el grupo de destino.

Solución: Compruebe que el destino esté registrado en el grupo de destino.

Target.ResponseCodeMismatch

Descripción: Las comprobaciones de estado no han devuelto el código HTTP esperado.

Solución:

  • Los códigos de éxito son códigos HTTP que se utilizan para comprobar si un destino responde correctamente. Puede especificar valores o intervalos de valores entre 200 y 499. El valor predeterminado es 200. Consulte la configuración de la comprobación de estado del equilibrador de carga para comprobar qué códigos de éxito espera recibir. A continuación, inspeccione los registros de acceso al servidor web para ver si se están devolviendo los códigos de éxito esperados. Modifique el valor del código de éxito si es necesario.
  • Compruebe que la ruta de ping sea válida. La ruta de ping es la meta de los destinos para las comprobaciones de estado. No olvide especificar un URI válido (/path?query). El valor predeterminado es /. Modifique el valor de la ruta de ping si es necesario.

Target.Timeout

Descripción: Tiempo de espera agotado.

Solución: Si puede conectarse, es posible que la página de destino no responda antes de transcurra el período de espera de la comprobación de estado. La mayoría de los servidores web, como NGINX e IIS, permiten registrar el tiempo que tarda el servidor en responder. Si sus solicitudes de comprobación de estado superan el tiempo de espera configurado, puede:

Si no puede conectarse:

  • Compruebe que el grupo de seguridad asociado al destino permita el tráfico desde el equilibrador de carga con el puerto y el protocolo de comprobación de estado. Puede agregar una regla al grupo de seguridad para permitir todo el tráfico del grupo de seguridad del equilibrador de carga. Además, el grupo de seguridad del equilibrador de carga debe permitir el tráfico a los destinos.
  • Compruebe que la red ACL asociada a las subredes de su destino permita el tráfico de entrada en el puerto de comprobación de estado. Compruebe también que permita el tráfico de salida en los puertos efímeros (1024-65535).
  • Compruebe que la red ACL red asociada a las subredes de los nodos del equilibrador de carga permita el tráfico de entrada en los puertos efímeros. Compruebe también que permita el tráfico de salida en los puertos efímeros y en los puertos de comprobación de estado.
  • Compruebe que todos los firewalls del sistema operativo del destino permitan comprobar el estado del tráfico de entrada y salida.
  • Compruebe que la tabla de enrutamiento de las subredes asociadas al destino contenga una entrada que permita comprobar el estado del tráfico de regreso al equilibrador de carga.
  • Compruebe que la utilización de la memoria y la CPU de sus destinos esté dentro de los límites aceptables. Si el uso de memoria o CPU es demasiado alto, añada destinos adicionales o aumente la capacidad de su grupo de escalamiento automático. Si su destino es una instancia de EC2, también puede actualizarla a un tipo de instancia más grande.

Información relacionada

Troubleshoot your Application Load Balancers

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año