Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto kostnadsfritt och få åtkomst till Azure Portal.
- En befintlig standard-SKU Azure Load Balancer. Mer information om hur du skapar en lastbalanserare finns i Skapa en offentlig lastbalanserare med hjälp av Azure Portal.
- En virtuell Azure-dator som kör Linux i serverdelspoolen i Azure Load Balancer finns i Skapa en virtuell dator med hjälp av Azure Portal.
- Den virtuella Linux-datorn har python3, pip och följande paket installerade:
- flaska
- flask_restful
- psutil
- Fjärråtkomst till den virtuella datorn via SSH eller Azure Bastion.
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.
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.
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_APISkapa 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")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 psutilKör API:et med följande kommando:
python3 health.pyNä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.
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.
Gå till Azure Portal och välj den lastbalanserare som du vill lägga till hälsoavsökningen i.
Välj Hälsoavsökningar under Inställningar.
Markera + Lägg till.
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 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.
På översiktssidan för lastbalanseraren väljer du Belastningsutjämningsregler under Inställningar.
Markera + Lägg till.
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
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.
Gå tillbaka till SSH-sessionen till den virtuella dator som kör API:et.
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.
Ange ctrl+c för att stoppa API:et.
Stäng SSH-sessionen till den virtuella datorn.
Gå tillbaka till översiktssidan för lastbalanseraren.
Välj Mått under Övervakning.
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 Välj bockmarkering för att lägga till måttet.
Rensa resurser
Ta bort resursgruppen, lastbalanseraren och alla relaterade resurser när de inte längre behövs.