監視 Azure 事件中樞

當您有依賴 Azure 資源的重要應用程式和商務程序時,您會想要監視這些資源的可用性、效能和操作。 本文將介紹 Azure 事件中樞所產生的監視資料,以及如何使用 Azure 監視器的功能來分析此資料並發出警示。

什麼是 Azure 監視器?

Azure 事件中樞會使用 Azure 監視器 (這是 Azure 中的完整堆疊監視服務) 來建立監視資料。 Azure 監視器提供一組完整的功能來監視您的 Azure 資源。 其也可以監視其他雲端和內部部署中的資源。

請先閱讀<使用 Azure 監視器監視 Azure 資源>一文,其中會說明下列概念:

  • 什麼是 Azure 監視器?
  • 與監視相關聯的成本
  • 在 Azure 中收集的監視資料
  • 設定資料收集
  • Azure 中用來分析和警示監視資料的標準工具

下列各節以此文章為基礎,說明從 Azure 事件中樞收集的特定資料。 這些章節也會提供範例,展示如何使用 Azure 工具來設定資料收集和分析此資料。

提示

若要了解 Azure 監視器的相關成本,請參閱 Azure 監視器成本和使用量。 若要瞭解您的資料顯示在 Azure 監視器中要花費的時間,請參閱記錄檔資料擷取時間

從 Azure 事件中樞中監視資料

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

如需 Azure 事件中樞所建立的記錄和計量詳細參考,請參閱 Azure 事件中樞監視資料參考

收集和路由傳送

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

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

如需使用 Azure 入口網站、Azure CLI 或 PowerShell 建立診斷設定的詳細程序,請參閱建立診斷設定以在 Azure 中收集平台記錄和計量。 在建立診斷設定時,您可以指定要收集的記錄類別。 Azure 事件中樞的類別會列在 Azure 事件中樞監視資料參考中。

注意

Azure 監視器不會在匯出的計量資料中包含維度,這會傳送至目的地,例如 Azure 儲存體、Azure 事件中樞、Log Analytics 等等。

Azure 儲存體

如果您使用 Azure 儲存體儲存診斷記錄資訊,此資訊會儲存在名為 insights-logs-operationlogsinsights-metrics-pt1m 的容器中。 作業記錄的範例 URL:https://<Azure Storage account>.blob.core.windows.net/insights-logs-operationallogs/resourceId=/SUBSCRIPTIONS/<Azure subscription ID>/RESOURCEGROUPS/<Resource group name>/PROVIDERS/MICROSOFT.SERVICEBUS/NAMESPACES/<Namespace name>/y=<YEAR>/m=<MONTH-NUMBER>/d=<DAY-NUMBER>/h=<HOUR>/m=<MINUTE>/PT1H.json。 計量記錄的 URL 很類似。

Azure 事件中樞

如果您使用 Azure 事件中樞儲存診斷記錄資訊,此資訊會儲存在名為 insights-logs-operationlogsinsights-metrics-pt1m 的事件中樞執行個體中。 除了要設定診斷設定的事件中樞外,您也可以選取現有的事件中樞。

Log Analytics

如果您使用 Log Analytics 來儲存診斷記錄資訊,此資訊會儲存在名為 AzureDiagnostics / AzureMetrics 的資料表或資源專屬資料表

重要

啟用這些設定將需要額外的 Azure 服務 (儲存體帳戶、事件中樞或 Log Analytics),這可能會增加您的成本。 若要計算預估成本,請造訪 Azure 定價計算機

注意

當您在診斷設定中啟用計量時,維度資訊目前不會包含在傳送至儲存體帳戶、事件中樞或記錄分析的資訊中。

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

分析計量

您可以從事件中樞命名空間首頁的 Azure 監視器區段中選取 [計量],分析 Azure 事件中樞的計量,以及來自其他 Azure 服務的計量。 如需使用此工具的詳細資料,請參閱使用 Azure 監視器計量總管分析計量。 如需可收集平台計量的清單,請參閱監視 Azure 事件中樞資料參考計量

顯示事件中樞命名空間計量總管的螢幕快照。

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

提示

Azure 監視器計量資料會保留 90 天。 不過,在建立圖表時,只能將 30 天的資料視覺化。 例如,如果您想要將 90 天期間視覺化,您必須將 90 天期間分成三個 30 天的圖表。

篩選和分割

針對支援維度的計量,您可以套用維度值以進行篩選。 例如,新增篩選,並將 EntityName 設定為事件中樞的名稱。 您可以依維度來分割計量,以視覺化方式顯示計量的不同區段有何差異。 如需篩選和分割的詳細資訊,請參閱 Azure 監視器的進階功能

此螢幕快照顯示具有篩選條件的事件中樞命名空間計量總管。

分析記錄

使用 Azure 監視器 Log Analytics 時需要建立診斷組態,才能將資訊傳送至 Log Analytics。 如需詳細資訊,請參閱收集和路由傳送一節。 Azure 監視器記錄中的資料會儲存在資料表中,其中每個資料表都有一組專屬的唯一屬性。 Azure 事件中樞 能夠將記錄分派至 Log Analytics 中的兩個目的地數據表之一-Azure 診斷或資源特定數據表。如需記錄和計量的詳細參考,請參閱 Azure 事件中樞 監視數據參考

