監視負載平衡器

當您有依賴 Azure 資源的重要應用程式和商務程序時,您會想要監視這些資源的可用性、效能和操作。

本文會說明如何監視 Load Balancer 產生的資料。 Load Balancer 使用 Azure 監視器。 Azure 監視器為所有使用到 Azure 監視器的 Azure 服務提供通用功能,若您對這些功能不甚熟悉,請參閱使用 Azure 監視器監視 Azure 資源

負載平衡器深入解析

在 Azure 入口網站中,某些 Azure 服務具有專屬的預建監視儀表板,可做為您監控服務的起點。 這類特殊儀表板稱為「深入解析」。

Load Balancer 的深入解析提供以下功能:

  • 功能相依性視圖
  • 計量儀表板
  • 概觀索引標籤
  • [前端和後端可用性] 索引標籤
  • [資料輸送量] 索引標籤
  • 流量分佈
  • 連線監視器
  • 度量定義

如需 Load Balancer 深入解析的詳細資訊,請參閱使用深入解析來監視和設定您的 Azure Load Balancer

監視資料

Load Balancer 會收集與其他 Azure 資源相同類型的監視資料,如監視 Azure 資源中的資料中所述。

如需 Load Balancer 建立的計量和記錄計量的詳細資訊,請參閱監視 Load Balancer 資料參考

Load Balancer 可透過以下方式提供其他監視資料:

收集和路由傳送

系統會自動收集和儲存平台計量和活動記錄,但是可以使用診斷設定將資料路由傳送至其他位置。

在您建立診斷設定並將其路由至一個或多個位置之前,不會收集並儲存資源記錄。

建立診斷設定

您可以使用 Azure 入口網站、PowerShell 或 Azure CLI 來建立診斷設定。

如需一般指導方針,請參閱建立診斷設定以收集 Azure 中的平台記錄和計量

在建立診斷設定時,您可以指定要收集的記錄類別。 Load Balancer 的類別為 AllMetrics

入口網站

  1. 登入 Azure 入口網站

  2. 在入口網站頂端的搜尋方塊中,輸入負載平衡器

  3. 在搜尋結果中,選取 [負載平衡器]。

  4. 選取負載平衡器。 在此範例中,會使用 myLoadBalancer

  5. [myLoadBalancer][監視] 區段中,選取 [診斷設定]

  6. [診斷設定] 中,選取 [+ 新增診斷設定]

  7. [診斷設定] 中輸入或選取下列資訊。

    設定
    診斷設定名稱 輸入診斷設定的名稱。
    類別詳細資料
    計量 選取 [AllMetrics]
  8. 選取 [目的地詳細資料]。 部分目的地選項如下:

    • 傳送至 Log Analytics
      • 選取 [訂用帳戶] 和 [Log Analytics 工作區]
    • 封存至儲存體帳戶
      • 選取 [訂用帳戶] 和 [儲存體帳戶]
    • 串流至事件中樞
      • 選取 [訂閱][事件中樞][事件中樞名稱] (選擇性)[事件中樞原則名稱]
  9. 選取 [儲存]。

PowerShell

登入 Azure PowerShell:

Connect-AzAccount 

記錄分析工作區

若要將資源記錄傳送至 Log Analytics 工作區,請輸入這些命令。 請將括弧內的值替換為您自己的值:

## Place the load balancer in a variable. ##
$lbpara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-load-balancer-name>
}
$lb = Get-AzLoadBalancer @lbpara
    
## Place the workspace in a variable. ##
$wspara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-log-analytics-workspace-name>
}
$ws = Get-AzOperationalInsightsWorkspace @wspara
    
## Enable the diagnostic setting. ##
Set-AzDiagnosticSetting `
    -ResourceId $lb.id `
    -Name <your-diagnostic-setting-name> `
    -Enabled $true `
    -MetricCategory 'AllMetrics' `
    -WorkspaceId $ws.ResourceId

儲存體帳戶

若要將資源記錄傳送至儲存體帳戶,請輸入這些命令。 請將括弧內的值替換為您自己的值:

## Place the load balancer in a variable. ##
$lbpara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-load-balancer-name>
}
$lb = Get-AzLoadBalancer @lbpara
    
## Place the storage account in a variable. ##
$storpara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-storage-account-name>
}
$storage = Get-AzStorageAccount @storpara
    
## Enable the diagnostic setting. ##
Set-AzDiagnosticSetting `
    -ResourceId $lb.id `
    -Name <your-diagnostic-setting-name> `
    -StorageAccountId $storage.id `
    -Enabled $true `
    -MetricCategory 'AllMetrics'

事件中樞

若要將資源記錄傳送至事件中樞命名空間,請輸入這些命令。 請將括弧內的值替換為您自己的值:

## Place the load balancer in a variable. ##
$lbpara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-load-balancer-name>
}
$lb = Get-AzLoadBalancer @lbpara
    
## Place the event hub in a variable. ##
$hubpara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-event-hub-name>
}
$eventhub = Get-AzEventHubNamespace @hubpara

## Place the event hub authorization rule in a variable. ##    
$hubrule = @{
    ResourceGroupName = 'myResourceGroup'
    Namespace = 'myeventhub8675'
}
$eventhubrule = Get-AzEventHubAuthorizationRule @hubrule

## Enable the diagnostic setting. ##
Set-AzDiagnosticSetting `
    -ResourceId $lb.Id `
    -Name 'myDiagSetting-event'`
    -EventHubName $eventhub.Name `
    -EventHubAuthorizationRuleId $eventhubrule.Id `
    -Enabled $true `
    -MetricCategory 'AllMetrics'

Azure CLI

登入 Azure CLI:

