監控 Azure 負載平衡器

本文章說明:

  • 您可以為此服務收集的監視資料類型。
  • 分析資料的方式。

注意

如果你已經熟悉這項服務和/或Azure 監視器,並且只想知道如何分析監控資料,請參考本文末尾的Analyze章節。

當你擁有依賴 Azure 資源的關鍵應用程式和業務流程時,你需要監控並接收系統的警示。 Azure 監視器 服務會收集並彙整系統每個元件的指標與日誌。 Azure 監視器 會提供可用性、效能與韌性視圖,並通知你問題。 你可以使用 Azure 入口網站、PowerShell、Azure CLI、REST API 或用戶端函式庫來設定和查看監控資料。

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

洞察

Azure 中的某些服務在 Azure 入口網站內建監控儀表板,提供監控服務的起點。 這些儀表板稱為 insights,您可以在 Azure 入口網站的 Azure 監視器 中的 Insights Hub 找到。

負載平衡器提供的資訊:

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

欲了解更多Load Balancer洞察資訊,請參閱使用 Insights 來監控與配置您的 Azure Load Balancer

資源類型

Azure 利用資源類型與 ID 的概念來識別訂閱中的所有內容。 資源類型也是 Azure 中每個資源 ID 的一部分。 例如,虛擬機的一種資源類型是 Microsoft.Compute/virtualMachines。 如需服務及其相關聯資源類型的清單,請參閱資源提供者 (機器翻譯)。

Azure 監視器 同樣根據資源類型將核心監控資料組織成指標與日誌,也稱為 namespaces。 不同的計量和記錄適用於不同的資源類型。 您的服務可能會與多個資源類型相關聯。

欲了解更多關於Load Balancer資源類型的資訊,請參閱 Azure Load Balancer 監控資料參考

資料存放區

針對 Azure 監視器:

  • 指標資料會儲存在 Azure 監視器 指標資料庫中。
  • 日誌資料會儲存在 Azure 監視器 日誌儲存庫中。 Log Analytics 是 Azure 入口網站中的一個工具,可以查詢這個商店。
  • Azure 活動日誌是一個獨立的儲存庫,在 Azure 入口網站中有自己的介面。

你可以選擇性地將指標和活動日誌資料導向到 Azure 監視器 日誌儲存庫。 接著你可以使用 Log Analytics 查詢資料,並將其與其他日誌資料關聯起來。

許多服務可以使用診斷設定,將指標和日誌資料傳送到 Azure 監視器 以外的其他儲存位置。 範例包括 Azure 儲存體、託管的合作夥伴系統以及使用事件中樞的非 Azure 合作夥伴系統

關於Azure 監視器如何儲存資料的詳細資訊,請參閱 Azure 監視器 資料平台

Azure 監視器 平台度量

Azure 監視器 提供大多數服務的平台指標。 這些計量包括:

  • 針對每個命名空間個別定義。
  • 儲存在 Azure 監視器 時間序列指標資料庫中。
  • 輕量且能支援近即時警示。
  • 用來追蹤資源效能的長期變化。

Collection: Azure 監視器 自動收集平台指標。 不需要組態。

Routing: 你也可以將一些平台指標路由至 Azure 監視器 Logs / Log Analytics,以便與其他日誌資料一起查詢。 檢查每個指標的 DS export 設定,看看是否可以用診斷設定將指標路由到 Azure 監視器 日誌/Log Analytics。

關於 Azure 監視器 可收集的所有資源指標清單,請參見 Azure 監視器 中的支援指標。

你可以透過 Azure 監視器 選單中開啟的 Metrics Explorer,分析 Load Balancer 與其他 Azure 服務的指標。 有關使用此工具的詳細資訊,請參閱使用 Azure 監視器 指標瀏覽器分析指標

有關可用Load Balancer指標清單,請參見 Azure Load Balancer 監控資料參考

Azure 監視器 資源日誌

資源日誌提供關於 Azure 資源執行操作的洞察。 日誌會自動產生,但你必須將它們路由到 Azure 監視器 日誌來儲存或查詢。 按類別組織記錄。 指定的命名空間可能會有多個資源記錄類別。

收集:您必須先建立「診斷設定」,並將記錄路由傳送至一個或多個位置,才會開始收集和儲存資源記錄。 在建立診斷設定時,您可以指定要收集的記錄類別。 有多種方式可以建立和維護診斷設定,包括 Azure 入口網站、程式化,以及透過 Azure 原則。

Routing: 建議的預設是將資源日誌路由到Azure 監視器日誌,這樣你就能用其他日誌資料查詢它們。 其他地點如 Azure 儲存體、Azure 事件中樞 以及部分 Microsoft 監控合作夥伴也可用。 欲了解更多資訊,請參閱 Azure資源日誌資源日誌目的地

關於資源日誌的收集、儲存及路由詳細資訊,請參閱 Microsoft Azure 監視器 中的 Diagnostic settings

