次の方法で共有


Azure Data Lake Analytics の診断ログへのアクセス

重要

Azure Data Lake Analytics は 2024 年 2 月 29 日に廃止されました。 このお知らせで詳細を学びましょう

データ分析の場合、組織は Azure Synapse Analytics または Microsoft Fabric を使用できます。

診断ログを使用すると、データ アクセス監査証跡を収集できます。 これらのログは、次のような情報を提供します。

  • データにアクセスしたユーザーの一覧。
  • データにアクセスする頻度。
  • アカウントに格納されているデータの量。

ログ記録を有効にする

  1. Azure Portal にサインオンします。

  2. Data Lake Analytics アカウントを開き、[監視] セクションから [診断設定] を選択します。 次に、[ + 診断設定の追加] を選択します。

    [診断設定] アクションが選択され、[+ 診断設定の追加] が強調表示されているスクリーンショット。

  3. [診断] 設定で、このログ構成の名前を入力し、ログ オプションを選択します。

    診断を有効にして監査ログと要求ログを収集する設定を示すスクリーンショット

    • データの格納/処理は、4 つの異なる方法で選択できます。

      • Azure ストレージ アカウントにログを 格納するには、ストレージ アカウントへのアーカイブを選択します。 データをアーカイブする場合は、このオプションを使用します。 このオプションを選択した場合は、ログを保存する Azure ストレージ アカウントを指定する必要があります。

      • [ イベント ハブへのストリーム] を選択して、ログ データを Azure Event Hubs にストリーミングします。 受信ログをリアルタイムで分析するダウンストリーム処理パイプラインがある場合は、このオプションを使用します。 このオプションを選択する場合は、使用する Azure Event Hubs の詳細を指定する必要があります。

      • [ Log Analytics ワークスペースに送信 ] を選択して、Azure Monitor サービスにデータを送信します。 Azure Monitor ログを使用してログを収集および分析する場合は、このオプションを使用します。

      • パートナー統合を使用する場合は、[ パートナー ソリューションに送信 ] を選択します。 詳細については、 このリンクをクリックしてください。

    • 監査ログを取得するか、要求ログを取得するか、またはその両方を取得するかを指定します。 要求ログは、すべての API 要求をキャプチャします。 監査ログには、その API 要求によってトリガーされるすべての操作が記録されます。

    • ストレージ アカウントへのアーカイブの場合は、データを保持する日数を指定します。

    • [保存] を選択します。

      [保存] ボタンを選択する前に、ストレージ アカウントへのアーカイブイベント ハブへのストリーム配信、Log Analytics ワークスペースへの送信、またはパートナー ソリューションへの送信のいずれかを選択する必要があります。

ログ データを含む Azure Storage アカウントを使用する

  1. ログ データを保持する BLOB コンテナーを表示するには、Data Lake Analytics でログ記録に使用される Azure Storage アカウントを開き、[コンテナー] を選択 します

    • コンテナー insights-logs-audit には監査ログが含まれています。
    • コンテナー insights-logs-requests 要求ログが含まれています。
  2. コンテナー内では、ログは次のファイル構造の下に格納されます。

    resourceId=/
      SUBSCRIPTIONS/
        <<SUBSCRIPTION_ID>>/
          RESOURCEGROUPS/
            <<RESOURCE_GRP_NAME>>/
              PROVIDERS/
                MICROSOFT.DATALAKEANALYTICS/
                  ACCOUNTS/
                    <DATA_LAKE_ANALYTICS_NAME>>/
                      y=####/
                        m=##/
                          d=##/
                            h=##/
                              m=00/
                                PT1H.json
    

    パス内の ## エントリには、ログが作成された年、月、日、および時間が含まれます。 Data Lake Analytics では 1 時間ごとに 1 つのファイルが作成されるため、 m= には常に 00 の値が含まれます。

    たとえば、監査ログへの完全なパスは次のようになります。

    https://adllogs.blob.core.windows.net/insights-logs-audit/resourceId=/SUBSCRIPTIONS/<sub-id>/RESOURCEGROUPS/myresourcegroup/PROVIDERS/MICROSOFT.DATALAKEANALYTICS/ACCOUNTS/mydatalakeanalytics/y=2016/m=07/d=18/h=04/m=00/PT1H.json

    同様に、要求ログへの完全なパスは次のようになります。

    https://adllogs.blob.core.windows.net/insights-logs-requests/resourceId=/SUBSCRIPTIONS/<sub-id>/RESOURCEGROUPS/myresourcegroup/PROVIDERS/MICROSOFT.DATALAKEANALYTICS/ACCOUNTS/mydatalakeanalytics/y=2016/m=07/d=18/h=14/m=00/PT1H.json

ログ データを処理する

Azure Data Lake Analytics には、ログ データを処理および分析する方法のサンプルが用意されています。 サンプルは https://github.com/Azure/AzureDataLake/tree/master/Samples/AzureDiagnosticsSampleにあります。

ログ構造

監査ログと要求ログは、構造化された JSON 形式です。

リクエストログ

