存取 Azure Data Lake Analytics 的診斷記錄
重要
Azure Data Lake Analytics 於 2024 年 2 月 29 日淘汰。 透過此公告深入瞭解。
針對數據分析,您的組織可以使用 Azure Synapse Analytics 或 Microsoft Fabric。
診斷記錄可讓您收集資料存取稽核線索。 這些記錄可提供如下資訊︰
- 資料的存取使用者清單。
- 資料的存取頻率。
- 帳戶中儲存的資料量。
啟用記錄
登入 Azure 入口網站。
開啟 Data Lake Analytics 帳戶,然後從 [監視] 區段選取 [診斷設定]。 接著,選取 [+ 新增診斷設定]。
從 [診斷設定],輸入此記錄設定的名稱,然後選取記錄選項。
您可以選擇四種不同的方式儲存/處理資料。
選取 [封存至儲存體帳戶] 可將記錄儲存到 Azure 儲存體帳戶。 如果您想要封存資料,請使用此選項。 如果您選取此選項,必須提供用來儲存記錄的 Azure 儲存體帳戶。
選取事件中樞 Stream,將記錄數據串流至 Azure 事件中樞。 如果您有即時分析內送記錄的下游處理管線,請使用此選項。 如果您選取此選項,您必須提供您想要使用之 Azure 事件中樞 的詳細資料。
選取 [傳送至 Log Analytics 工作區],以傳送資料至 Azure 監視器服務。 如果您要使用 Azure 監視器記錄收集並分析記錄,請使用此選項。
如果您要使用我們的夥伴整合,請選取 [傳送至夥伴解決方案]。 如需詳細資訊,您可以點擊此連結。
指定要取得稽核記錄、要求記錄或兩者。 要求記錄會擷取每個應用程式開發介面 (API) 的要求。 稽核記錄則會記錄該 API 要求觸發的所有作業。
針對 [封存至儲存體帳戶],請指定要保留資料的天數。
選取 [儲存]。
注意
選取儲存按鈕前,請先選取 [封存至儲存體帳戶]、[串流至事件中樞]、[傳送至 Log Analytics 工作區] 或 [傳送至夥伴解決方案]。
使用包含記錄資料的 Azure 儲存體帳戶
若要顯示存放記錄資料的 blob 容器,請開啟用於 Data Lake Analytics 記錄的 Azure 儲存體帳戶,然後選取 [容器]。
- 容器 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
注意
[Blob 服務]
##
項目包含記錄檔的建立年、月、日和小時。 Data Lake Analytics 每小時會建立一個檔案,因此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 會一個名為 記錄 的根物件,其中包含記錄檔物件的陣列。
{
"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"
}
}
,
. . . .
]
}
要求記錄的結構描述
名稱 | 類型 | 描述 |
---|---|---|
time | String | 記錄的時間戳記 (UTC 時間) |
resourceId | String | 執行作業所在資源的識別碼 |
category | String | 記錄類別。 例如, 要求。 |
operationName | String | 記錄的作業名稱。 例如,GetAggregatedJobHistory。 |
resultType | String | 作業的狀態。例如,200。 |
callerIpAddress | String | 提出要求之用戶端的 IP 位址 |
correlationId | String | 角色的識別碼。 此值可用來群組一組相關的記錄項目。 |
身分識別 | Object | 產生記錄的身分識別 |
properties | JSON | 請參閱下一節 (要求記錄檔屬性結構描述) 以取得詳細資訊 |
要求記錄屬性結構描述
名稱 | 類型 | 描述 |
---|---|---|
HttpMethod | String | 作業使用的 HTTP 方法。 例如,GET。 |
路徑 | String | 執行作業的所在路徑 |
RequestContentLength | int | HTTP 要求的內容長度 |
ClientRequestId | String | 可唯一識別此要求的識別碼 |
StartTime | String | 伺服器收到要求的時間 |
EndTime | String | 伺服器傳送回應的時間 |
稽核記錄
以下是採用 JSON 格式之稽核記錄中的範例項目。 每個 Blob 會一個名為 記錄 的根物件,其中包含記錄檔物件的陣列。
{
"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"
}
}
]
}
稽核記錄檔結構描述
名稱 | 類型 | 描述 |
---|---|---|
time | String | 記錄的時間戳記 (UTC 時間) |
resourceId | String | 執行作業所在資源的識別碼 |
category | String | 記錄類別。 例如, 稽核。 |
operationName | String | 記錄的作業名稱。 例如,JobSubmitted。 |
resultType | String | 作業狀態 (operationName) 的子狀態。 |
resultSignature | String | 作業狀態的額外詳細數據 (operationName) 。 |
身分識別 | String | 要求作業的使用者。 例如: susan@contoso.com 。 |
properties | JSON | 請參閱下一節 (稽核記錄檔屬性結構描述) 以取得詳細資訊 |
注意
resultType 和 resultSignature 會提供作業結果的相關資訊,並且只會在作業完成時才包含值。 例如,只有當 operationName 包含 JobStarted 或 JobEnded 的值時,它們才會包含值。
稽核記錄屬性結構描述
名稱 | 類型 | 描述 |
---|---|---|
JobId | String | 指派給作業的識別碼 |
JobName | String | 為作業提供的名稱 |
JobRunTime | String | 用來處理作業的執行階段 |
SubmitTime | String | 作業提交時間 (UTC 格式) |
StartTime | String | 作業在提交後開始執行的時間 (UTC 格式) |
EndTime | String | 作業結束時間 |
平行處理原則 | String | 在提交期間為此作業要求的 Data Lake Analytics 單位數目 |
注意
SubmitTime、StartTime、EndTime 和 Parallelism 提供作業的相關資訊。 這些項目只會在作業啟動或完成時才包含值。 例如,SubmitTime 只會在 operationName 具有 JobSubmitted 值之後包含值。