Cum să implementați controale eficiente de sănătate în HAProxy

Cum Sa Implementati Controale Eficiente De Sanatate In Haproxy



Configurarea HAProxy-ului pentru a acționa ca echilibrator de încărcare este incompletă dacă nu luați în considerare verificări eficiente ale sănătății serverului. Implementarea controalelor de sănătate ajută la îmbunătățirea fiabilității și disponibilității aplicației. HAProxy acceptă implementarea verificărilor de sănătate care verifică serverele backend pentru a se asigura că starea lor de sănătate este adecvată pentru utilizare.

Numai serverele care trec verificările de sănătate sunt adăugate la rotație. În acest fel, un server nu va fi selectat pentru utilizare dacă nu trece verificarea de sănătate, reducând la minimum șansele de nefuncționare. Pe parcursul acestei postări, vom aprofunda înțelegerea modului în care funcționează controalele de sănătate în HAProxy și a ceea ce este nevoie pentru a implementa un control de sănătate eficient. Sa incepem!

Ce sunt verificările de sănătate în HAProxy

Când configurați HAProxy, o sarcină este să specificați ce servere backend să utilizați pentru aplicația dvs. Astfel, traficul va fi distribuit către servere pentru a evita supraîncărcarea oricărui server. Cu toate acestea, verificările de sănătate ajută la stabilirea faptului că un server este selectat doar pentru a gestiona traficul dacă este în regulă.







Verificările de sănătate se fac pe fiecare server și numai cele care trec sunt adăugate la rotație pentru a fi utilizate în echilibrarea încărcăturii. Verificările de sănătate sunt efectuate prin trimiterea de solicitări, cum ar fi TCP sau HTTP, la un punct final predefinit de pe serverul dvs. backend. Rezultatele de sănătate care sunt trimise înapoi de serverul backend determină starea acestuia. De exemplu, starea serverului ar putea să apară UP sau DOWN sau să trimită o stare ok 200 care confirmă că serverul este sănătos.



La configurarea controalelor de sănătate, asigurați-vă că aveți un punct final predefinit de utilizat pentru verificările de sănătate. Există diferite opțiuni pe care le puteți utiliza pentru a vă configura punctul final. De exemplu, puteți returna un cod de stare sau un mesaj în funcție de starea serverului. Toate verificările de sănătate sunt definite în secțiunea backend a fișierului de configurare HAProxy. Deschideți fișierul de configurare și creați-vă secțiunea frontend.



$ sudo nano /etc/haproxy/haproxy.cfg

Iată un exemplu de bază al unei secțiuni de front-end care leagă portul 80, setează o pagină de statistici și specifică backend-ul implicit.





Următorul pas este crearea secțiunii backend. Următoarele sunt exemple diferite despre cum să implementați o verificare eficientă a stării de sănătate în HAProxy.



Exemplul 1: Implementarea controalelor active de sănătate eficace

O modalitate simplă de implementare a verificărilor de sănătate în HAProxy este prin setarea controalelor de sănătate active. Cu această opțiune, HAProxy va încerca să se conecteze la server. Dacă nu se trimite niciun răspuns, acesta consideră serverul nesănătos și îl elimină din rotație. Modul implicit de implementare a verificărilor active de sănătate este prin adăugarea cuvântului cheie „verificare” pe fiecare linie de server pentru ca HAProxy să le verifice pe toate.

Deși acest prim exemplu funcționează, nu este cel mai bun mod de a implementa controalele de sănătate. În plus, folosește setările implicite. De exemplu, intervalul dintre verificări, marcat ca inter, este setat la două secunde. Scăderea, numărul de verificări nereușite permise, este setat la trei. Pentru a ajusta aceste setări, specificați timpul preferat și numărul de verificări, așa cum se arată în exemplul următor:

Exemplul 2: Implementarea unei verificări de sănătate HTTP

Cu o verificare a stării HTTP, HAProxy va trimite o solicitare HTTP tuturor serverelor cu cuvântul cheie „verificare”. Pe baza răspunsului, se încheie starea serverului. Exemplele de răspunsuri de succes ale serverului se încadrează în intervalul 2xx sau 3xx. Un răspuns precum 200 OK înseamnă că serverul este într-o stare bună.

Pentru acest exemplu, adăugați linia „opțiune httpchk” în backend.

Exemplul 3: Lucrul cu o solicitare GET

HAProxy trimite o solicitare GET către calea „/” atunci când face o solicitare HTTP. Cu toate acestea, dacă aveți punctul final configurat într-o altă cale, puteți specifica calea URL, cum ar fi „/health”, iar HAProxy îi va trimite cererea GET.

Pe baza punctului final, serverul va folosi răspunsul pentru a determina starea serverului. Iată cum să o implementați:

Exemplul 4: Specificarea unei căi de solicitare GET și a stării răspunsului

Cu un punct final, puteți specifica ce răspuns de succes să vă așteptați de la solicitarea GET de la punctul final pentru a determina starea serverului. Pentru acest exemplu, calea cererii noastre GET este „/health” și ne așteptăm la o stare de răspuns de 200 pentru a confirma că serverul este în stare bună pentru a gestiona echilibrarea încărcăturii și alte sarcini.

După ce ați modificat fișierul de configurare HAProxy, reporniți HAProxy pentru ca modificările să intre în vigoare.

Asta este! Ați implementat controalele de sănătate eficiente pe HAProxy. Puteți accesa pagina de statistici sau puteți verifica fișierul jurnal cu următoarea comandă pentru a confirma că verificările de sănătate funcționează conform așteptărilor:

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

Concluzie

Puteți implementa o verificare eficientă a stării de sănătate în HAProxy în diferite moduri. Verificările de sănătate sunt implementate în secțiunea backend a fișierului de configurare HAProxy, iar această postare a oferit diferite exemple despre cum să procedați în acest sens. Verificați metoda ideală și implementați confortabil o verificare eficientă a stării de sănătate în HAProxy.