この記事では、Event Grid リソースの診断設定を有効にする手順について詳しく説明します。 診断設定は公開および配信の失敗情報を収集し、イベントグリッドリソースの問題を診断・トラブルシューティングできるようにします。 以下の表は、カスタムトピック、システムトピック、ドメインなど、さまざまな種類のイベントグリッドリソースで利用可能な設定を示しています。
| 診断設定 | Event Grid トピック | Event Grid システム トピック | イベント ドメイン | Event Grid のパートナー名前空間 |
|---|---|---|---|---|
| DeliveryFailures | はい | はい | はい | いいえ |
| PublishFailures | はい | いいえ | はい | はい |
| DataPlaneRequests | はい | いいえ | はい | はい |
重要
配信エラー、発行エラー、データ プレーン要求のスキーマについては、診断ログに関するページをご覧ください。
前提条件
- プロビジョニングされた Event Grid リソース
- 診断ログのキャプチャに使用するプロビジョニングされた宛先。
- Log Analytics ワークスペース
- ストレージ アカウント
- Event Hubs
- パートナー ソリューション
Event Grid のトピックとドメインの診断ログを有効にする
注
ここでは、トピックの診断ログを有効にする手順について詳しく説明します。 ドメインの診断ログを有効にする手順も同様のものです。 手順 2 で、Azure portal 内の Event Grid ドメインに移動します。
Azure portal にサインインします。
診断ログ設定を有効にする Event Grid トピックに移動します。
上部の検索バーで、"Event Grid トピック" を検索します。
診断設定を構成するリストから、 [トピック] を選択します。
左側のメニューの [監視] の下にある [診断設定] を選択します。
[診断設定] ページで、[診断設定の追加] を選択します。
診断設定の名前を入力してください。
[ログ] セクションで [allLogs] オプションを選択します。
ログのキャプチャ先のうち1つ以上を有効にし、以前に作成したキャプチャリソースを選択して設定します。
[Log Analytics への送信] を選択した場合は、Log Analytics ワークスペースを選択します。
[ストレージ アカウントへのアーカイブ] を選択した場合は、 [ストレージ アカウント - 構成] を選択してから、Azure サブスクリプションのストレージ アカウントを選択します。
[イベント ハブへのストリーム] を選択した場合は、 [イベント ハブ - 構成] を選択してから、Event Hubs 名前空間、イベント ハブ、およびアクセス ポリシーを選択します。
[保存] を選択します。 次に、右上の X を選択してページを閉じます。
診断設定ページに戻って、診断設定のテーブルに新しいエントリがあるか確認してください。
また、トピックのすべてのメトリックの収集を有効にすることもできます。
Event Grid システム トピックについての診断ログを有効にする
Azure portal にサインインします。
診断ログ設定を有効にしたいシステムのトピックに行ってください。
上部の検索バーで、"Event Grid システム トピック" を検索します。
診断設定を設定したい システムトピック を選択してください。
左側のペインで [監視] の下の [診断設定] を選択してから、 [Add diagnostic setting](診断設定の追加) を選択します。
診断設定の名前を入力してください。
[ログ] セクションで [allLogs] オプションを選択します。
ログのキャプチャ先のうち1つ以上を有効にし、以前に作成したキャプチャリソースを選択して設定します。
[Log Analytics への送信] を選択した場合は、Log Analytics ワークスペースを選択します。
[ストレージ アカウントへのアーカイブ] を選択した場合は、 [ストレージ アカウント - 構成] を選択してから、Azure サブスクリプションのストレージ アカウントを選択します。
[イベント ハブへのストリーム] を選択した場合は、 [イベント ハブ - 構成] を選択してから、Event Hubs 名前空間、イベント ハブ、およびアクセス ポリシーを選択します。
[保存] を選択します。 次に、右上の X を選択してページを閉じます。
診断設定ページに戻って、診断設定のテーブルに新しいエントリがあるか確認してください。
システムトピックのすべての指標の収集を有効にすることもできます。
Azure Storage アカウントの診断ログの表示
キャプチャ先としてストレージアカウントを有効にすると、Event Gridは診断ログの送信を開始します。 ストレージアカウントには、insights-logs-deliveryfailuresやinsights-logs-publishfailuresという新しいコンテナが表示されます。
コンテナの一つを進むと、JSON形式のブロブにたどり着きます。 このファイルには、配信エラーまたは発行エラーのログ エントリが含まれています。 ナビゲーションパスはイベントグリッドトピックの 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 テンプレートの使用
Event Grid トピックの診断設定を有効にする Azure Resource Manager テンプレートの例を次に示します。 このサンプルテンプレートを展開すると、以下のリソースが作成されます:
- Event Grid トピック
- 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] を選択します。
監査トレースを用いて、データアクセスが許可された目的でのみ許可されていることを保証します。 リソース名、操作タイプ、ネットワークアクセス、レベル、地域などのセキュリティ制御に関する情報を収集します。 診断設定を有効にする方法については、「 Event Gridトピックおよびドメインの診断ログを有効にする」をご覧ください。
重要
DataPlaneRequests スキーマの詳細については、診断ログに関するページを参照してください。
次のステップ
ログ スキーマと、トピックまたはドメインの診断ログに関するその他の概念情報については、「診断ログ」を参照してください。