Condividi tramite


Creare un probe di integrità HTTP/HTTPS personalizzato per Azure Load Balancer

Questo articolo illustra come creare un'API personalizzata per i probe di integrità HTTP usando Python, FLASK e psutil. I controlli di integrità vengono eseguiti nelle istanze back-end usando HTTP GET e contrassegnati come integri o non integri in base alla risposta. Il probe personalizzato in questo articolo contrassegna le istanze come non integre se l'utilizzo della CPU supera il 75%. I probe di integrità HTTP possono essere usati per molti scopi, non solo per l'utilizzo della CPU, quando si combinano con la logica e i controlli di integrità personalizzati.

Prerequisiti

Importante

La tariffa oraria inizia dal momento in cui viene distribuito Bastion, a prescindere dall'utilizzo dei dati in uscita. Per altre informazioni, vedere Prezzi e SKU. Se si distribuisce Bastion come parte di un'esercitazione o un test, è consigliabile eliminare questa risorsa dopo averla usata.

Configurare API nella macchina virtuale

In questa sezione viene configurata la macchina virtuale per eseguire l'API personalizzata per il probe di integrità HTTP.

  1. Connettersi alla macchina virtuale usando SSH o Azure Bastion. Questo articolo usa SSH per connettersi alla macchina virtuale.

  2. Creare una nuova cartella per archiviare il codice per l'API di integrità e immettere la nuova cartella:

    mkdir health_API && cd health_API
    
  3. Creare un nuovo file Python e incollare il codice seguente nel file:

    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. Dopo aver copiato il codice nel file, installare python3 e i pacchetti necessari (flask, flask_restful, psutil). I comandi seguenti installano python3 e i pacchetti necessari in 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. Eseguire l'API usando il comando seguente:

    python3 health.py
    
  6. Dopo l'avvio dell'esecuzione dell'API, vengono visualizzati due indirizzi IP esposti all'API sulla porta 5000.

    • Il primo indirizzo IP è l'indirizzo IP locale disponibile solo per la macchina virtuale.
    • Il secondo indirizzo IP è l'indirizzo IP privato della macchina virtuale, il probe di integrità del bilanciamento del carico verifica questo indirizzo IP.

    Screenshot dell'output dell'API in esecuzione per il probe di integrità.

Nota

L'API dovrà essere in esecuzione nella macchina virtuale per il funzionamento del probe di integrità. Quando si chiude la sessione SSH, l'API smetterà di funzionare. Mantenere aperta la finestra durante la creazione del probe di integrità o eseguire l'API in background.

Creare un probe integrità

In questa sezione viene creato il probe di integrità usato per controllare l'integrità delle istanze back-end che eseguono l'API personalizzata.

  1. Passare al portale di Azure e selezionare il bilanciamento del carico a cui si vuole aggiungere il probe di integrità.

  2. Selezionare Probe di integrità in Impostazioni.

  3. Seleziona + Aggiungi.

  4. Nella pagina Aggiungi probe integrità immettere o selezionare le informazioni seguenti:

    Impostazione valore
    Nome Immettere HTTP_Health
    Protocollo Selezionare HTTP
    Porta Immettere 5000
    Percorso Immettere /health_check/
    Intervallo (secondi) Immettere 5
  5. Scegliere OK per creare il probe di integrità.

Creare la regola di bilanciamento del carico

In questa sezione viene creata la regola di bilanciamento del carico che usa il probe di integrità HTTP.

  1. Nella pagina di panoramica del bilanciamento del carico selezionare Regole di bilanciamento del carico in Impostazioni.

  2. Seleziona + Aggiungi.

  3. Nella pagina Aggiungi regola di bilanciamento del carico immettere le informazioni seguenti:

    Impostazione valore
    Nome Immettere custom_HTTP_rule
    Indirizzo IP front-end IP Selezionare l'indirizzo IP front-end del bilanciamento del carico.
    Pool back-end Selezionare il pool back-end che si vuole usare.
    Protocollo Selezionare TCP
    Porta Immettere 5000
    Porta back-end Immettere 5000
    Probe di integrità Selezionare HTTP_Health (HTTP:5000/health_check/)
    Persistenza della sessione Selezionare Nessuno
    Timeout di inattività (minuti) Immettere 5

    Screenshot di Aggiungi regola di bilanciamento del carico con le impostazioni per il probe di integrità personalizzato.

  4. Selezionare Salva per creare la regola di bilanciamento del carico.

Verificare un probe di integrità

In questa sezione si verifica che il probe di integrità funzioni come previsto controllando l'API in esecuzione e le metriche del bilanciamento del carico.

  1. Tornare alla sessione SSH alla macchina virtuale che esegue l'API.

  2. Nella finestra della console che esegue l'API dovrebbe essere visualizzata una richiesta GET ogni 5 secondi per controllare l'integrità della macchina virtuale, con una risposta con un codice di stato 200 se la macchina virtuale è integra.

    Screenshot dell'output dell'API con una risposta GET integra pari a 200.

  3. Immettere CTRL+C per arrestare l'API.

  4. Chiudere la sessione SSH alla macchina virtuale.

  5. Tornare alla pagina di panoramica del bilanciamento del carico.

  6. Selezionare Metriche in Monitoraggio.

  7. Selezionare + Aggiungi metrica e immettere/selezionare le informazioni seguenti:

    Impostazione valore
    Scope Selezionare il bilanciamento del carico da monitorare.
    Spazio dei nomi delle metriche Selezionare Bilanciamento del carico Standard
    Metrica Selezionare Stato del probe di integrità
    Aggregazione Selezionare Max
  8. Selezionare il segno di spunta per aggiungere la metrica.

    Screenshot del grafico delle metriche con lo stato del probe di integrità per il servizio di bilanciamento del carico.

Pulire le risorse

Quando non sono più necessari, eliminare il gruppo di risorse, il servizio di bilanciamento del carico e tutte le risorse correlate.

Passaggi successivi