監視 Azure Batch

本文章說明:

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

注意

如果您已經熟悉此服務和/或 Azure 監視器,並只想知道如何分析監視資料,請參閱本文結尾附近的分析一節。

當您有依賴 Azure 資源的重要應用程式和商務流程時,您需要監視並取得系統的警示。 Azure 監視器服務會從您系統的每個元件收集及彙總計量和記錄。 Azure 監視器提供可用性、效能及復原能力檢視,並通知您問題。 您可以使用 Azure 入口網站、PowerShell、Azure CLI、REST API 或用戶端程式庫來設定及檢視監視資料。

資源類型

Azure 會使用資源類型和標識碼的概念來識別訂用帳戶中的所有內容。 Azure 監視器同樣會將核心監視數據組織成以資源類型為基礎的計量和記錄,也稱為 命名空間。 不同的計量和記錄適用於不同的資源類型。 您的服務可能會與多個資源類型相關聯。

資源類型也是 Azure 中所執行每個資源的資源識別碼組成部分。 例如,虛擬機器的資源類型是 Microsoft.Compute/virtualMachines。 如需服務及其相關聯資源類型的清單,請參閱資源提供者

如需 Batch 資源類型的詳細資訊,請參閱 Batch 監視數據參考

資料存放區

針對 Azure 監視器:

  • 計量資料會儲存在 Azure 監視器計量資料庫中。
  • 記錄資料會儲存在 Azure 監視器記錄存放區中。 Log Analytics 是可查詢此存放區的 Azure 入口網站工具。
  • Azure 活動記錄檔是個別存放區,其本身在 Azure 入口網站 介面。

您可以選擇性地將計量和活動記錄資料路由傳送至 Azure 監視器記錄存放區。 然後,您可以使用 Log Analytics 來查詢數據,並將它與其他記錄數據相互關聯。

許多服務都可以使用診斷設定,將計量和記錄數據傳送至 Azure 監視器以外的其他記憶體位置。 範例包括使用事件中樞 Azure 儲存體、託管的合作夥伴系統和非 Azure 合作夥伴系統。

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

存取記憶體中的診斷記錄

如果您在 記憶體帳戶中封存 Batch 診斷記錄,則一旦發生相關事件,記憶體帳戶就會在記憶體帳戶中建立記憶體容器。 Blob 會根據下列命名模式來建立:

insights-{log category name}/resourceId=/SUBSCRIPTIONS/{subscription ID}/
RESOURCEGROUPS/{resource group name}/PROVIDERS/MICROSOFT.BATCH/
BATCHACCOUNTS/{Batch account name}/y={four-digit numeric year}/
m={two-digit numeric month}/d={two-digit numeric day}/
h={two-digit 24-hour clock hour}/m=00/PT1H.json

例如:

insights-metrics-pt1m/resourceId=/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/
RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.BATCH/
BATCHACCOUNTS/MYBATCHACCOUNT/y=2018/m=03/d=05/h=22/m=00/PT1H.json

