共用方式為


啟用事件方格資源的診斷記錄

本文提供啟用事件方格資源診斷設定的逐步指示。 這些設定可讓您擷取和檢視診斷資訊,以針對任何失敗進行疑難排解。 下表顯示不同類型的事件方格資源可用的設定:自訂主題、系統主題和網域。

診斷設定 事件方格主題 事件方格系統主題 事件網域 事件方格合作夥伴命名空間
DeliveryFailures Yes .是 .是 No
PublishFailures .是 Yes
DataPlaneRequests .是

重要

如需傳遞失敗、發佈失敗和資料平面要求的結構描述,請參閱診斷記錄

必要條件

  • 已佈建的事件方格資源
  • 用於擷取診斷記錄的已佈目的地:
    • Log Analytics 工作區
    • 儲存體帳戶
    • 事件中樞
    • 合作夥伴解決方案

啟用事件方格主題和網域的診斷記錄

注意

下列程序提供啟用主題診斷記錄的逐步指示。 啟用網域診斷記錄的步驟非常類似。 在步驟 2 中,導覽至 Azure 入口網站中的事件方格 [網域]

  1. 登入 Azure 入口網站

  2. 導覽至您想要啟用診斷記錄設定的事件方格主題。

    1. 在頂端的搜尋列中,搜尋 [事件方格主題]

      Screenshot that shows the Azure portal with Event Grid topics in the search box.

    2. 從清單中,選取您想要設定診斷設定的 [主題]

  3. 在左側功能表中,選取 [監視] 下的 [診斷設定]

  4. 在 [診斷設定] 頁面上,選取 [新增診斷設定]

    Screenshots showing the Diagnostic settings page of a custom topic.

  5. 指定診斷設定的 [名稱]

  6. 選取 [記錄] 區段中的 [allLogs] 選項。

    Screenshot that shows the Diagnostic setting page with All logs selected.

  7. 為記錄啟用一或多個擷取目的地,然後選取先前建立的擷取資源對其進行設定。

    • 如果您選取 [傳送至 Log Analytics],則請選取 Log Analytics 工作區。

      Screenshot that shows the Diagnostic settings page with Send to Log Analytics selected.

    • 如果您選取 [封存至儲存體帳戶],則請選取 [儲存體帳戶 -設定],然後選取 Azure 訂用帳戶中的儲存體帳戶。

      Screenshot that shows the Diagnostic settings page with Archive to an Azure storage account checked and a storage account selected.

    • 如果您選取 [串流至事件中樞],則請選取 [事件中樞 - 設定],然後選取事件中樞命名空間、事件中樞和存取原則。

      Screenshot that shows the

  8. 選取 [儲存]。 然後,選取右上角的 X 以關閉頁面。

  9. 現在,回到 [診斷設定] 頁面,確認您在 [診斷設定] 資料表中看到新的項目。

    Screenshot that shows the

您也可以啟用收集主題的所有計量。

啟用事件方格系統主題的診斷記錄

  1. 登入 Azure 入口網站
  2. 導覽至您想要啟用診斷記錄設定的系統主題。
    1. 在頂端的搜尋列中,搜尋 [事件方格系統主題]Search for system topics
    2. 從清單中,選取您想要設定診斷設定的 [系統主題]Select system topic
  3. 在左側功能表上,選取 [監視] 下的 [診斷設定],然後選取 [新增診斷設定]Add diagnostic settings - button
  4. 指定診斷設定的 [名稱]
  5. 選取 [記錄] 區段中的 [allLogs] 選項。 Select delivery failures
  6. 為記錄啟用一或多個擷取目的地,然後選取先前建立的擷取資源對其進行設定。
    • 如果您選取 [傳送至 Log Analytics],則請選取 Log Analytics 工作區。 Send to Log Analytics
    • 如果您選取 [封存至儲存體帳戶],則請選取 [儲存體帳戶 -設定],然後選取 Azure 訂用帳戶中的儲存體帳戶。 Archive to an Azure storage account
    • 如果您選取 [串流至事件中樞],則請選取 [事件中樞 - 設定],然後選取事件中樞命名空間、事件中樞和存取原則。 Stream to an event hub
  7. 選取 [儲存]。 然後,選取右上角的 X 以關閉頁面。
  8. 現在,回到 [診斷設定] 頁面,確認您在 [診斷設定] 資料表中看到新的項目。 Diagnostic setting in the list

您也可以啟用收集系統主題的所有「計量」System topic - enable all metrics

