存取 Azure Data Lake Analytics 的診斷記錄

重要

Azure Data Lake Analytics 於 2024 年 2 月 29 日淘汰。 透過此公告深入瞭解。

針對數據分析,您的組織可以使用 Azure Synapse AnalyticsMicrosoft Fabric

診斷記錄可讓您收集資料存取稽核線索。 這些記錄可提供如下資訊︰

  • 資料的存取使用者清單。
  • 資料的存取頻率。
  • 帳戶中儲存的資料量。

啟用記錄

  1. 登入 Azure 入口網站

  2. 開啟 Data Lake Analytics 帳戶,然後從 [監視] 區段選取 [診斷設定]。 接著,選取 [+ 新增診斷設定]。

    此螢幕擷取畫面顯示選取的「診斷設定」動作,並醒目顯示「+ 新增診斷設定」。

  3. 從 [診斷設定],輸入此記錄設定的名稱,然後選取記錄選項。

    此螢幕擷取畫面顯示開啟診斷收集稽核和要求記錄的設定

    • 您可以選擇四種不同的方式儲存/處理資料。

      • 選取 [封存至儲存體帳戶] 可將記錄儲存到 Azure 儲存體帳戶。 如果您想要封存資料,請使用此選項。 如果您選取此選項,必須提供用來儲存記錄的 Azure 儲存體帳戶。

      • 選取事件中樞 Stream,將記錄數據串流至 Azure 事件中樞。 如果您有即時分析內送記錄的下游處理管線,請使用此選項。 如果您選取此選項,您必須提供您想要使用之 Azure 事件中樞 的詳細資料。

      • 選取 [傳送至 Log Analytics 工作區],以傳送資料至 Azure 監視器服務。 如果您要使用 Azure 監視器記錄收集並分析記錄,請使用此選項。

      • 如果您要使用我們的夥伴整合,請選取 [傳送至夥伴解決方案]。 如需詳細資訊,您可以點擊此連結

    • 指定要取得稽核記錄、要求記錄或兩者。 要求記錄會擷取每個應用程式開發介面 (API) 的要求。 稽核記錄則會記錄該 API 要求觸發的所有作業。

    • 針對 [封存至儲存體帳戶],請指定要保留資料的天數。

    • 選取 [儲存]。

      注意

      選取儲存按鈕前,請先選取 [封存至儲存體帳戶]、[串流至事件中樞]、[傳送至 Log Analytics 工作區] 或 [傳送至夥伴解決方案]。

使用包含記錄資料的 Azure 儲存體帳戶

  1. 若要顯示存放記錄資料的 blob 容器,請開啟用於 Data Lake Analytics 記錄的 Azure 儲存體帳戶,然後選取 [容器]。

    • 容器 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
    

    注意

    [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 請參閱下一節 (稽核記錄檔屬性結構描述) 以取得詳細資訊

注意

resultTyperesultSignature 會提供作業結果的相關資訊,並且只會在作業完成時才包含值。 例如,只有當 operationName 包含 JobStartedJobEnded 的值時,它們才會包含值。

稽核記錄屬性結構描述

名稱 類型 描述
JobId String 指派給作業的識別碼
JobName String 為作業提供的名稱
JobRunTime String 用來處理作業的執行階段
SubmitTime String 作業提交時間 (UTC 格式)
StartTime String 作業在提交後開始執行的時間 (UTC 格式)
EndTime String 作業結束時間
平行處理原則 String 在提交期間為此作業要求的 Data Lake Analytics 單位數目

注意

SubmitTimeStartTimeEndTimeParallelism 提供作業的相關資訊。 這些項目只會在作業啟動或完成時才包含值。 例如,SubmitTime 只會在 operationName 具有 JobSubmitted 值之後包含值。

下一步