Hvordan man implementerer effektive sundhedstjek i HAProxy

Hvordan Man Implementerer Effektive Sundhedstjek I Haproxy



Opsætning af din HAProxy til at fungere som din load balancer er ufuldstændig, hvis du ikke overvejer effektive serversundhedstjek. Implementering af sundhedstjekket hjælper med at forbedre applikationens pålidelighed og tilgængelighed. HAProxy understøtter implementering af sundhedstjek, der kontrollerer backend-serverne for at sikre, at deres helbredstilstand er egnet til brug.

Kun de servere, der består sundhedstjekket, føjes til rotationen. På den måde vil en server ikke blive valgt til brug, hvis den ikke består sundhedstjekket, hvilket minimerer chancerne for nedetid. Igennem dette indlæg vil vi grave dybere ned i at forstå, hvordan sundhedstjekket i HAProxy fungerer, og hvad der skal til for at implementere et effektivt sundhedstjek. Lad os begynde!

Hvad er sundhedstjek i HAProxy

Når du konfigurerer HAProxy, er en opgave at specificere, hvilke backend-servere der skal bruges til din applikation. På den måde vil trafikken blive fordelt til serverne for at undgå overbelastning af enhver server. Sundhedstjek hjælper dog med at konstatere, at en server kun er valgt til at håndtere trafikken, hvis den er i orden.







Sundhedstjek udføres på hver server, og kun de, der består, føjes til rotationen til brug i belastningsbalanceringen. Sundhedstjekket udføres ved at sende anmodninger, såsom TCP eller HTTP, til et foruddefineret slutpunkt på din backend-server. Sundhedsresultaterne, der sendes tilbage af backend-serveren, bestemmer dens status. For eksempel kan serverens status vise OP eller NED eller sende en okay 200-status, som bekræfter, at serveren er sund.



Når du konfigurerer sundhedstjekket, skal du sikre dig, at du har et foruddefineret slutpunkt til brug for sundhedstjekket. Der er forskellige muligheder, som du kan bruge til at konfigurere dit slutpunkt. For eksempel kan du returnere en statuskode eller besked afhængigt af serverens status. Alle sundhedstjek er defineret i backend-sektionen af ​​din HAProxy-konfigurationsfil. Åbn konfigurationsfilen og opret din frontend-sektion.



$ sudo nano /etc/haproxy/haproxy.cfg

Her er et grundlæggende eksempel på en frontend-sektion, der binder port 80, angiver en statistikside og angiver standard-backend.





Det næste trin er at oprette backend-sektionen. Følgende er forskellige eksempler på, hvordan man implementerer et effektivt sundhedstjek i HAProxy.



Eksempel 1: Implementering af effektive aktive sundhedstjek

En enkel måde at implementere sundhedstjek i HAProxy er ved at indstille de aktive sundhedstjek. Med denne mulighed vil HAProxy prøve at oprette forbindelse til serveren. Hvis der ikke sendes noget svar, anser den serveren for usund og fjerner den fra rotationen. Standardmetoden til at implementere de aktive sundhedstjek er ved at tilføje nøgleordet 'check' på hver serverlinje, så HAProxy kan kontrollere dem alle.

Selvom dette første eksempel virker, er det ikke den bedste måde at implementere sundhedstjekket på. Desuden bruger den standardindstillingerne. For eksempel er intervallet mellem kontrollerne, markeret som inter, sat til to sekunder. Faldet, det tilladte antal mislykkede kontroller, er sat til tre. For at justere disse indstillinger skal du angive den foretrukne mellemtid og antallet af kontroller som vist i følgende eksempel:

Eksempel 2: Implementering af et HTTP-sundhedstjek

Med et HTTP-sundhedstjek sender HAProxy en HTTP-anmodning til alle servere med nøgleordet 'check'. Baseret på svaret konkluderer den serverens status. Eksempler på vellykkede serversvar falder i intervallet 2xx eller 3xx. Et svar som 200 OK betyder, at serveren er i god stand.

Til dette eksempel skal du tilføje linjen 'option httpchk' i din backend.

Eksempel 3: Arbejde med en GET-anmodning

HAProxy sender en GET-anmodning til stien '/', når den laver en HTTP-anmodning. Men hvis du har dit slutpunkt konfigureret i en anden sti, kan du angive URL-stien såsom '/health', og HAProxy sender GET-anmodningen til den.

Baseret på dit slutpunkt vil serveren bruge svaret til at bestemme serverens status. Sådan implementerer du det:

Eksempel 4: Angivelse af en GET-anmodningssti og svarstatus

Med et slutpunkt kan du specificere, hvilket succesfuldt svar du kan forvente fra slutpunkts GET-anmodningen for at bestemme serverens status. For dette eksempel er vores GET-anmodningssti '/health', og vi forventer en 200 svar-status for at bekræfte, at serveren er i god tilstand til at håndtere belastningsbalancering og andre opgaver.

Når du har ændret din HAProxy-konfigurationsfil, skal du genstarte HAProxy for at ændringerne træder i kraft.

Det er det! Du implementerede de effektive sundhedstjek på din HAProxy. Du kan få adgang til statistiksiden eller kontrollere logfilen med følgende kommando for at bekræfte, at sundhedstjekket fungerer som forventet:

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

Konklusion

Du kan implementere et effektivt sundhedstjek i HAProxy på forskellige måder. Sundhedstjekket er implementeret i backend-sektionen af ​​HAProxy-konfigurationsfilen, og dette indlæg har givet forskellige eksempler på, hvordan man gør det. Tjek din ideelle metode og implementer komfortabelt et effektivt sundhedstjek i HAProxy.