在 Azure 儲存體中檢視診斷記錄

  1. 啟用儲存體帳戶作為擷取目的地之後,事件方格就會開始發出診斷記錄。 您應該會在儲存體帳戶中看到名為 insights-logs-deliveryfailuresinsights-logs-publishfailures 的新容器。

    Storage - containers for diagnostic logs

  2. 當您導覽至其中一個容器時,最後會出現 JSON 格式的 Blob。 此檔案包含傳遞失敗或發佈失敗的記錄項目。 導覽路徑代表事件方格主題的 ResourceId,以及發出記錄項目時的時間戳記 (分鐘層級)。 Blob/JSON 檔案可供下載,而且最後會遵守下節中所述的結構描述。

    JSON file in the storage

  3. 您應該會在 JSON 檔案中看到與下列範例類似的內容:

    {
        "time": "2019-11-01T00:17:13.4389048Z",
        "resourceId": "/SUBSCRIPTIONS/SAMPLE-SUBSCTIPTION-ID /RESOURCEGROUPS/SAMPLE-RESOURCEGROUP-NAME/PROVIDERS/MICROSOFT.EVENTGRID/TOPICS/SAMPLE-TOPIC-NAME ",
        "eventSubscriptionName": "SAMPLEDESTINATION",
        "category": "DeliveryFailures",
        "operationName": "Deliver",
        "message": "Message:outcome=NotFound, latencyInMs=2635, id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx, systemId=xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, state=FilteredFailingDelivery, deliveryTime=11/1/2019 12:17:10 AM, deliveryCount=0, probationCount=0, deliverySchema=EventGridEvent, eventSubscriptionDeliverySchema=EventGridEvent, fields=InputEvent, EventSubscriptionId, DeliveryTime, State, Id, DeliverySchema, LastDeliveryAttemptTime, SystemId, fieldCount=, requestExpiration=1/1/0001 12:00:00 AM, delivered=False publishTime=11/1/2019 12:17:10 AM, eventTime=11/1/2019 12:17:09 AM, eventType=Type, deliveryTime=11/1/2019 12:17:10 AM, filteringState=FilteredWithRpc, inputSchema=EventGridEvent, publisher=DIAGNOSTICLOGSTEST-EASTUS.EASTUS-1.EVENTGRID.AZURE.NET, size=363, fields=Id, PublishTime, SerializedBody, EventType, Topic, Subject, FilteringHashCode, SystemId, Publisher, FilteringTopic, TopicCategory, DataVersion, MetadataVersion, InputSchema, EventTime, fieldCount=15, url=sb://diagnosticlogstesting-eastus.servicebus.windows.net/, deliveryResponse=NotFound: The messaging entity 'sb://diagnosticlogstesting-eastus.servicebus.windows.net/eh-diagnosticlogstest' could not be found. TrackingId:c98c5af6-11f0-400b-8f56-c605662fb849_G14, SystemTracker:diagnosticlogstesting-eastus.servicebus.windows.net:eh-diagnosticlogstest, Timestamp:2019-11-01T00:17:13, referenceId: ac141738a9a54451b12b4cc31a10dedc_G14:"
    }
    

使用 Azure Resource Manager 範本

以下是範例 Azure Resource Manager 範本,可啟用事件方格主題的診斷設定。 當您部署此範例範本時,會建立下列資源。

  • 事件方格主題
  • Log Analytics 工作區

然後,其會建立主題的診斷設定,以將診斷資訊傳送至 Log Analytics 工作區。

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "topic_name": {
            "defaultValue": "spegrid0917topic",
            "type": "String"
        },
        "log_analytics_workspace_name": {
            "defaultValue": "splogaw0625",
            "type": "String"
        },
        "location": {
            "defaultValue": "eastus",
            "type": "String"
        },
        "sku": {
            "defaultValue": "Free",
            "type": "String"
        }
    },
    "variables": {},
    "resources": [
        {
            "type": "Microsoft.EventGrid/topics",
            "apiVersion": "2020-10-15-preview",
            "name": "[parameters('topic_name')]",
            "location": "[parameters('location')]",
            "sku": {
                "name": "Basic"
            },
            "kind": "Azure",
            "identity": {
                "type": "None"
            },
            "properties": {
                "inputSchema": "EventGridSchema",
                "publicNetworkAccess": "Enabled"
            }
        },
        {
            "apiVersion": "2017-03-15-preview",
            "name": "[parameters('log_analytics_workspace_name')]",
            "location": "[parameters('location')]",
            "type": "Microsoft.OperationalInsights/workspaces",
            "properties": {
                "sku": {
                    "name": "[parameters('sku')]"
                }
            }
        },
        {
            "type": "Microsoft.EventGrid/topics/providers/diagnosticSettings",
            "apiVersion": "2017-05-01-preview",
            "name": "[concat(parameters('topic_name'), '/', 'Microsoft.Insights/', parameters('log_analytics_workspace_name'))]",
            "location": "[parameters('location')]",
            "dependsOn": [
                "[resourceId('Microsoft.EventGrid/topics', parameters('topic_name'))]",
                "[resourceId('Microsoft.OperationalInsights/workspaces', parameters('log_analytics_workspace_name'))]"
            ],
            "properties": {
                "workspaceId": "[resourceId('Microsoft.OperationalInsights/workspaces', parameters('log_analytics_workspace_name'))]",
                "metrics": [
                    {
                        "category": "AllMetrics",
                        "enabled": true
                    }
                ],
                "logs": [
                    {
                        "category": "DeliveryFailures",
                        "enabled": true
                    },
                    {
                        "category": "PublishFailures",
                        "enabled": true
                    }
                ]
            }
        }
    ]
}

啟用稽核追蹤的診斷記錄

事件方格可以發佈資料平面作業的稽核追蹤。 若要啟用此功能,請選取 [類別群組] 區段中的 [稽核],或選取 [類別] 區段中的 [DataPlaneRequests]

稽核追蹤可以用來確保僅允許資料存取以供授權之用。 其會收集安全性控制的相關資訊,例如資源名稱、作業類型、網路存取、層級、區域等。 如需如何啟用診斷設定的詳細資訊,請參閱事件方格主題和事件網域中的診斷記錄Screenshot that shows the Diagnostic settings page with Audit selected.

重要

如需 DataPlaneRequests 結構描述的詳細資訊,請參閱診斷記錄

下一步

如需主題或網域診斷記錄的記錄結構描述和和其他概念資訊,請參閱診斷記錄