Jak implementovat efektivní zdravotní kontroly v HAProxy

Jak Implementovat Efektivni Zdravotni Kontroly V Haproxy



Nastavení vašeho HAProxy, aby fungovalo jako váš vyvažovač zátěže, je neúplné, pokud neberete v úvahu efektivní kontroly stavu serveru. Implementace kontrol stavu pomáhá zlepšit spolehlivost a dostupnost aplikace. HAProxy podporuje implementaci zdravotních kontrol, které kontrolují backend servery, aby se ujistil, že jejich zdravotní stav je vhodný pro použití.

Do rotace jsou přidány pouze servery, které projdou kontrolou stavu. Tímto způsobem nebude server vybrán k použití, pokud neprojde kontrolou stavu, čímž se minimalizují šance na výpadky. V tomto příspěvku se budeme hlouběji zabývat tím, jak fungují zdravotní kontroly v HAProxy a co je potřeba k implementaci účinné kontroly stavu. Pojďme začít!

Co jsou zdravotní kontroly v HAProxy

Při konfiguraci HAProxy je jedním úkolem určit, jaké servery backend použít pro vaši aplikaci. Tímto způsobem bude provoz distribuován na servery, aby nedošlo k přetížení jakéhokoli serveru. Kontroly stavu však pomáhají ujistit se, že server je vybrán ke zpracování provozu pouze v případě, že je v pořádku.







Kontroly stavu se provádějí na každém serveru a pouze ty, které projdou, jsou přidány do rotace pro použití při vyrovnávání zátěže. Kontroly stavu se provádějí odesíláním požadavků, jako je TCP nebo HTTP, do předdefinovaného koncového bodu na vašem backendovém serveru. Výsledky stavu, které jsou odesílány zpět serverem backend, určují jeho stav. Stav serveru může například ukazovat NAHORU nebo DOLŮ nebo odeslat stav OK 200, který potvrzuje, že je server v pořádku.



Při konfiguraci kontrol stavu se ujistěte, že máte předdefinovaný koncový bod, který chcete použít pro kontroly stavu. Existují různé možnosti, které můžete použít k nastavení koncového bodu. Můžete například vrátit stavový kód nebo zprávu v závislosti na stavu serveru. Všechny kontroly stavu jsou definovány v backendové části vašeho konfiguračního souboru HAProxy. Otevřete konfigurační soubor a vytvořte svou frontendovou sekci.



$ sudo nano /etc/haproxy/haproxy.cfg

Zde je základní příklad frontendové části, která váže port 80, nastavuje stránku statistik a určuje výchozí backend.





Dalším krokem je vytvoření backendové sekce. Následují různé příklady, jak implementovat efektivní kontrolu stavu v HAProxy.



Příklad 1: Implementace účinných aktivních zdravotních kontrol

Jednoduchý způsob implementace kontrol stavu v HAProxy je nastavením aktivních kontrol stavu. S touto volbou se HAProxy pokusí připojit k serveru. Pokud není odeslána žádná odpověď, považuje server za nefunkční a vyřadí jej z rotace. Výchozí způsob implementace aktivních kontrol stavu je přidáním klíčového slova „check“ na každý řádek serveru, aby je HAProxy zkontroloval všechny.

Ačkoli tento první příklad funguje, není to nejlepší způsob, jak implementovat kontroly stavu. Kromě toho používá výchozí nastavení. Například interval mezi kontrolami, označený jako inter, je nastaven na dvě sekundy. Pád, počet povolených neúspěšných kontrol, je nastaven na tři. Chcete-li upravit tato nastavení, zadejte preferovaný mezičas a počet kontrol, jak je znázorněno v následujícím příkladu:

Příklad 2: Implementace kontroly stavu HTTP

Při kontrole stavu HTTP odešle HAProxy požadavek HTTP na všechny servery s klíčovým slovem „check“. Na základě odpovědi vyhodnotí stav serveru. Příklady úspěšných odpovědí serveru spadají do rozsahu 2xx nebo 3xx. Odpověď jako 200 OK znamená, že server je v dobrém stavu.

Pro tento příklad přidejte do backendu řádek „option httpchk“.

Příklad 3: Práce s požadavkem GET

HAProxy odešle požadavek GET do cesty „/“ při vytváření požadavku HTTP. Pokud však máte svůj koncový bod nakonfigurovaný v jiné cestě, můžete zadat cestu URL, například „/health“, a HAProxy na něj odešle požadavek GET.

Na základě vašeho koncového bodu server použije odpověď k určení stavu serveru. Postup implementace:

Příklad 4: Zadání cesty požadavku GET a stavu odpovědi

U koncového bodu můžete určit, jakou úspěšnou odpověď očekávat od požadavku GET koncového bodu, abyste určili stav serveru. V tomto příkladu je naše cesta požadavku GET „/health“ a očekáváme, že stav odpovědi 200 potvrdí, že server je v dobrém stavu, aby mohl zvládnout vyrovnávání zátěže a další úkoly.

Po úpravě konfiguračního souboru HAProxy restartujte HAProxy, aby se změny projevily.

A je to! Implementovali jste efektivní kontroly stavu na HAProxy. Můžete se dostat na stránku statistik nebo zkontrolovat soubor protokolu pomocí následujícího příkazu, abyste potvrdili, že kontroly stavu fungují podle očekávání:

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

Závěr

Efektivní kontrolu stavu v HAProxy můžete implementovat různými způsoby. Kontroly stavu jsou implementovány v backendové části konfiguračního souboru HAProxy a tento příspěvek uvádí různé příklady, jak na to. Ověřte si svou ideální metodu a pohodlně implementujte efektivní zdravotní kontrolu v HAProxy.