您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn.

访问 Azure Data Lake Analytics 的诊断日志

通过诊断日志记录可以收集数据访问审核线索。 这些日志提供如下信息:

  • 访问数据的用户列表。
  • 数据被访问的频率。
  • 在帐户中存储的数据量。

启用日志记录

  1. 登录到 Azure 门户

  2. 打开 Data Lake Analytics 帐户,并从“监视”部分选择“诊断日志”。 接下来,选择“打开诊断”。

    显示“诊断日志”操作已选定并且突出显示了“启用诊断以收集以下日志”的屏幕截图。

  3. 在“诊断设置”中,输入此日志记录配置的 名称,然后选择日志记录选项。

    打开诊断以收集审核和请求日志

    • 可选择以三种不同的方式存储/处理数据。

      • 选择“存档到存储帐户”以将日志存储到 Azure 存储帐户。 如果想要将数据存档,请使用此选项。 如果选择此选项,必须提供一个 Azure 存储帐户,以将日志保存到其中。

      • 选择“流式传输到事件中心”将日志数据流式传输到 Azure 事件中心。 如果具有用于实时分析传入日志的下游处理管道,请使用此选项。 若选择此选项,必须提供要使用的 Azure 事件中心的详细信息。

      • 选择“发送到 Log Analytics”,将数据发送到 Azure Monitor 服务。 若要使用 Azure Monitor 日志来收集和分析日志,请使用此选项。

    • 指定是要获取审核日志还是请求日志,或者两者。 请求日志捕获每个 API 请求。 审核日志记录由该 API 请求触发的所有操作。

    • 对于“存档到存储帐户”,指定数据将保留的天数。

    • 单击“保存”。

      备注

      单击“保存”按钮之前,必须选择“存档到存储帐户”、“流式传输到事件中心”或“发送到 Log Analytics”。

使用包含日志数据的 Azure 存储帐户

  1. 若要显示用于保存日志记录数据的 blob 容器,请打开 Data Lake Analytics 用于日志记录的 Azure 存储帐户,然后单击“Blob”。

    • 容器 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 每隔一小时创建一个文件,因此 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

日志结构

审核和请求日志采用结构化的 JSON 格式。

请求日志

此处是 JSON 格式的请求日志中的一个示例条目。 每个 Blob 具有一个名为 records 的根对象,该对象包含一组日志对象。

{
"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 字符串 日志时间戳(采用 UTC)
ResourceId 字符串 操作发生所在的资源的标识符
category 字符串 日志类别。 例如,“请求”。
operationName 字符串 被记录的操作的名称。 例如,GetAggregatedJobHistory。
resultType 字符串 操作状态,例如,200。
callerIpAddress 字符串 作出请求的客户端 的IP 地址
correlationId 字符串 日志的标识符。 此值可用于分组相关的日志条目。
identity 对象 生成日志的标识
properties JSON 请参阅下节(请求日志属性架构),了解详细信息

请求日志属性架构

名称 类型 说明
HttpMethod 字符串 用于此操作的 HTTP 方法。 例如 GET。
Path String 操作执行所在的路径
RequestContentLength int HTTP 请求的内容长度
ClientRequestId 字符串 唯一标识此请求的标识符
StartTime 字符串 服务器接收请求的时间
EndTime 字符串 服务器发送响应的时间

审核日志

此处是 JSON 格式的审核日志中的一个示例条目。 每个 Blob 具有一个名为 records 的根对象,该对象包含一组日志对象。

{
"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 字符串 日志时间戳(采用 UTC)
ResourceId 字符串 操作发生所在的资源的标识符
category 字符串 日志类别。 例如,“审核”。
operationName 字符串 被记录的操作的名称。 例如,JobSubmitted。
resultType 字符串 作业状态的字状态 (operationName)。
resultSignature 字符串 作业状态的其他详细信息 (operationName)。
identity 字符串 请求操作的用户。 例如,susan@contoso.com。
properties JSON 请参阅下节(审核日志属性架构),了解详细信息

备注

resultTyperesultSignature 提供操作结果信息,如果某项操作已完成,只包含一个值。 例如,当 operationName 包含 JobStarted 值或 JobEnded 值时,它们只包含一个值。

审核日志属性架构

名称 类型 说明
JobId 字符串 分配给作业的 ID
JobName 字符串 提供给作业的名称
JobRunTime 字符串 用于处理作业的运行时
SubmitTime 字符串 提交作业的时间(采用 UTC)
StartTime 字符串 作业提交后开始运行的时间(采用 UTC)
EndTime 字符串 作业结束时间
并行度 字符串 在提交期间为此作业请求的 Data Lake Analytics 单元数

备注

SubmitTimeStartTimeEndTimeParallelism 提供有关操作的信息。 仅当该操作已启动或已完成时,这些项才包含值。 例如,operationName 含有值 JobSubmitted 后,SubmitTime 将仅包含一个值。

处理日志数据

Azure Data Lake Analytics 提供如何处理和分析日志数据的示例。 可在 https://github.com/Azure/AzureDataLake/tree/master/Samples/AzureDiagnosticsSample 找到示例。

后续步骤

Azure Data Lake Analytics 概述