重要

當您從 [Azure 事件中樞] 功能表中選取 [記錄] 時,Log Analytics 會隨即開啟,並將查詢範圍設定為目前工作區。 這表示記錄查詢只會包含來自該資源的資料。 如果您想要執行包含其他資料庫資料或其他 Azure 服務資料的查詢,請從 [Azure 監視器] 功能表中選取 [記錄]。 如需詳細資訊,請參閱 Azure 監視器 Log Analytics 中的記錄查詢範圍和時間範圍

範例 Kusto 查詢

重要

當您從 [Azure 事件中樞] 功能表中選取 [記錄] 時,Log Analytics 會隨即開啟,並將查詢範圍設定為目前的 Azure 事件中樞命名空間。 這表示記錄查詢只會包含來自該資源的資料。 如果您想要執行包含其他工作區資料或其他 Azure 服務資料的查詢,請從 [Azure 監視器] 功能表中選取 [記錄]。 如需詳細資訊,請參閱 Azure 監視器 Log Analytics 中的記錄查詢範圍和時間範圍

以下是可用來協助您監視 Azure 事件中樞資源的範例查詢:

  • 取得過去七天的錯誤

    AzureDiagnostics
    | where TimeGenerated > ago(7d)
    | where ResourceProvider =="MICROSOFT.EVENTHUB"
    | where Category == "OperationalLogs"
    | summarize count() by "EventName"
    
    
  • 取得過去一小時內產生的執行階段稽核記錄。

    AzureDiagnostics
    | where TimeGenerated > ago(1h)
    | where ResourceProvider =="MICROSOFT.EVENTHUB"
    | where Category == "RuntimeAuditLogs"    
    
  • 取得導致「找不到金鑰」錯誤的金鑰保存庫存取嘗試。

    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.EVENTHUB" 
    | where Category == "Error" and OperationName == "wrapkey"
    | project Message
    
  • 取得使用金鑰保存庫執行以停用或還原金鑰的作業。

    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.EVENTHUB"
    | where Category == "info" and OperationName == "disable" or OperationName == "restore"
    | project Message
    
  • 取得擷取失敗及其持續時間 (秒)

    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.EVENTHUB"
    | where Category == "ArchiveLogs"
    | summarize count() by "failures", "durationInSeconds"    
    

使用執行階段記錄

Azure 事件中樞可讓您使用執行階段稽核記錄和應用程式計量記錄,來監視和稽核用戶端應用程式的資料平面互動。

使用執行階段稽核記錄,您可以擷取所有資料平面存取作業的彙總診斷資訊,例如發佈或取用事件。 應用程式計量記錄會擷取特定執行階段計量上的彙總資料 (例如取用者延遲和作用中連線),這些計量與連線到事件中樞的用戶端應用程式相關。

注意

執行階段稽核記錄僅適用於 [進階] 與 [專用] 層。

啟用執行階段記錄

您可以從 [事件中樞命名空間] 頁面上的 [事件中樞命名空間] 頁面上選取 [診斷設定],以啟用運行時間稽核或應用程式計量記錄 Azure 入口網站。 選取 [ 新增診斷設定 ],如下圖所示。

顯示事件中樞命名空間 [診斷設定] 頁面的螢幕快照。

然後您可以視需要啟用記錄類別 RuntimeAuditLogsApplicationMetricsLogs

顯示已啟用運行時間稽核和應用程式計量記錄的螢幕快照。

啟用運行時間記錄之後,事件中樞會根據診斷設定組態開始收集和儲存它們。

發佈及取用範例資料

若要收集事件中樞命名空間中的範例運行時間稽核記錄,您可以使用以事件中樞 SDK 為基礎的用戶端應用程式來發佈及取用範例數據,其使用進階消息佇列通訊協定 (AMQP) 或使用任何 Apache Kafka 用戶端應用程式

分析執行階段稽核記錄

您可以使用下列範例查詢來分析收集的執行階段稽核記錄。

AzureDiagnostics
| where TimeGenerated > ago(1h)
| where ResourceProvider == "MICROSOFT.EVENTHUB"
| where Category == "RuntimeAuditLogs"

在執行查詢時,您應該能夠以下列格式取得對應的稽核記錄。 顯示範例查詢結果以分析運行時間稽核記錄的影像。

藉由分析這些記錄,您應該能夠稽核每個用戶端應用程式與事件中樞的互動方式。 運行時間稽核記錄參考會定義與運行時間稽核記錄相關聯的每個字段。

分析應用程式計量

您可以使用下列範例查詢來分析收集的應用程式計量記錄。

AzureDiagnostics
| where TimeGenerated > ago(1h)
| where Category == "ApplicationMetricsLogs"

應用程式計量包含下列運行時間計量。 顯示範例查詢結果以分析應用程式計量的影像。

因此,您可以使用應用程式計量來監視執行階段計量,例如來自指定用戶端應用程式的取用者延遲或作用中連線。 與運行時間稽核記錄相關聯的欄位定義於應用程式計量記錄參考

警示

您可以從事件中樞命名空間首頁的 [Azure 監視器] 區段中選取 [警示],以存取 Azure 事件中樞的警示。 如需有關建立警示的詳細資訊,請參閱使用 Azure 監視器建立、檢視及管理計量警示

下一步