Comprobaciones del estado
Las comprobaciones del sistema del equilibrador de carga son pruebas para confirmar la disponibilidad de los servidores backend.
Estas pruebas se realizan en forma de solicitud o intento de conexión según el protocolo. La política de comprobación del sistema incluye un intervalo de tiempo especificado para garantizar que los servidores backend se supervisan continuamente. Si un servidor no supera una comprobación de estado, el equilibrador, de carga, saca temporalmente al servidor de la rotación. Si posteriormente el servidor pasa una comprobación del sistema posterior, el LB devuelve ese servidor backend a la rotación de balance.
La política de comprobación del sistema se configura al crear un juego de backends. Se pueden configurar comprobaciones del sistema a nivel de TCP o a nivel de HTTP para los servidores de backend. Para los juegos de backends configurados con SSL, las comprobaciones del sistema también utilizan el cifrado SSL.
-
Las comprobaciones del sistema a nivel de TCP intentan realizar una conexión TCP con los servidores backend y validar la respuesta en función del estado de conexión.
-
Las comprobaciones del sistema a nivel de HTTP envían las solicitudes a los servidores de backend de una determinada URI y validan la respuesta en función del código de estado o de los datos de entidad (cuerpo) devueltos.
Configure el protocolo de comprobación del sistema para que coincida con su aplicación o servicio. Si ejecuta un servicio HTTP, configure una comprobación del sistema a nivel de HTTP. Si ejecuta una comprobación del sistema a nivel de TCP en un servicio HTTP, es posible que no reciba una respuesta precisa. El establecimiento de comunicación TCP puede ser correcto e indicar que el servicio está activo, incluso si el servicio HTTP no está configurado correctamente o tiene otros problemas. Aunque la comprobación del sistema no devuelve ningún error, es posible que experimente fallos de transacción.
Por ejemplo:
-
El servicio HTTP backend tiene problemas cuando se comunica con la dirección URL para la comprobación del estado y la dirección URL para la comprobación del estado devuelve mensajes 5
nn. Una comprobación del sistema HTTP captura el mensaje de la URL de comprobación del sistema y marca el servicio como caído. En este caso, el establecimiento de comunicación de la comprobación del sistema TCP se realiza correctamente y marca el servicio como en buen estado, aunque el servicio HTTP podría no poder usarse. -
El servicio HTTP del backend responde con mensajes 4nn debido al problema de autorización o al hecho de que no hay contenido configurado. Una comprobación del sistema TCP no detecta estos errores.
El servicio proporciona capacidades de comprobación del sistema específicas de la aplicación para ayudar a aumentar la disponibilidad y reducir la ventana de mantenimiento de la aplicación.
Los indicadores de estado se utilizan para informar del estado general de un equilibrador de carga y sus servidores/conjuntos de backend. Los estados posibles son: ok, warning, critical, unknown. El estado del sistema se actualiza cada tres minutos. No hay disponible granularidad más precisa. No se proporcionan datos históricos de salud.
Interpretación de Problemas de Estado del Equilibrador de Carga
En el nivel más alto, el estado del equilibrador de carga refleja el estado de sus componentes. Los indicadores de estado proporcionan información que podría necesitar para aumentar detalle e investigar un problema. A continuación, se muestran varios problemas comunes que los indicadores de estado pueden ayudar a detectar y corregir.
- Comprobación del sistema mal configurada
-
Todos los servidores backend de uno o más listeners afectados informan de que no están en mal estado. Si tras la comprobación se detecta que los servidores de backend no tienen problemas, es probable que un juego de backends contenga una comprobación del sistema con una configuración incorrecta.
- Listener mal configurado
-
Todos los indicadores del estado de servidor backend muestran el valor CORRECTO, pero el equilibrador de carga no transfiere tráfico en un listener. El listener se puede configurar para recibir en el puerto incorrecto, utilizar el protocolo incorrecto o utilizar la política incorrecta. Si la investigación llega a la conclusión de que el listener no está fallando, debe comprobar la configuración de la regla de seguridad.
- Regla de seguridad mal configurada
-
Los indicadores de estado le ayudan a diagnosticar los siguientes casos de regla de seguridad mal configurada:
-
Todos los indicadores de estado muestran el estado correcto, pero el tráfico no fluye (como sucede con los listeners configurados incorrectamente). Si el listener no tiene fallos, compruebe la configuración de la regla de seguridad.
-
Todos los indicadores de estado de salud informan como no saludables. Ha comprobado la configuración de la comprobación del sistema y los servicios se ejecutan correctamente en los servidores de backend. En este caso, es posible que las reglas de seguridad no incluyan el rango de direcciones IP para el origen de las solicitudes de comprobación del sistema. La IP de origen para las peticiones de comprobación del sistema pertenece a una instancia de computación gestionada por el servicio de equilibrio de carga.
Nota
El tráfico también se puede bloquear debido a tablas de rutas mal configuradas en las instancias informáticas.
-
- El servidor de backend no está en buen estado
-
Puede que un servidor de backend esté en mal estado o que la comprobación del sistema tenga una configuración incorrecta. Para ver el código del error correspondiente, compruebe el campo de estado de los detalles del servidor backend a través de la interfaz de usuario web de Compute o la CLI de OCI.
Efectos secundarios comunes de la configuración incorrecta de las comprobaciones del sistema del equilibrador de carga
Los escenarios de configuración errónea se conocen con regularidad. Esta página ayuda con la resolución de problemas.
- Puerto incorrecto
- En este escenario, se notifica que todos los servidores de backend están en mal estado. Si ha confirmado que no hay problemas con los servidores backend, puede que haya cometido un error al definir el puerto. Se debe permitir el tráfico y el backend debe recibir en ese puerto.
- Ruta incorrecta
-
En este escenario, se notifica que todos los servidores de backend están en mal estado. Si ha confirmado que no hay problemas con los servidores backend, puede que haya cometido un error al definir la ruta de acceso para la comprobación del sistema HTTP. Debe coincidir con una aplicación real en el backend.
Puede usar la utilidad curl para ejecutar una prueba desde un sistema dentro de la misma red. Por ejemplo:
curl -i http://backend_ip_address/health.Recibe el código del estado configurado en la respuesta:"msg":"invalid statusCode","statusCode":404,"expected":"200" - Protocolo incorrecto
-
En este escenario, se notifica que todos los servidores de backend están en mal estado. Si ha confirmado que no hay problemas con los servidores backend, para una comprobación del sistema HTTP puede que haya cometido un error al definir el código de estado. Debe coincidir con el código de estado real que se devuelve del backend. Una falta de coincidencia típica es cuando un backend devuelve un código de estado 302 mientras se espera un código de estado 200. Esto suele deberse a que el backend le dirige a una página de conexión u otra ubicación del servidor. Puede hacer que el backend devuelva el código esperado o utilizar 302 en la Configuración de Comprobación del Sistema.
Mensaje de error:
msg:invalid statusCode, statusCode:nnn,expected:200(dondennnrepresenta el código de estado real devuelto). - Patrón de expresión regular incorrecto
-
Solo se aplica a los equilibradores de carga con persistencia de sesión activada. En este escenario, se notifica que todos los servidores de backend están en mal estado. Si ha confirmado que no hay problemas con los servidores backend, puede que haya cometido un error al definir un patrón de expresión regular que no sea consistente con el cuerpo o que el backend no devuelva el cuerpo esperado. En este caso, puede cambiar el backend para que coincida con el patrón o corregir el patrón para que coincida con el backend.
Mensaje de error:
response match resulte: failed. - Reglas de seguridad mal configuradas
-
En este caso, todos o algunos servidores backend informan que no están en buen estado. Si ha confirmado que no hay problemas con los servidores backend, puede que haya configurado incorrectamente los grupos de seguridad de red, las listas de seguridad o los firewalls locales (como firewalld, iptables o SELinux).
En este escenario, puede utilizar las utilidades curl o netcat para ejecutar pruebas desde un sistema que pertenezcaa a la misma subred y grupo de seguridad de red que los HTTP de las instancias del equilibrador que se encuentren. Por ejemplo:
curl -i http://backend_ip_address/health TCP or nc -zvw3 backend_ip_address 443.Los firewalls locales se pueden verificar mediante el comando: firewall-cmd --list-all --zone=public. Si faltan las reglas esperadas en la configuración del firewall, agregue el servicio necesario. Por ejemplo, para agregar el puerto HTTP 80:
firewall-cmd --zone=public --add-service=http firewall-cmd --zone=public --permanent --add-service=http