Cómo implementar controles de salud efectivos en HAProxy

Como Implementar Controles De Salud Efectivos En Haproxy



Configurar su HAProxy para que actúe como su equilibrador de carga está incompleto si no considera controles efectivos del estado del servidor. La implementación de controles de estado ayuda a mejorar la confiabilidad y disponibilidad de la aplicación. HAProxy admite la implementación de comprobaciones de estado que verifican los servidores backend para determinar si su estado de salud es adecuado para su uso.

Solo los servidores que pasan las comprobaciones de estado se agregan a la rotación. De esa manera, no se seleccionará un servidor para su uso si no pasa la verificación de estado, minimizando las posibilidades de tiempo de inactividad. A lo largo de esta publicación, profundizaremos en la comprensión de cómo funcionan los controles de estado en HAProxy y qué se necesita para implementar un control de estado efectivo. ¡Vamos a empezar!

¿Qué son los controles de estado en HAProxy?

Al configurar HAProxy, una tarea es especificar qué servidores backend usar para su aplicación. De esa forma, el tráfico se distribuirá a los servidores para evitar sobrecargar ningún servidor. Sin embargo, las comprobaciones de estado ayudan a determinar que un servidor sólo se selecciona para manejar el tráfico si está bien.







Se realizan comprobaciones de estado en cada servidor y solo aquellos que pasan se agregan a la rotación para su uso en el equilibrio de carga. Las comprobaciones de estado se realizan enviando solicitudes, como TCP o HTTP, a un punto final predefinido en su servidor backend. Los resultados de salud que envía el servidor backend determinan su estado. Por ejemplo, el estado del servidor podría mostrar ARRIBA o ABAJO o enviar un estado correcto 200 que confirma que el servidor está en buen estado.



Al configurar las comprobaciones de estado, asegúrese de tener un punto final predefinido para utilizarlo en las comprobaciones de estado. Hay diferentes opciones que puede utilizar para configurar su 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 están definidas en la sección backend de su archivo de configuración HAProxy. Abra el archivo de configuración y cree su sección de interfaz.



$ sudo nano /etc/haproxy/haproxy.cfg

A continuación se muestra un ejemplo básico de una sección de interfaz que vincula el puerto 80, establece una página de estadísticas y especifica el servidor predeterminado.





El siguiente paso es crear la sección backend. Los siguientes son diferentes ejemplos sobre cómo implementar una verificación de estado efectiva en HAProxy.



Ejemplo 1: Implementación de controles de salud activos efectivos

Una forma sencilla de implementar las comprobaciones de estado en HAProxy es configurando las comprobaciones de estado activas. Con esta opción, HAProxy intentará conectarse con el servidor. Si no se envía ninguna respuesta, considera que el servidor no está en buen estado y lo elimina de la rotación. La forma predeterminada de implementar las comprobaciones de estado activas es agregar la palabra clave 'verificar' en cada línea del servidor para que HAProxy las verifique todas.

Aunque este primer ejemplo funciona, no es la mejor manera de implementar los controles de salud. Además, utiliza la configuración predeterminada. Por ejemplo, el intervalo entre comprobaciones, marcado como inter, se establece en dos segundos. La caída, el número de controles fallidos permitidos, se fija en tres. Para ajustar esta configuración, especifique el tiempo intermedio preferido y el número de comprobaciones como se muestra en el siguiente ejemplo:

Ejemplo 2: Implementación de una verificación de estado HTTP

Con una verificación de estado HTTP, HAProxy enviará una solicitud HTTP a todos los servidores con la palabra clave 'verificar'. Según la respuesta, concluye el estado del servidor. Ejemplos de respuestas exitosas del servidor se encuentran en el rango de 2xx o 3xx. Una respuesta como 200 OK significa que el servidor está en buen estado.

Para este ejemplo, agregue la línea 'opción httpchk' en su backend.

Ejemplo 3: trabajar con una solicitud GET

HAProxy envía una solicitud GET a la ruta '/' al realizar una solicitud HTTP. Sin embargo, si tiene su punto final configurado en otra ruta, puede especificar la ruta URL como '/health' y HAProxy le enviará la solicitud GET.

Según su punto final, el servidor utilizará la respuesta para determinar el estado del servidor. A continuación se explica cómo implementarlo:

Ejemplo 4: especificar una ruta de solicitud GET y un estado de respuesta

Con un punto final, puede especificar qué respuesta exitosa esperar 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 se encuentra en buen estado para manejar el equilibrio de carga y otras tareas.

Una vez que haya modificado su archivo de configuración de HAProxy, reinicie HAProxy para que los cambios surtan efecto.

¡Eso es todo! Implementó los controles de salud efectivos en su HAProxy. Puede acceder a la página de estadísticas o consultar el archivo de registro con el siguiente comando para confirmar que las comprobaciones de estado funcionan como se esperaba:

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

Conclusión

Puede implementar una verificación de estado efectiva en HAProxy de diferentes maneras. Las comprobaciones de estado se implementan en la sección backend del archivo de configuración de HAProxy, y esta publicación ha brindado diferentes ejemplos sobre cómo hacerlo. Verifique su método ideal e implemente cómodamente un control de salud efectivo en HAProxy.