Event Grid リソースについての診断ログを有効にする

この記事では、Event Grid リソースの診断設定を有効にする手順について詳しく説明します。 診断設定は公開および配信の失敗情報を収集し、イベントグリッドリソースの問題を診断・トラブルシューティングできるようにします。 以下の表は、カスタムトピック、システムトピック、ドメインなど、さまざまな種類のイベントグリッドリソースで利用可能な設定を示しています。

診断設定 Event Grid トピック Event Grid システム トピック イベント ドメイン Event Grid のパートナー名前空間
DeliveryFailures はい はい はい いいえ
PublishFailures はい いいえ はい はい
DataPlaneRequests はい いいえ はい はい

重要

配信エラー、発行エラー、データ プレーン要求のスキーマについては、診断ログに関するページをご覧ください。

前提条件

  • プロビジョニングされた Event Grid リソース
  • 診断ログのキャプチャに使用するプロビジョニングされた宛先。
    • Log Analytics ワークスペース
    • ストレージ アカウント
    • Event Hubs
    • パートナー ソリューション

Event Grid のトピックとドメインの診断ログを有効にする

ここでは、トピックの診断ログを有効にする手順について詳しく説明します。 ドメインの診断ログを有効にする手順も同様のものです。 手順 2 で、Azure portal 内の Event Grid ドメインに移動します。

  1. Azure portal にサインインします。

  2. 診断ログ設定を有効にする Event Grid トピックに移動します。

    1. 上部の検索バーで、"Event Grid トピック" を検索します。

      検索ボックス内に Event Grid トピックが表示された Azure portal を示すスクリーンショット。

    2. 診断設定を構成するリストから、 [トピック] を選択します。

  3. 左側のメニューの [監視] の下にある [診断設定] を選択します。

  4. [診断設定] ページで、[診断設定の追加] を選択します。

    カスタムトピックの診断設定ページを示すスクリーンショットです。

  5. 診断設定の名前を入力してください。

  6. [ログ] セクションで [allLogs] オプションを選択します。

    [すべてのログ] が選択された状態の [診断設定] ページを示すスクリーンショット。

  7. ログのキャプチャ先のうち1つ以上を有効にし、以前に作成したキャプチャリソースを選択して設定します。

    • [Log Analytics への送信] を選択した場合は、Log Analytics ワークスペースを選択します。

      [Log Analytics への送信] が選択されている [診断設定] ページを示すスクリーンショット。

    • [ストレージ アカウントへのアーカイブ] を選択した場合は、 [ストレージ アカウント - 構成] を選択してから、Azure サブスクリプションのストレージ アカウントを選択します。

      [Azure ストレージ アカウントにアーカイブする] チェックボックスがオンになっており、ストレージ アカウントが選択されている [診断設定] ページ示すスクリーンショット。

    • [イベント ハブへのストリーム] を選択した場合は、 [イベント ハブ - 構成] を選択してから、Event Hubs 名前空間、イベント ハブ、およびアクセス ポリシーを選択します。

      診断設定ページが表示され、イベントハブへのストリームを選択しているスクリーンショットです。

  8. [保存] を選択します。 次に、右上の X を選択してページを閉じます。

  9. 診断設定ページに戻って、診断設定のテーブルに新しいエントリがあるか確認してください。

    診断設定のページに新しいエントリがハイライトされたスクリーンショットです。

また、トピックのすべてのメトリックの収集を有効にすることもできます。

Event Grid システム トピックについての診断ログを有効にする

  1. Azure portal にサインインします。

  2. 診断ログ設定を有効にしたいシステムのトピックに行ってください。

    1. 上部の検索バーで、"Event Grid システム トピック" を検索します。

      Azureポータルのイベントグリッドシステムのトピックが検索ボックスにあるスクリーンショットです。

    2. 診断設定を設定したい システムトピック を選択してください。

      イベントグリッドシステムのトピック一覧を示すスクリーンショットです。

  3. 左側のペインで [監視] の下の [診断設定] を選択してから、 [Add diagnostic setting](診断設定の追加) を選択します。

    システムトピックの診断設定ページに「診断設定を追加」ボタンがあるスクリーンショットです。

  4. 診断設定の名前を入力してください。

  5. [ログ] セクションで [allLogs] オプションを選択します。

    システムトピックの診断設定ページが「すべてのログ」を選択しているスクリーンショットです。

  6. ログのキャプチャ先のうち1つ以上を有効にし、以前に作成したキャプチャリソースを選択して設定します。

    • [Log Analytics への送信] を選択した場合は、Log Analytics ワークスペースを選択します。

      システムトピックの診断設定ページで「Send to Log Analytics」を選択しているスクリーンショットです。

    • [ストレージ アカウントへのアーカイブ] を選択した場合は、 [ストレージ アカウント - 構成] を選択してから、Azure サブスクリプションのストレージ アカウントを選択します。

      システムトピックの診断設定ページを映し出し、ストレージアカウントにアーカイブが選択されているスクリーンショットです。

    • [イベント ハブへのストリーム] を選択した場合は、 [イベント ハブ - 構成] を選択してから、Event Hubs 名前空間、イベント ハブ、およびアクセス ポリシーを選択します。

      ストリーム・トゥ・イベントハブを選択しているシステムトピックの診断設定ページを示すスクリーンショットです。

  7. [保存] を選択します。 次に、右上の X を選択してページを閉じます。

  8. 診断設定ページに戻って、診断設定のテーブルに新しいエントリがあるか確認してください。

    システムトピックの診断設定ページとテーブルの新しいエントリを示すスクリーンショットです。

システムトピックのすべての指標の収集を有効にすることもできます。

システムトピックの診断設定ページで、すべてのメトリクスが選択されているスクリーンショットです。

Azure Storage アカウントの診断ログの表示

  1. キャプチャ先としてストレージアカウントを有効にすると、Event Gridは診断ログの送信を開始します。 ストレージアカウントには、insights-logs-deliveryfailuresやinsights-logs-publishfailuresという新しいコンテナが表示されます。

    診断ログ用のストレージアカウントコンテナを示すスクリーンショットです。

  2. コンテナの一つを進むと、JSON形式のブロブにたどり着きます。 このファイルには、配信エラーまたは発行エラーのログ エントリが含まれています。 ナビゲーションパスはイベントグリッドトピックの ResourceId と、イベントグリッドがログエントリを発行したタイムスタンプ(分単位)を表します。 ダウンロード可能なblob/JSONファイルは、次のセクションで説明するスキーマに従っています。

    ストレージアカウント内のJSONのblobファイルを示すスクリーンショットです。

  3. 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 スキーマの詳細については、診断ログに関するページを参照してください。

次のステップ

ログ スキーマと、トピックまたはドメインの診断ログに関するその他の概念情報については、「診断ログ」を参照してください。