關於Azure 監視器中所有可用資源日誌類別的清單,請參見Azure 監視器<>中的支援資源日誌。

Azure 監視器 中的所有資源日誌都有相同的標頭欄位,後面是服務專屬欄位。 常見的結構架構在 Azure 監視器資源日誌架構中有說明。

關於可用的資源日誌類別、相關Log Analytics表,以及Load Balancer的日誌結構,請參見 Azure Load Balancer 監控資料參考

建立診斷設定

在您建立診斷設定並將其路由至一個或多個位置之前,不會收集並儲存資源記錄。 你可以用 Azure 入口網站、Azure PowerShell 或 Azure CLI 建立診斷設定。

若要使用 Azure 入口網站及獲得一般指引,請參閱 建立診斷設定以收集平台日誌和指標。 若要使用 PowerShell 或 Azure CLI,請參考以下章節。

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

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 資源的操作,觀察這些操作是如何從資源外部進行的;例如,建立新資源或啟動虛擬機器。

Collection:活動日誌事件會自動產生並收集到獨立的存儲空間中,以便在 Azure 入口網站中查看。

Routing: 你可以將活動日誌資料傳送到 Azure 監視器 日誌,這樣你就能和其他日誌資料一起分析。 其他地點如 Azure 儲存體、Azure 事件中樞 以及部分 Microsoft 監控合作夥伴也可用。 欲了解更多如何路由活動日誌的資訊,請參閱 Azure活動日誌概覽

注意

負載平衡器活動記錄不會包含以 NIC 為基礎的後端集區更新。 若要監視以 NIC 為基礎的後端集區的負載平衡器後端集區更新並發出警示,建議改為在 NIC 資源層級或資源群組層級收集記錄。

分析監視資料

有許多工具可用來分析監視資料。

Azure 監視器 工具

Azure 監視器 支援以下基本工具:

支援更複雜視覺效果的工具包括:

  • Dashboards 讓你能將不同類型的資料合併到Azure入口網站的單一窗格。
  • 工作簿,可在Azure入口網站中自訂的報告。 活頁簿可以包含文字、計量及日誌查詢。
  • Grafana 是在操作儀表板中表現相當出色的開放平台工具。 你可以用 Grafana 建立包含多個來源資料的儀表板,除了 Azure 監視器 以外。
  • Power BI,一項商業分析服務,提供跨多種資料來源的互動視覺化。 你可以設定 Power BI 自動匯入 Azure 監視器 的日誌資料,以利用這些視覺化功能。

Azure 監視器 匯出工具

你可以透過以下方法將 Azure 監視器 的資料輸出到其他工具:

想開始使用 REST API for Azure 監視器,請參考 Azure monitoring REST API walkthrough

使用 VNet 流量日誌分析 Load Balancer 流量

虛擬網路流量日誌是Azure 網路監看員的一項功能,用來記錄虛擬網路中流動的 IP 流量資訊。 虛擬網路流量日誌中的流量資料會傳送到 Azure 儲存體。 您可以從該處存取資料,並將其匯出至任何視覺效果工具、安全性資訊與事件管理 (SIEM) 解決方案,或入侵偵測系統 (IDS)。

如需建立及管理虛擬網路流量記錄的一般指導,請參閱管理虛擬網路流量記錄。 建立虛擬網路流量日誌後,你可以在 Log Analytics workspaces 存取資料,並查詢和篩選資料,以識別流經你Load Balancer的流量。 請參閱流量分析結構描述和資料彙總,以尋求虛擬網路流量記錄結構描述的詳細資料。

您也可以在建立虛擬網路流量記錄時啟用流量分析,其可提供流量記錄資料的深入解析和視覺效果,例如虛擬網路中的流量分佈、流量模式、使用的應用程式連接埠以及主要通訊者。

VNet 流量日誌的 Log Analytics 查詢

要查看連接到特定負載平衡器的入站流量日誌:

NTANetAnalytics
| where DestLoadBalancer == '<Subscription ID>/<Resource Group name>/<Load Balancer name>'
  1. 在你的 Log Analytics 工作區中使用上述查詢,並更新 Load Balancer 的有效值字串。 想了解更多使用 Log Analytics,請參閱 Log Analytics 教學

  2. 若要檢視連線的來源 IP,系統將會填入 SrcIpSrcPublicIps 資料行。 所有來自公開、非惡意或Azure服務擁有 IP 位址的流量都會顯示在 SrcPublicIps,其他所有來源 IP 則會出現在 SrcIP。 如果您想要更多流量類型的詳細資料,可以使用 [FlowType] 資料行來篩選流程中涉及的不同 IP 位址類型。 有關流量分析結構與數據聚合備註的欄位定義,請參閱FlowType

  3. 透過下列任一欄識別輸入連線中使用的後端集區執行個體:DestIPMacAddressDestVMTargetResourceIDDestNic

  4. 透過這些記錄,您可以收集通過 Load Balancer 之連線的進一步資訊,例如連接埠資訊、通訊協定,以及透過從目的地和來源傳送的封包和位元組計數所得的流量大小。