JSON 形式の要求ログのサンプル エントリを次に示します。 各 BLOB には、という名前の 1 つのルート オブジェクトがあり、このオブジェクトにはログ オブジェクトの配列を含むレコード が含まれています。

{
"records":
  [
    . . . .
    ,
    {
         "time": "2016-07-07T21:02:53.456Z",
         "resourceId": "/SUBSCRIPTIONS/<subscription_id>/RESOURCEGROUPS/<resource_group_name>/PROVIDERS/MICROSOFT.DATALAKEANALYTICS/ACCOUNTS/<data_lake_analytics_account_name>",
         "category": "Requests",
         "operationName": "GetAggregatedJobHistory",
         "resultType": "200",
         "callerIpAddress": "::ffff:1.1.1.1",
         "correlationId": "4a11c709-05f5-417c-a98d-6e81b3e29c58",
         "identity": "1808bd5f-62af-45f4-89d8-03c5e81bac30",
         "properties": {
             "HttpMethod":"POST",
             "Path":"/JobAggregatedHistory",
             "RequestContentLength":122,
             "ClientRequestId":"3b7adbd9-3519-4f28-a61c-bd89506163b8",
             "StartTime":"2016-07-07T21:02:52.472Z",
             "EndTime":"2016-07-07T21:02:53.456Z"
             }
    }
    ,
    . . . .
  ]
}

要求ログ スキーマ

名前 タイプ 説明
時間 ログのタイムスタンプ (UTC)
リソースID 操作が行われたリソースの識別子
カテゴリ ログのカテゴリ。 Requestsなど。
操作名 ログに記録される操作の名前。 たとえば、GetAggregatedJobHistory です。
結果タイプ 操作の状態 (例: 200)。
発信者IPアドレス 要求を行っているクライアントの IP アドレス
correlationId ログの識別子。 この値を使用して、関連するログ エントリのセットをグループ化できます。
アイデンティティ オブジェクト ログを生成した ID
プロパティ JSON 詳細については、次のセクション (要求ログのプロパティ スキーマ) を参照してください

要求ログのプロパティ スキーマ

名前 タイプ 説明
HttpMethod 操作に使用される HTTP メソッド。 たとえば、GET です。
操作が実行されたパス
リクエストコンテンツ長 整数 (int) HTTP 要求のコンテンツの長さ
ClientRequestId この要求を一意に識別する識別子
開始時間 サーバーが要求を受信した時刻
終了時間 サーバーが応答を送信した時刻

監査ログ

JSON 形式の監査ログのサンプル エントリを次に示します。 各 BLOB には、という名前の 1 つのルート オブジェクトがあり、このオブジェクトにはログ オブジェクトの配列を含むレコード が含まれています。

{
"records":
  [
    {
         "time": "2016-07-28T19:15:16.245Z",
         "resourceId": "/SUBSCRIPTIONS/<subscription_id>/RESOURCEGROUPS/<resource_group_name>/PROVIDERS/MICROSOFT.DATALAKEANALYTICS/ACCOUNTS/<data_lake_ANALYTICS_account_name>",
         "category": "Audit",
         "operationName": "JobSubmitted",
         "identity": "user@somewhere.com",
         "properties": {
             "JobId":"D74B928F-5194-4E6C-971F-C27026C290E6",
             "JobName": "New Job",
             "JobRuntimeName": "default",
             "SubmitTime": "7/28/2016 7:14:57 PM"
             }
    }
  ]
}

監査ログ スキーマ

名前 タイプ 説明
時間 ログのタイムスタンプ (UTC)
リソースID 操作が行われたリソースの識別子
カテゴリ ログ カテゴリ。 たとえば、監査
操作名 ログに記録される操作の名前。 たとえば、JobSubmitted です。
結果タイプ ジョブステータス(operationName)のサブステータス。
結果署名 仕事の状態に関する詳細 (operationName)。
アイデンティティ 操作を要求したユーザー。 たとえば、susan@contoso.com のようにします。
プロパティ JSON 詳細については、次のセクション (監査ログのプロパティ スキーマ) を参照してください

resultTyperesultSignature は、操作の結果に関する情報を提供し、操作が完了した場合にのみ値を含みます。 たとえば、 operationNameJobStarted または JobEnded の値が含まれている場合にのみ値が含 まれます

監査ログのプロパティ スキーマ

名前 タイプ 説明
JobId ジョブに割り当てられた ID
ジョブ名 ジョブに指定された名前
ジョブ実行時間 ジョブの処理に使用されるランタイム
提出時間 ジョブが送信された時刻 (UTC)
開始時間 送信後にジョブの実行が開始された時刻 (UTC)
終了時間 ジョブが終了した時刻
平行性 送信中にこのジョブに要求された Data Lake Analytics ユニットの数

SubmitTimeStartTimeEndTimeParallelism は、操作に関する情報を提供します。 これらのエントリには、その操作が開始または完了した場合にのみ値が含まれます。 たとえば、 SubmitTime には、 operationName の値 JobSubmitted の後にのみ値が含まれます。

次のステップ