每個 PT1H.json Blob 檔案都包含在 Blob URL 中指定的小時內發生的 JSON 格式事件(例如 , h=12。 在目前一小時內,事件會在發生時附加至 PT1H.json 檔案。 分鐘值 (m=00) 一律 00為 ,因為診斷記錄事件會分成每小時的個別 Blob。 所有時間都是採用 UTC 格式。

下列範例顯示PoolResizeCompleteEventPT1H.json記錄檔中的專案。 專案包含專用和低優先順序節點的目前和目標數目,以及作業的開始和結束時間的相關信息。

{ "Tenant": "65298bc2729a4c93b11c00ad7e660501", "time": "2019-08-22T20:59:13.5698778Z", "resourceId": "/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.BATCH/BATCHACCOUNTS/MYBATCHACCOUNT/", "category": "ServiceLog", "operationName": "PoolResizeCompleteEvent", "operationVersion": "2017-06-01", "properties": {"id":"MYPOOLID","nodeDeallocationOption":"Requeue","currentDedicatedNodes":10,"targetDedicatedNodes":100,"currentLowPriorityNodes":0,"targetLowPriorityNodes":0,"enableAutoScale":false,"isAutoPool":false,"startTime":"2019-08-22 20:50:59.522","endTime":"2019-08-22 20:59:12.489","resultCode":"Success","resultMessage":"The operation succeeded"}}

若要以程式設計方式存取記憶體帳戶中的記錄,請使用 儲存體 API

Azure 監視器平臺計量

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

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

集合:Azure 監視器會自動收集平台計量。 不需要組態。

路由: 您通常也可以將平臺計量路由傳送至 Azure 監視器記錄/Log Analytics,以便使用其他記錄數據來查詢它們。 如需詳細資訊,請參閱計量診斷設定。 如需為服務設定診斷的說明,請參閱在 Azure 監視器中建立診斷設定

如需 Azure 監視器中所有資源可收集的計量完整清單,請參閱 Azure 監視器中所支援的計量

Batch 帳戶中的計量範例包括集區建立事件、低優先順序節點計數和工作完成事件。 這些計量有助於識別趨勢,並可用於數據分析。

注意

過去 3 分鐘內發出的計量可能仍會匯總,因此值在此時間範圍內可能會低於報告。 計量傳遞不保證,而且可能會受到順序錯亂傳遞、數據遺失或重複的影響。

如需 Batch 可用計量的完整清單,請參閱 Batch 監視資料參考

Azure 監視器資源記錄

資源記錄提供 Azure 資源所完成作業的深入解析。 系統會自動產生記錄,但您必須將其路由傳送至 Azure 監視器記錄,以便儲存或查詢記錄。 記錄會依類別組織。 指定的命名空間可能會有多個資源記錄類別。

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

路由:建議的預設值是將資源記錄路由傳送至 Azure 監視器記錄,以便與其他記錄資料一同查詢。 您也可以使用其他位置,例如 Azure 儲存體、Azure 事件中樞及特定 Microsoft 監視合作夥伴。 如需詳細資訊,請參閱 Azure 資源記錄資源記錄目的地

如需收集、儲存及路由資源記錄的詳細資訊,請參閱 Azure 監視器中的診斷設定

如需 Azure 監視器中所有可用資源記錄類別的清單,請參閱 Azure 監視器中支援的資源記錄

Azure 監視器中的所有資源記錄都有相同的標頭欄位,後面接著服務特定的欄位。 一般結構描述如 Azure 監視器資源記錄結構描述中所述。

如需可用的資源記錄類別、其相關聯的Log Analytics資料表,以及 Batch 的記錄架構,請參閱 Batch 監視數據參考

您必須針對您想要監視的每個 Batch 帳戶明確啟用診斷設定。

針對 Batch 服務,您可以收集下列記錄:

  • ServiceLogBatch 服務 在集區或工作等個別資源的存留期內發出的事件。
  • AllMetrics:Batch 帳戶層級的計量。

下列螢幕快照顯示將allLogsAllMetrics 傳送至 Log Analytics 工作區的範例診斷設定。

顯示範例的 [診斷設定] 頁面螢幕快照。

當您建立 Azure Batch 集區時,您可以在計算節點上安裝下列任何與監視相關的擴充功能,以收集和分析數據:

如需不同擴充功能和代理程式及其收集的數據比較,請參閱 比較代理程式

Azure 活動記錄

活動記錄包含訂用帳戶層級事件,可追蹤每個 Azure 資源的作業,如該資源外部所示:例如,建立新的資源或啟動虛擬機。

集合:活動記錄事件會自動產生並收集在個別存放區中,以便在 Azure 入口網站中檢視。

路由: 您可以將活動記錄數據傳送至 Azure 監視器記錄,以便與其他記錄數據一起分析。 您也可以使用其他位置,例如 Azure 儲存體、Azure 事件中樞及特定 Microsoft 監視合作夥伴。 如需路由傳送活動記錄的詳細資訊,請參閱 Azure 活動記錄概觀

具體針對 Batch 帳戶來說,活動記錄會收集關於帳戶建立和刪除及金鑰管理的事件。

分析監視資料

有許多工具可用來分析監視數據。

Azure 監視器工具

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

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

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

當您分析以計數為基礎的 Batch 計量時,例如專用核心計數或低優先順序節點計數,請使用 Avg 匯總。 針對集區重設大小完成事件之類的事件型計量,請使用 計數 匯總。 避免使用 Sum 匯總,這會加總圖表期間所接收之所有數據點的值。

Azure 監視器匯出工具

您可以使用下列方法將資料從 Azure 監視器中提取至其他工具:

若要開始使用適用於 Azure 監視器的 REST API,請參閱 Azure 監視 REST API 逐步解說

Kusto 查詢

您可以使用 Kusto 查詢語言 (KQL) 分析 Azure 監視器記錄/Log Analytics 存放區中的監視數據。

重要

當您從入口網站的服務功能表中選取 [記錄] 時,Log Analytics 會隨即開啟,並將查詢範圍設定為目前服務。 此範圍表示記錄查詢只會包含該資源類型的資料。 如果您想要執行包含其他 Azure 服務資料的查詢,請從 [Azure 監視器] 功能表中選取 [記錄]。 如需詳細資訊,請參閱 Azure 監視器 Log Analytics 中的記錄查詢範圍和時間範圍

如需各項服務的常見查詢清單,請參閱 Log Analytics 查詢介面

範例查詢

以下是 Batch 的一些範例記錄查詢:

集區重設大小:依集區和結果碼列出重設大小時間(成功或失敗):

AzureDiagnostics
| where OperationName=="PoolResizeCompleteEvent"
| summarize operationTimes=make_list(startTime_s) by poolName=id_s, resultCode=resultCode_s

任務工期:以秒為單位提供任務經過的時間,從工作開始到工作完成。

AzureDiagnostics
| where OperationName=="TaskCompleteEvent"
| extend taskId=id_s, ElapsedTime=datetime_diff('second', executionInfo_endTime_t, executionInfo_startTime_t) // For longer running tasks, consider changing 'second' to 'minute' or 'hour'
| summarize taskList=make_list(taskId) by ElapsedTime

每個作業失敗的工作:依父作業列出失敗的工作。

AzureDiagnostics
| where OperationName=="TaskFailEvent"
| summarize failedTaskList=make_list(id_s) by jobId=jobId_s, ResourceId

警示

在監視資料中發現特定狀況時,Azure 監視器會主動通知您。 警示可讓您及早識別系統中的問題並予以因應,避免客戶發現這些問題。 如需詳細資訊,請參閱 Azure 監視器警示

Azure 資源的常見警示有許多來源。 如需 Azure 資源的常見警示範例,請參閱記錄警示查詢範例Azure 監視器基準警示 (AMBA) 網站提供半自動化方法來實作重要的平臺計量警示、儀錶板和指導方針。 此網站適用於持續擴充的 Azure 服務子集,包括屬於 Azure 登陸區域 (ALZ) 的所有服務。

常見的警示結構描述會將 Azure 監視器警示通知的使用量標準化。 如需詳細資訊,請參閱一般警示結構描述

警示類型

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

下列清單描述可建立的 Azure 監視器警示類型:

  • 計量警示會定期評估資源計量。 這些計量可以是平台計量、自訂計量、Azure 監視器轉換成計量的記錄,或 Application Insights 計量。 計量警示還可以套用多個條件和動態閾值。
  • 記錄警示可讓使用者使用 Log Analytics 查詢,以預先定義的頻率評估資源記錄。
  • 活動記錄警示會在發生符合定義條件的新活動記錄事件時觸發。 資源健康狀態警示和服務健康情況警示是報告服務和資源健康狀態的活動記錄警示。

某些 Azure 服務也支援 智慧偵測警示Prometheus 警示建議的警示規則

針對某些服務,您可以將相同的計量警示規則套用至相同 Azure 區域中相同類型的多個資源,以大規模監視。 系統會針對每個受監視的資源傳送個別通知。 如需支援的 Azure 服務和雲端,請參閱使用一個警示規則監視多個資源

注意

如果您要建立或執行服務上執行的應用程式, Azure 監視器應用程式深入解析 可能會提供更多類型的警示。

批次警示規則

因為計量傳遞可能會受到不一致的情況,例如順序錯亂傳遞、數據遺失或重複,因此您應該避免在單一數據點上觸發的警示。 請改用臨界值來考慮一段時間的這些不一致。

例如,當您的低優先順序核心計數降至特定層級時,您可能會想要設定計量警示。 然後,您可以使用此警示來調整集區組合。 為獲得最佳結果,請設定 10 分鐘以上的期間,如果平均低優先順序核心計數低於整個期間閾值,警示就會觸發此期間。 這段期間可讓計量匯總,以便取得更精確的結果。

下表列出 Batch 的一些警示規則觸發程式。 這些警示規則只是範例。 您可以設定 Batch 監視資料參考中列出的任何計量、記錄專案或活動記錄專案的警示。

警示類型 Condition 描述
計量 無法使用的節點計數 每當無法使用的節點計數大於 0 時
計量 工作失敗事件 每當工作失敗事件總數大於動態閾值時

Advisor 建議

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

如需 Azure Advisor 的詳細資訊,請參閱 Azure Advisor 概觀

其他批次監視選項

Batch Explorer是免費、功能豐富、獨立用戶端的工具,可以協助建立、偵錯及監視 Azure Batch 應用程式。 您可以使用 Azure Batch Insights 搭配 Batch Explorer 來取得 Batch 節點的系統統計數據,例如虛擬機 (VM) 性能計數器。

在 Batch 應用程式中,您可以使用 Batch .NET 連結庫 來監視或查詢資源的狀態,包括作業、工作、節點和集區。 例如:

您可以使用 Batch API 來建立 Batch 作業、工作、計算節點和其他資源的清單查詢。 如需如何篩選清單查詢的詳細資訊,請參閱 建立查詢以有效率地列出 Batch 資源。

或者,您可以使用取得工作計數和清單集區節點計數作業,取得 Batch 工作和計算節點的計數,而不是傳回大型工作或節點集合的詳細資訊的耗時清單查詢。 如需詳細資訊,請參閱 依狀態計算工作和節點來監視 Batch 解決方案。

您可以將 Application Insights 與您的 Azure Batch 應用程式整合,以使用自定義計量和追蹤來檢測程式代碼。 如需如何將Application Insights新增至 Batch .NET 解決方案、檢測應用程式程式代碼、監視 Azure 入口網站 中的應用程式,以及建置自定義儀錶板的詳細逐步解說,請參閱使用 Application Insights 監視和偵錯 Azure Batch .NET 應用程式,以及隨附的程式代碼範例