Kusto 的查詢

你可以使用 Kusto 查詢語言(KQL)分析 Azure 監視器 Logs / Log Analytics store 中的監控資料。

重要

當你在入口網站服務選單中選擇 Logs,Log Analytics 就會開啟,查詢範圍設為目前的服務。 此範圍表示記錄查詢只會包含該資源類型的資料。 如果你想執行包含其他Azure服務資料的查詢,請從Azure 監視器選單中選擇Logs。 詳情請參閱 Azure 監視器 Log Analytics 中的 Log 查詢範圍與時間範圍。

關於任何服務常見查詢的清單,請參見 Log Analytics queries interface

警示

Azure 監視器 警示會在偵測到特定狀況時主動通知你。 警示可讓您在客戶發現系統發生問題前,就先及早識別和解決問題。 更多資訊請參閱Azure 監視器警示系統

Azure 資源有許多常見的警報來源。 關於Azure資源常見警示範例,請參見 Sample log alert queriesAzure 監視器 基線警示(AMBA)網站提供一種半自動化方法,用於實施重要的平台指標警示、儀表板及指引。 該網站適用於持續擴展的 Azure 服務子集,包括所有屬於 Azure 登陸區(ALZ)的服務。

通用警報架構標準化了 Azure 監視器 警報通知的使用方式。 如需詳細資訊,請參閱一般警示結構描述 (機器翻譯)。

警示類型

你可以在 Azure 監視器 資料平台中對任何指標或日誌資料來源發出警示。 警示有許多不同的類型,具體取決於您監視的服務以及所收集的監視資料。 不同類型的警示各有優缺點。 如需詳細資訊,請參閱選擇正確的監視警示類型 (機器翻譯)。

以下列表描述您可以建立的 Azure 監視器 警示類型:

  • 指標警示 會在固定間隔評估資源指標。 指標可以是平台指標、自訂指標、從 Azure 監視器 轉成指標的日誌,或是 Application Insights 指標。 計量警示還可以套用多個條件和動態閾值。
  • Log alerts 允許使用者使用Log Analytics查詢,在預定頻率下評估資源日誌。
  • 活動記錄警示 (機器翻譯) 會在發生符合定義條件的新活動記錄事件時觸發。 資源健康狀態 警示與服務健康警示是活動日誌警示,用來報告您的服務與資源健康狀況。

部分Azure服務也支援智慧偵測警示Prometheus 警示推薦警示規則

對某些服務,你可以透過對同一 Azure 區域內多個同類型資源套用相同的指標警示規則來大規模監控。 系統會針對每個受監視的資源傳送個別通知。 關於支援的Azure服務與雲端,請參見 以單一警示規則監控多資源

注意

如果你正在建立或執行一個在服務上運行的應用程式,Azure 監視器 Application Insights 可能會提供更多類型的警示。

Load Balancer 警示規則

下表列出一些建議的 Load Balancer 警示規則。 這些警示只是範例。 你可以為Azure Load Balancer監控資料參考中列出的任何指標、日誌條目或活動日誌條目設定警示。

警示類型 條件 描述
由於虛擬機器無法運行,負載平衡規則無法執行。 如果依前端 IP 位址和前端連接埠 (所有已知和未來的值) 分割的資料路徑可用性等於零,或在第二個獨立警示中,如果健全狀態探查狀態等於零,則觸發警示 這些警示有助於判斷是否因相關聯後端集區中的所有 VM 均被設定的健全狀態探查偵測為關閉,而導致任何已設定負載平衡規則的資料路徑可用性無法服務流量。 檢閱 Azure Load Balancer 的支援和疑難排解以調查潛在的根本原因。
虛擬機器可用性明顯降低 如果依後端 IP 和後端連接埠分割的健全狀態探查狀態等於使用者定義的已探查連線百分比佔集區大小總計 (亦即 25% 已探查連線),則觸發警示 此警示會判斷虛擬機器數量是否少於提供流量所需
連至網際網路端點的輸出連線失敗 如果篩選至連線狀態 = 失敗的 SNAT 連線計數大於零,則觸發警示 當 SNAT 連接埠耗盡且虛擬機器無法初始化輸出連線時,即會發出此警示。
接近 SNAT 耗盡 若 [已使用的 SNAT 連接埠] 大於使用者定義的數字,即會發出警示 此警示需要靜態輸出設定,且需一律配置相同數量的連接埠。 當已使用的已配置連接埠百分比達到時,就會觸發。

顧問建議

對於一些服務,如果在資源作業期間發生重大狀況或有即將到來的變更,入口網站的服務 [概觀] 頁面上會顯示警示。 您可以在左側功能表中 [監視] 底下的 [Advisor 建議] 中找到警示的詳細資訊和建議的修正。 在正常作業期間,不會顯示 Advisor 建議。

欲了解更多Azure Advisor資訊,請參閱 Azure Advisor overview