Tutoriales

Cómo implementar controles de salud efectivos en HAProxy

La configuración de HAProxy como equilibrador de carga está incompleta si no se consideran comprobaciones efectivas del estado del servidor. La implementación de controles de estado puede ayudar a mejorar la confiabilidad y disponibilidad de su aplicación. HAProxy admite comprobaciones de estado, que comprueban los servidores backend para determinar si su estado es adecuado para su uso.

Solo los servidores que pasen la verificación de estado se agregarán a la rotación. De esta manera, si el servidor no pasa la verificación de estado, no será seleccionado para su uso, minimizando la posibilidad de tiempo de inactividad. En este artículo, veremos más de cerca cómo funcionan los controles de estado en HAProxy y cómo implementar controles de estado efectivos. ¡Empecemos!

¿Qué son los controles de salud en HAProxy?

Al configurar HAProxy, una tarea es especificar qué servidores backend utiliza la aplicación. De esta forma, el tráfico se distribuirá a los servidores para evitar sobrecargar ningún servidor. Sin embargo, las comprobaciones de estado pueden ayudar a garantizar que los servidores se seleccionen para manejar el tráfico sólo en circunstancias normales.

Se realiza una verificación de estado en cada servidor y solo los servidores que pasan se agregan a la rotación para el equilibrio de carga. Las comprobaciones de estado se realizan enviando solicitudes a puntos finales predefinidos (como TCP o HTTP) en el servidor backend. Los resultados de salud devueltos por el servidor backend determinan su estado. Por ejemplo, el estado del servidor puede mostrar ARRIBA o ABAJO o enviar un estado 200 confirmando que el servidor está en buen estado.

LEER  Zenity: creación de cuadros de diálogo GUI en scripts Bash

Al configurar las comprobaciones de estado, asegúrese de tener un punto final predefinido para las comprobaciones de estado. Puede utilizar diferentes opciones para configurar el punto final. Por ejemplo, puede devolver un código de estado o un mensaje según el estado del servidor. Todas las comprobaciones de estado se definen en la sección backend del archivo de configuración de HAProxy. Abre el perfil y crea tu parte frontend.

$ sudo nano /etc/haproxy/haproxy.cfg

A continuación se muestra un ejemplo básico de la parte del front-end, que vincula el puerto 80, configura la página de estadísticas y especifica el backend predeterminado.

El siguiente paso es construir la parte backend. Los siguientes son diferentes ejemplos de cómo implementar controles de salud efectivos en HAProxy.

Ejemplo 1: Implementación de controles de salud proactivos y efectivos

Una forma sencilla de implementar controles de estado en HAProxy es configurar controles de estado activos. Con esta opción, HAProxy intentará conectarse al servidor. Si no se envía ninguna respuesta, el servidor se considera en mal estado y se retira de la rotación. La forma predeterminada de implementar comprobaciones de estado proactivas es agregar la palabra clave «verificar» en cada fila del servidor para que HAProxy pueda verificar todos los servidores.

Aunque el primer ejemplo funciona, no es la mejor manera de implementar un control de estado. Además, utiliza la configuración predeterminada. Por ejemplo, el intervalo entre comprobaciones marcadas como «inter» se establece en dos segundos. La caída (número de comprobaciones fallidas permitidas) se establece en 3. Para ajustar esta configuración, especifique su intervalo preferido y la cantidad de comprobaciones, como en el siguiente ejemplo:

Ejemplo 2: implementar la verificación de estado HTTP

A través de comprobaciones de estado HTTP, HAProxy enviará solicitudes HTTP a todos los servidores utilizando la palabra clave «check». Según la respuesta, puede determinar el estado del servidor. Ejemplos de respuestas exitosas del servidor se encuentran dentro del rango 2xx o 3xx. Una respuesta como 200 OK significa que el servidor está en buenas condiciones.

Para este ejemplo, agregue la línea «opción httpchk» al backend.

Ejemplo 3: uso de la solicitud GET

Cuando HAProxy realiza una solicitud HTTP, enviará una solicitud GET a la ruta «/». Sin embargo, si configura el punto final en una ruta diferente, puede especificar una ruta URL, como «/health», a la que HAProxy enviará una solicitud GET.

Dependiendo de su punto final, el servidor utilizará la respuesta para determinar el estado del servidor. Aquí se explica cómo implementarlo:

Ejemplo 4: especificar la ruta de solicitud GET y el estado de respuesta

A través del punto final, puede especificar la respuesta exitosa esperada de la solicitud GET del punto final para determinar el estado del servidor. Para este ejemplo, nuestra ruta de solicitud GET es «/health» y esperamos un estado de respuesta 200 para confirmar que el servidor está en buen estado y puede manejar el equilibrio de carga y otras tareas.

Después de modificar el archivo de configuración de HAProxy, reinicie HAProxy para que los cambios surtan efecto.

¡Eso es todo! Implementó una verificación de estado válida en HAProxy. Puede usar el siguiente comando para acceder a la página de estadísticas o verificar el archivo de registro para confirmar que la verificación de estado está funcionando como se esperaba:

$ cola -f /var/log/haproxy.log

en conclusión

Puede implementar controles de salud efectivos en HAProxy de diferentes maneras. Las comprobaciones de estado se implementan en la sección backend del archivo de configuración de HAProxy y este artículo brinda diferentes ejemplos de cómo hacerlo. Verifique su enfoque ideal e implemente fácilmente controles de salud efectivos en HAProxy.

LEER  Cómo instalar correctamente el servidor y cliente MySQL en Linux

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba