共用方式為


為 Azure Load Balancer 建立自訂 HTTP/HTTPS 健全狀態探查

在本文中,您將了解使用 Python、FLASK 和 psutil 為 HTTP 健全狀態探查建立自訂 API。 使用 HTTP GET 對後端執行個體執行健康情況檢查,並根據回應將其標記為良好或基礎映像。 如果執行個體的 CPU 使用量超過 75%,本文中的自訂探查會將其標記為狀況不良。 當與您自己的邏輯和健康情況檢查相結合時,HTTP 健全狀態探查可以用於多種目的,而不僅僅是 CPU 使用率。

必要條件

重要

無論輸出資料使用量為何,每小時價格都是從部署 Bastion 的那一刻開始計費。 如需詳細資訊,請參閱價格SKU。 如果您要將 Bastion 部署為教學課程或測試的一部份,建議您在使用完畢後刪除此資源。

在虛擬機器上設定 API

在此區段中,您將虛擬機器設定為執行 HTTP 健全狀態探查的自訂 API。

  1. 使用 SSH 或 Bastion 連線至虛擬機器。 本文使用 SSH 連線至虛擬機器。

  2. 建立新資料夾以儲存健康情況 API 的程式碼,然後輸入新資料夾:

    mkdir health_API && cd health_API
    
  3. 建立新的 python 檔案,並將以下程式碼貼至檔案中:

    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. 將程式碼複製至檔案中後,如有必要,安裝 python3 和所需的封裝 (flask、flask_restful、psutil)。 以下命令在 Ubuntu 上安裝 python3 和所需封裝:

    #Install Python
    sudo apt-get update
    sudo apt-get install python3
    sudo apt-get install python3-pip
    pip3 install flask flask_restful psutil
    
  5. 使用以下命令執行 API:

    python3 health.py
    
  6. API 開始執行後,您將看到兩個 IP 位址在連接埠 5000 上公開給 API。

    • 第一個 IP 位址是僅對 VM 可用的本機 IP 位址。
    • 第二個 IP 位址是虛擬機器的私人 IP 位址,Load Balancer 的健全狀態探查將測試此 IP 位址。

    執行 API 以進行健康情況探查的輸出螢幕快照。

注意

API 需要在虛擬機器上執行,健全狀態探查才能運作。 當您關閉 SSH 工作階段時,API 將停止執行。 在建立健全狀態探查或在背景執行 API 時保持視窗開啟。

建立健全狀況探查

在此區段中,您將建立用於檢查執行自訂 API 的後端執行個體之健康情況的健全狀態探查。

  1. 瀏覽至 Azure 入口網站並選取要將健全狀態探查新增至的負載平衡器。

  2. [設定] 下選取 [健全狀態探查]

  3. 選取 + 新增

  4. [新增健全狀態探查] 頁面中,輸入或選取以下資訊:

    設定
    名稱 輸入「HTTP_Health」
    通訊協定 選取 [HTTP]
    通訊埠 輸入「5000」
    路徑 輸入「/health_check/」
    間隔 (秒) 輸入「5」
  5. 選取 [確定] 以建立健全狀態探查。

建立負載平衡器規則

在此區段中,您將建立使用 HTTP 健全狀態探查的負載平衡器規則。

  1. 在負載平衡器概觀頁面中,選取 [設定] 下的 [負載平衡規則]

  2. 選取 + 新增

  3. [新增負載平衡規則] 頁面上,輸入以下資訊:

    設定
    名稱 輸入「custom_HTTP_rule」
    前端 IP 位址 選取負載平衡器的前端 IP 位址。
    後端集區 選取要使用的後端集區。
    通訊協定 選取 [TCP]
    通訊埠 輸入「5000」
    後端連接埠 輸入「5000」
    健康狀態探查 選取 HTTP_Health (HTTP:5000/health_check/)
    工作階段持續性 選取 [無]
    閒置逾時 (分鐘) 輸入「5」

    [新增負載平衡規則與自定義健康情況探查設定] 的螢幕快照。

  4. 選取 [儲存] 以建立負載平衡規則。

驗證健全狀態探查

在此區段中,您將透過檢查正在執行的 API 和負載平衡器計量來驗證健全狀態探查是否依預期運作。

  1. 瀏覽回執行 API 的虛擬機器之 SSH 工作階段。

  2. 在執行 API 的主控台視窗中,您應該每 5 秒看到 GET 要求,檢查虛擬機器的健康情況,如果虛擬機器良好,則傳回 200 狀態程式碼。

    API 輸出的螢幕快照,其 GET 回應狀況良好,為 200。

  3. 輸入「ctrl+c」以停止 API。

  4. 關閉與虛擬機器的 SSH 工作階段。

  5. 瀏覽回負載平衡器概觀頁面。

  6. 在 [監視] 下,選取 [計量]

  7. 選取 [+ 新增計量],然後輸入/選取以下資訊:

    設定
    範圍 選取要監視的負載平衡器。
    計量命名空間 選取 [負載平衡器標準]
    計量 選取 [健全狀態探查狀態]
    彙總 選取 [最大]
  8. 選取 [核取記號] 以新增計量。

    負載平衡器健康情況探查狀態的計量圖表螢幕快照。

清除資源

若不再需要,可刪除資源群組、負載平衡器和所有相關資源。

下一步