az login

記錄分析工作區

若要將資源記錄傳送至 Log Analytics 工作區,請輸入這些命令。 請將括弧內的值替換為您自己的值:

lbid=$(az network lb show \
    --name <your-load-balancer-name> \
    --resource-group <your-resource-group> \
    --query id \
    --output tsv)

wsid=$(az monitor log-analytics workspace show \
    --resource-group <your-resource-group> \
    --workspace-name <your-log-analytics-workspace-name> \
    --query id \
    --output tsv)
    
az monitor diagnostic-settings create \
    --name <your-diagnostic-setting-name> \
    --resource $lbid \
    --metrics '[{"category": "AllMetrics","enabled": true}]' \
    --workspace $wsid

儲存體帳戶

若要將資源記錄傳送至儲存體帳戶,請輸入這些命令。 請將括弧內的值替換為您自己的值:

lbid=$(az network lb show \
    --name <your-load-balancer-name> \
    --resource-group <your-resource-group> \
    --query id \
    --output tsv)

storid=$(az storage account show \
        --name <your-storage-account-name> \
        --resource-group <your-resource-group> \
        --query id \
        --output tsv)
    
az monitor diagnostic-settings create \
    --name <your-diagnostic-setting-name> \
    --resource $lbid \
    --metrics '[{"category": "AllMetrics","enabled": true}]' \
    --storage-account $storid

事件中樞

若要將資源記錄傳送至事件中樞命名空間,請輸入這些命令。 請將括弧內的值替換為您自己的值:

lbid=$(az network lb show \
    --name <your-load-balancer-name> \
    --resource-group <your-resource-group> \
    --query id \
    --output tsv)

az monitor diagnostic-settings create \
    --name myDiagSetting-event \
    --resource $lbid \
    --metrics '[{"category": "AllMetrics","enabled": true}]' \
    --event-hub-rule /subscriptions/<your-subscription-id>/resourceGroups/<your-resource-group>/providers/Microsoft.EventHub/namespaces/<your-event-hub-namespace>/authorizationrules/RootManageSharedAccessKey

下列各節將討論您可以收集的計量和記錄。

分析計量

可開啟 [Azure 監視器] 功能表的 [計量],使用計量瀏覽器以其他 Azure 服務提供的計量來分析 Load Balancer 的計量。 如需使用此工具的詳細資料,請參閱使用 Azure 監視器計量總管分析計量

如需專為 Load Balancer 收集的平台計量清單,請參閱Load Balancer 資料監視參考計量

如需參考,您可以查看 Azure 監視器中支援的所有資源計量清單。

分析記錄

Azure 監視器記錄中的資料會儲存在資料表中,其中每個資料表都有一組專屬的唯一屬性。

活動記錄是一種平台記錄類型,可提供訂閱層級事件的深入解析。 您可以獨立檢視活動記錄,或將記錄路由至 Azure 監視器記錄,以便使用 Log Analytics 處理更為複雜的查詢作業。

如需 Azure 監視器記錄所使用且可由 Log Analytics 查詢的資料表清單,請參閱 Load Balancer 資料監視參考

使用 NSG 流量記錄分析負載平衡器流量

NSG 流量記錄是 Azure 網路監看員 的一項功能,可讓您記錄流經網路安全組的 IP 流量相關信息。 流程資料會從中傳送至 Azure 儲存體,您可以從該處存取資料,並將之匯出至您選擇的任何視覺化工具、安全性資訊和事件管理 (SIEM) 解決方案,或入侵偵測系統 (IDS)。

NSG 流量記錄可用來分析流經負載平衡器的流量。 請注意,NSG 流量記錄不包含負載平衡器前端IP位址。 若要分析流入負載平衡器的流量,NSG 流量記錄必須依負載平衡器後端集區成員的私人IP位址進行篩選。

警示

在監視資料中發現重大狀況時,Azure 監視器會主動通知您。 如此便能在您的客戶注意到之前,先在您的系統中識別問題並加以對應。 可在 [計量]、[記錄]、[活動記錄] 中設定警示。 不同類型的警示各有優缺點

如果您要建立或執行在 Load Balancer 上執行的應用程式,Azure 監視器 Application Insights 可提供其他類型的警示。

下表列出 Load Balancer 的常用和推薦警示規則。

警示類型 Condition 描述
因為虛擬機器無法使用,負載平衡規則也無法使用 若資料路徑的可用性受到前端 IP 位址和前端連接埠 (所有已知和未來的值) 分割,且資料路徑的可用性等於零,且如果第二個警示中的健全資料探查狀態也等於零,則發出警示 這些警示可協助判斷是否因為相關後端集區中所有虛擬機器在接受所設定的健全狀態探查,導致任何設定的負載平衡規則的資料路徑可用性無法提供流量。 請詳閱負載平衡器的疑難排解指南,調查可能的根本原因。
虛擬機器可用性明顯降低 若受到後端 IP 和後端連接埠分割的健全狀態探查等於使用者定義的總集區大小探查百分比 (即探查達 25%),即會發出警示 此警示會判斷虛擬機器數量是否少於提供流量所需
連至網際網路端點的輸出連線失敗 若 [SNAT 連線計數] 使用 [連線狀態 = 失敗] 篩選的結果大於零,則會發出警示 當 SNAT 連接埠耗盡且虛擬機器無法初始化輸出連線時,即會發出此警示。
接近 SNAT 耗盡 若 [已使用的 SNAT 連接埠] 大於使用者定義的數字,即會發出警示 此警示需要靜態輸出設定,且需一律配置相同數量的連接埠。 如此當配置的連接埠使用到一定比例時,便會發出警示。

下一步