本文提供啟用事件方格資源診斷設定的逐步指示。 診斷設定會擷取發佈與傳遞失敗的資訊,讓您能診斷並排除事件網格資源的問題。 下表顯示不同類型事件網格資源的設定:自訂主題、系統主題及領域。
| 診斷設定 | 事件方格主題 | 事件方格系統主題 | 事件網域 | 事件方格合作夥伴命名空間 |
|---|---|---|---|---|
| DeliveryFailures | Yes | Yes | Yes | 否 |
| 發佈失敗 | Yes | 否 | Yes | Yes |
| DataPlaneRequests | Yes | 否 | Yes | Yes |
重要
如需傳遞失敗、發佈失敗和資料平面要求的結構描述,請參閱診斷記錄。
必要條件
- 已佈建的事件方格資源
- 用於擷取診斷日誌的已佈建目的地:
- Log Analytics 工作區
- 儲存體帳戶
- 事件中樞
- 合作夥伴解決方案
啟用事件方格主題和網域的診斷記錄
注意
下列程序提供啟用主題診斷記錄的逐步指示。 啟用網域診斷日誌的步驟類似。 在步驟 2 中,前往 Azure 入口網站中的 Event Grid 網域。
登入 Azure 入口網站。
導覽至您想要啟用診斷記錄設定的事件方格主題。
在頂端的搜尋列中,搜尋 [事件方格主題]。
從清單中,選取您想要設定診斷設定的 [主題]。
在左側功能表中,選取 [監視] 下的 [診斷設定]。
在 [診斷設定] 頁面上,選取 [新增診斷設定]。
輸入診斷設定的名稱。
在記錄區段中,選取allLogs選項。
啟用一個或多個日誌的擷取目的地,然後選擇先前建立的擷取資源來設定。
如果您選取 [傳送至 Log Analytics],則請選取 Log Analytics 工作區。
如果您選取 [封存至儲存體帳戶],則請選取 [儲存體帳戶 -設定],然後選取 Azure 訂用帳戶中的儲存體帳戶。
如果您選取 [串流至事件中樞],則請選取 [事件中樞 - 設定],然後選取事件中樞命名空間、事件中樞和存取原則。
選取儲存。 接著,在右上角選擇 X 鍵關閉頁面。
回到 診斷設定 頁面,確認你在 診斷設定 表看到新項目。
您也可以啟用收集此主題的所有指標。
啟用事件方格系統主題的診斷記錄
登入 Azure 入口網站。
前往您要啟用診斷記錄設定的系統主題。
在頂端的搜尋列中,搜尋 [事件方格系統主題]。
選擇你想設定診斷設定的 系統主題 。
在左側功能表上,選取 [監視] 下的 [診斷設定],然後選取 [新增診斷設定]。
輸入診斷設定的名稱。
在記錄區段中,選取allLogs選項。
啟用一個或多個日誌的擷取目的地,然後選擇先前建立的擷取資源來設定。
如果您選取 [傳送至 Log Analytics],則請選取 Log Analytics 工作區。
如果您選取 [封存至儲存體帳戶],則請選取 [儲存體帳戶 -設定],然後選取 Azure 訂用帳戶中的儲存體帳戶。
如果您選取 [串流至事件中樞],則請選取 [事件中樞 - 設定],然後選取事件中樞命名空間、事件中樞和存取原則。
選取儲存。 接著,在右上角選擇 X 鍵關閉頁面。
回到 診斷設定 頁面,確認你在 診斷設定 表看到新項目。
你也可以啟用系統主題的所有指標收集功能。
在 Azure 儲存體中檢視診斷記錄
當你啟用儲存帳號作為擷取目的地時,Event Grid 會開始發送診斷日誌。 你會在儲存體帳戶中看到兩個名為 insights-logs-deliveryfailures 和 insights-logs-publishfailures 的新容器。
當你在其中一個容器中瀏覽時,會看到一個 JSON 格式的 blob。 此檔案包含傳遞失敗或發佈失敗的記錄項目。 導航路徑代表事件網格主題的 ResourceId ,以及事件網格發出日誌條目時的時間戳(分鐘級)。 你可以下載的 blob/JSON 檔案,遵循下一節描述的結構。
你在 JSON 檔案中看到的內容,類似以下範例:
{ "time": "2019-11-01T00:17:13.4389048Z", "resourceId": "/SUBSCRIPTIONS/SAMPLE-SUBSCRIPTION-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=SAMPLE-TOPIC-NAME.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://sample-namespace.servicebus.windows.net/, deliveryResponse=NotFound: The messaging entity 'sb://sample-namespace.servicebus.windows.net/sample-eventhub' could not be found. TrackingId:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_G14, SystemTracker:sample-namespace.servicebus.windows.net:sample-eventhub, Timestamp:2019-11-01T00:17:13, referenceId: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_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
}
]
}
}
]
}
為稽核追蹤啟用診斷記錄
Event Grid 可以發佈資料平面作業的稽核追蹤記錄。 若要啟用此功能,請選取 [類別群組] 區段中的 [稽核],或選取 [類別] 區段中的 [DataPlaneRequests]。
利用稽核追蹤確保資料存取僅允許用於授權用途。 它收集有關安全控制的資訊,例如資源名稱、操作類型、網路存取、層級及區域。 欲了解更多如何啟用診斷設定的資訊,請參閱「 啟用事件網格主題與領域診斷日誌」。
重要
如需 DataPlaneRequests 結構描述的詳細資訊,請參閱診斷記錄。
下一步
如需主題或網域診斷記錄的記錄結構描述和和其他概念資訊,請參閱診斷記錄。