Dela via


Skapa en anpassad HTTP/HTTPS-hälsoavsökning för Azure Load Balancer

I den här artikeln lär du dig att skapa ett anpassat API för HTTP-hälsoavsökningar med python, FLASK och psutil. Hälsokontroller utförs på serverdelsinstanser med HTTP GET och markeras som felfria eller inte felfria baserat på svaret. Den anpassade avsökningen i den här artikeln markerar instanser som felaktiga om deras CPU-användning är över 75 %. HTTP-hälsoavsökningar kan användas för många syften, inte bara cpu-användning, när de kombineras med din egen logik och hälsokontroller.

Förutsättningar

Viktigt!

Priserna per timme börjar från det ögonblick då Bastion distribueras, oavsett utgående dataanvändning. Mer information finns i Priser och SKU:er. Om du distribuerar Bastion som en del av en självstudie eller ett test rekommenderar vi att du tar bort den här resursen när du har använt den.

Konfigurera API på virtuell dator

I det här avsnittet konfigurerar du den virtuella datorn så att den kör det anpassade API:et för HTTP-hälsoavsökningen.

  1. Anslut till den virtuella datorn med hjälp av SSH eller Azure Bastion. Den här artikeln använder SSH för att ansluta till den virtuella datorn.

  2. Skapa en ny mapp för att lagra koden för hälso-API:et och ange den nya mappen:

    mkdir health_API && cd health_API
    
  3. Skapa en ny Python-fil och klistra in följande kod i filen:

    touch health.py && vim health.py
    
    # Import libraries  
    from flask import Flask 
    from flask_restful import Resource, Api 
    import psutil 
    
    # Define app and API 
        app = Flask(__name__) 
        api = Api(app) 
    
    # Define API GET method 
    class check_CPU_VM(Resource): 
        def get(self):
            # If VM CPU utilization is over 75%, throw an error 
            if psutil.cpu_percent() >= 75.0:
                return '',408 
            # Else keep the VM as healthy 
            else: 
                return '',200 
    
    # Add the GET method to the API at the path 'health_check' 
    api.add_resource(check_CPU_VM, '/health_check/') 
    
    # Expose the API on all available IP address on the VM 
    if __name__ == "__main__":
        app.run(debug=True, host ="0.0.0.0") 
    
  4. När du har kopierat koden till filen installerar du python3 och de nödvändiga paketen (flask, flask_restful, psutil) om det behövs. Följande kommandon installerar python3 och de nödvändiga paketen på Ubuntu:

    #Install Python
    sudo apt-get update
    sudo apt-get install python3
    sudo apt-get install python3-pip
    pip3 install flask flask_restful psutil
    
  5. Kör API:et med följande kommando:

    python3 health.py
    
  6. När API:et börjar köras visas två IP-adresser som exponeras för API:et på port 5000.

    • Den första IP-adressen är den lokala IP-adressen som endast är tillgänglig för den virtuella datorn.
    • Den andra IP-adressen är den virtuella datorns privata IP-adress. Lastbalanserarens hälsoavsökning testar den här IP-adressen.

    Skärmbild av utdata från api som körs för hälsoavsökning.

Kommentar

API:et måste köras på den virtuella datorn för att hälsoavsökningen ska fungera. När du stänger SSH-sessionen slutar API:et att köras. Håll fönstret öppet när du skapar hälsoavsökningen eller kör API:et i bakgrunden.

Skapa hälsoavsökning

I det här avsnittet skapar du hälsoavsökningen som används för att kontrollera hälsotillståndet för serverdelsinstanserna som kör det anpassade API:et.

  1. Gå till Azure Portal och välj den lastbalanserare som du vill lägga till hälsoavsökningen i.

  2. Välj Hälsoavsökningar under Inställningar.

  3. Markera + Lägg till.

  4. På sidan Lägg till hälsoavsökning anger eller väljer du följande information:

    Inställning Värde
    Namn Ange HTTP_Health
    Protokoll Välj HTTP
    Port Ange 5000
    Sökväg Ange /health_check/
    Intervall (sekunder) Ange 5
  5. Välj OK för att skapa hälsoavsökningen.

Skapa lastbalanseringsregeln

I det här avsnittet skapar du lastbalanserarens regel som använder HTTP-hälsoavsökningen.

  1. På översiktssidan för lastbalanseraren väljer du Belastningsutjämningsregler under Inställningar.

  2. Markera + Lägg till.

  3. På sidan Lägg till belastningsutjämningsregel anger du följande information:

    Inställning Värde
    Namn Ange custom_HTTP_rule
    Klientdelens IP-adress Välj klientdelens IP-adress för lastbalanseraren.
    Serverdelspool Välj den serverdelspool som du vill använda.
    Protokoll Välj TCP
    Port Ange 5000
    Serverdelsport Ange 5000
    Hälsoavsökning Välj HTTP_Health (HTTP:5000/health_check/)
    Sessionspermanens Välj Ingen
    Tidsgräns för inaktivitet (minuter) Ange 5

    Skärmbild av Lägg till belastningsutjämningsregel med inställningar för anpassad hälsoavsökning.

  4. Välj Spara för att skapa belastningsutjämningsregeln.

Verifiera hälsoavsökning

I det här avsnittet kontrollerar du att hälsoavsökningen fungerar som förväntat genom att kontrollera api:et som körs och lastbalanserarens mått.

  1. Gå tillbaka till SSH-sessionen till den virtuella dator som kör API:et.

  2. I konsolfönstret som kör API:et bör du se en GET-begäran var femte sekund som kontrollerar hälsotillståndet för den virtuella datorn och svarar med en statuskod på 200 om den virtuella datorn är felfri.

    Skärmbild av API-utdata med ett felfritt GET-svar på 200.

  3. Ange ctrl+c för att stoppa API:et.

  4. Stäng SSH-sessionen till den virtuella datorn.

  5. Gå tillbaka till översiktssidan för lastbalanseraren.

  6. Välj Mått under Övervakning.

  7. Välj + Lägg till mått och ange/välj följande information:

    Inställning Värde
    Definitionsområde Välj den lastbalanserare som ska övervakas.
    Måttnamnområde Välj Standard för lastbalanserare
    Mått Välj status för hälsoavsökning
    Sammansättning Välj Max
  8. Välj bockmarkering för att lägga till måttet.

    Skärmbild av måttdiagram med hälsoavsökningsstatus för lastbalanserare.

Rensa resurser

Ta bort resursgruppen, lastbalanseraren och alla relaterade resurser när de inte längre behövs.

Nästa steg