重要
Azure Data Lake Analytics は 2024 年 2 月 29 日に廃止されました。 このお知らせで詳細を学びましょう。
データ分析の場合、組織は Azure Synapse Analytics または Microsoft Fabric を使用できます。
診断ログを使用すると、データ アクセス監査証跡を収集できます。 これらのログは、次のような情報を提供します。
- データにアクセスしたユーザーの一覧。
- データにアクセスする頻度。
- アカウントに格納されているデータの量。
ログ記録を有効にする
Azure Portal にサインオンします。
Data Lake Analytics アカウントを開き、[監視] セクションから [診断設定] を選択します。 次に、[ + 診断設定の追加] を選択します。
[診断] 設定で、このログ構成の名前を入力し、ログ オプションを選択します。
データの格納/処理は、4 つの異なる方法で選択できます。
Azure ストレージ アカウントにログを 格納するには、ストレージ アカウントへのアーカイブを選択します。 データをアーカイブする場合は、このオプションを使用します。 このオプションを選択した場合は、ログを保存する Azure ストレージ アカウントを指定する必要があります。
[ イベント ハブへのストリーム] を選択して、ログ データを Azure Event Hubs にストリーミングします。 受信ログをリアルタイムで分析するダウンストリーム処理パイプラインがある場合は、このオプションを使用します。 このオプションを選択する場合は、使用する Azure Event Hubs の詳細を指定する必要があります。
[ Log Analytics ワークスペースに送信 ] を選択して、Azure Monitor サービスにデータを送信します。 Azure Monitor ログを使用してログを収集および分析する場合は、このオプションを使用します。
パートナー統合を使用する場合は、[ パートナー ソリューションに送信 ] を選択します。 詳細については、 このリンクをクリックしてください。
監査ログを取得するか、要求ログを取得するか、またはその両方を取得するかを指定します。 要求ログは、すべての API 要求をキャプチャします。 監査ログには、その API 要求によってトリガーされるすべての操作が記録されます。
ストレージ アカウントへのアーカイブの場合は、データを保持する日数を指定します。
[保存] を選択します。
注
[保存] ボタンを選択する前に、ストレージ アカウントへのアーカイブ、イベント ハブへのストリーム配信、Log Analytics ワークスペースへの送信、またはパートナー ソリューションへの送信のいずれかを選択する必要があります。
ログ データを含む Azure Storage アカウントを使用する
ログ データを保持する BLOB コンテナーを表示するには、Data Lake Analytics でログ記録に使用される Azure Storage アカウントを開き、[コンテナー] を選択 します。
- コンテナー insights-logs-audit には監査ログが含まれています。
- コンテナー insights-logs-requests 要求ログが含まれています。
コンテナー内では、ログは次のファイル構造の下に格納されます。
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 | 詳細については、次のセクション (監査ログのプロパティ スキーマ) を参照してください |
注
resultType と resultSignature は、操作の結果に関する情報を提供し、操作が完了した場合にのみ値を含みます。 たとえば、 operationName に JobStarted または JobEnded の値が含まれている場合にのみ値が含 まれます。
監査ログのプロパティ スキーマ
名前 | タイプ | 説明 |
---|---|---|
JobId | 糸 | ジョブに割り当てられた ID |
ジョブ名 | 糸 | ジョブに指定された名前 |
ジョブ実行時間 | 糸 | ジョブの処理に使用されるランタイム |
提出時間 | 糸 | ジョブが送信された時刻 (UTC) |
開始時間 | 糸 | 送信後にジョブの実行が開始された時刻 (UTC) |
終了時間 | 糸 | ジョブが終了した時刻 |
平行性 | 糸 | 送信中にこのジョブに要求された Data Lake Analytics ユニットの数 |
注
SubmitTime、 StartTime、 EndTime、 Parallelism は、操作に関する情報を提供します。 これらのエントリには、その操作が開始または完了した場合にのみ値が含まれます。 たとえば、 SubmitTime には、 operationName の値 JobSubmitted の後にのみ値が含まれます。