Hvordan implementere effektive helsesjekker i HAProxy

Hvordan Implementere Effektive Helsesjekker I Haproxy



Å konfigurere HAProxy til å fungere som lastbalanser er ufullstendig hvis du ikke vurderer effektive serverhelsesjekker. Implementering av helsesjekkene hjelper med å forbedre påliteligheten og tilgjengeligheten til applikasjonen. HAProxy støtter implementering av helsesjekkene som sjekker backend-serverne for å sikre at deres helsetilstand er egnet for bruk.

Bare serverne som består helsesjekkene legges til rotasjonen. På den måten vil ikke en server bli valgt for bruk hvis den ikke består helsesjekken, noe som minimerer sjansene for nedetid. Gjennom dette innlegget skal vi grave dypere i å forstå hvordan helsesjekkene i HAProxy fungerer og hva som skal til for å implementere en effektiv helsesjekk. La oss begynne!

Hva er helsesjekker i HAProxy

Når du konfigurerer HAProxy, er en oppgave å spesifisere hvilke backend-servere som skal brukes for applikasjonen din. På den måten vil trafikken bli distribuert til serverne for å unngå overbelastning av noen server. Helsesjekker hjelper imidlertid med å fastslå at en server kun er valgt til å håndtere trafikken hvis den er i orden.







Helsesjekker gjøres på hver server, og kun de som består blir lagt til rotasjonen for bruk i lastbalanseringen. Helsesjekkene utføres ved å sende forespørsler, for eksempel TCP eller HTTP, til et forhåndsdefinert endepunkt på din backend-server. Helseresultatene som sendes tilbake av backend-serveren bestemmer statusen. For eksempel kan serverens status vises OPP eller NED eller sende en ok 200-status som bekrefter at serveren er sunn.



Når du konfigurerer helsesjekkene, sørg for at du har et forhåndsdefinert endepunkt som skal brukes for helsesjekkene. Det er forskjellige alternativer du kan bruke til å sette opp endepunktet. Du kan for eksempel returnere en statuskode eller melding avhengig av serverens status. Alle helsesjekkene er definert i backend-delen av HAProxy-konfigurasjonsfilen. Åpne konfigurasjonsfilen og lag frontend-delen.



$ sudo nano /etc/haproxy/haproxy.cfg

Her er et grunnleggende eksempel på en frontend-seksjon som binder port 80, setter en statistikkside og spesifiserer standard backend.





Det neste trinnet er å lage backend-delen. Følgende er forskjellige eksempler på hvordan du implementerer en effektiv helsesjekk i HAProxy.



Eksempel 1: Implementering av effektive aktive helsesjekker

En enkel måte å implementere helsesjekkene i HAProxy på er ved å sette de aktive helsesjekkene. Med dette alternativet vil HAProxy prøve å koble til serveren. Hvis det ikke sendes noe svar, anser den serveren som usunn og fjerner den fra rotasjonen. Standardmåten for å implementere de aktive helsesjekkene er ved å legge til nøkkelordet 'sjekk' på hver serverlinje for at HAProxy skal sjekke dem alle.

Selv om dette første eksemplet fungerer, er det ikke den beste måten å implementere helsesjekkene på. Dessuten bruker den standardinnstillingene. For eksempel er intervallet mellom kontrollene, merket som inter, satt til to sekunder. Fallet, antall mislykkede kontroller tillatt, er satt til tre. For å justere disse innstillingene, spesifiser foretrukket mellomtid og antall kontroller som vist i følgende eksempel:

Eksempel 2: Implementering av en HTTP-helsesjekk

Med en HTTP-helsesjekk vil HAProxy sende en HTTP-forespørsel til alle servere med nøkkelordet 'sjekk'. Basert på svaret konkluderer den serverens status. Eksempler på vellykkede serversvar faller i området 2xx eller 3xx. Et svar som 200 OK betyr at serveren er i god stand.

For dette eksemplet, legg til 'option httpchk'-linjen i backend.

Eksempel 3: Arbeid med en GET-forespørsel

HAProxy sender en GET-forespørsel til banen '/' når du lager en HTTP-forespørsel. Men hvis du har endepunktet ditt konfigurert i en annen bane, kan du spesifisere URL-banen som '/health', og HAProxy vil sende GET-forespørselen til den.

Basert på endepunktet ditt, vil serveren bruke svaret til å bestemme serverens status. Slik implementerer du det:

Eksempel 4: Spesifisering av en GET-forespørselsbane og svarstatus

Med et endepunkt kan du spesifisere hvilket vellykket svar du kan forvente fra GET-forespørselen for endepunkt for å bestemme serverens status. For dette eksemplet er GET-forespørselsbanen vår '/helse', og vi forventer en 200 svarstatus for å bekrefte at serveren er i god helse for å håndtere belastningsbalansering og andre oppgaver.

Når du har endret HAProxy-konfigurasjonsfilen, start HAProxy på nytt for at endringene skal tre i kraft.

Det er det! Du implementerte de effektive helsesjekkene på HAProxyen din. Du kan få tilgang til statistikksiden eller sjekke loggfilen med følgende kommando for å bekrefte at helsesjekkene fungerer som forventet:

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

Konklusjon

Du kan implementere en effektiv helsesjekk i HAProxy på forskjellige måter. Helsesjekkene er implementert i backend-delen av HAProxy-konfigurasjonsfilen, og dette innlegget har gitt forskjellige eksempler på hvordan man går frem. Sjekk din ideelle metode og implementer komfortabelt en effektiv helsesjekk i HAProxy.