重要
Azure Data Lake Analytics 于 2024 年 2 月 29 日停用。 了解更多信息,请查看此公告。
对于数据分析,你的组织可以使用 Azure Synapse Analytics 或 Microsoft Fabric。
诊断日志记录允许您收集数据访问的审核日志。 这些日志提供如下信息:
- 访问数据的用户列表。
- 访问数据的频率。
- 帐户中存储的数据量。
启用日志记录
登录到 Azure 门户。
打开 Data Lake Analytics 帐户,然后从“监视”部分选择“诊断设置”。 接下来,选择“ + 添加诊断设置”。
在 “诊断”设置中,输入此日志记录配置的名称,然后选择日志记录选项。
的设置
可以选择以四种不同的方式存储/处理数据。
选择“ 存档到存储帐户 ”,将日志存储在 Azure 存储帐户中。 如果要存档数据,请使用此选项。 如果选择此选项,则必须提供 Azure 存储帐户才能将日志保存到其中。
选择“ 流式传输到事件中心 ”,以将日志数据流式传输到 Azure 事件中心。 如果下游处理管道正在实时分析传入日志,请使用此选项。 如果选择此选项,则必须提供要使用的 Azure 事件中心的详细信息。
选择“ 发送到 Log Analytics”工作区 ,将数据发送到 Azure Monitor 服务。 如果要使用 Azure Monitor 日志收集和分析日志,请使用此选项。
如果要使用我们的合作伙伴集成,请选择发送到合作伙伴解决方案。 有关详细信息,可以 点击此链接。
指定是要获取审核日志还是请求日志,还是同时获取两者。 请求日志捕获每个 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
注释
##
路径中的条目包含创建日志的年份、月、日和小时。 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"
}
}
,
. . . .
]
}
请求日志架构
名字 | 类型 | 说明 |
---|---|---|
时间 | 字符串 | 日志的时间戳(以 UTC 为单位) |
资源ID | 字符串 | 发生操作的资源标识符 |
类别 | 字符串 | 日志类别。 例如,请求。 |
操作名称 | 字符串 | 被记录的操作的名称。 例如,GetAggregatedJobHistory。 |
结果类型 | 字符串 | 操作的状态,例如 200。 |
呼叫者IP地址 | 字符串 | 发出请求的客户端的 IP 地址 |
correlationId | 字符串 | 日志的标识符。 此值可用于对一组相关的日志条目进行分组。 |
身份 | 对象 | 生成日志的主体身份 |
性能 | JSON(JavaScript 对象表示法) | 有关详细信息,请参阅下一部分(请求日志属性架构) |
请求日志属性架构
名字 | 类型 | 说明 |
---|---|---|
HTTP方法 | 字符串 | 用于操作的 HTTP 方法。 例如,GET。 |
路径 | 字符串 | 操作执行的路径 |
请求内容长度 | 整数 (int) | HTTP 请求的内容长度 |
ClientRequestId | 字符串 | 唯一标识此请求的标识符 |
开始时间 | 字符串 | 服务器收到请求的时间 |
结束时间 | 字符串 | 服务器发送响应的时间 |
审核日志
下面是 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"
}
}
]
}
审核日志架构
名字 | 类型 | 说明 |
---|---|---|
时间 | 字符串 | 日志的时间戳(以 UTC 为单位) |
资源ID | 字符串 | 发生操作的资源标识符 |
类别 | 字符串 | 日志类别。 例如,审核。 |
操作名称 | 字符串 | 被记录的操作的名称。 例如,JobSubmitted。 |
resultType | 字符串 | 作业状态(operationName)的子状态。 |
结果签名 | 字符串 | 有关作业状态(operationName)的额外详细信息。 |
身份 | 字符串 | 请求此操作的用户。 例如,susan@contoso.com。 |
性能 | JSON(JavaScript 对象表示法) | 有关详细信息,请参阅下一部分(审核日志属性架构) |
注释
resultType 和 resultSignature 提供关于操作结果的信息,并且仅在操作完成时包含值。 例如,仅当 operationName 包含 JobStarted 或 JobEnded 的值时,它们才包含值。
审核日志属性架构
名字 | 类型 | 说明 |
---|---|---|
JobId | 字符串 | 分配给作业的识别码 |
工作名称 | 字符串 | 为工作提供的名称 |
任务运行时间 | 字符串 | 用于处理作业的运行时 |
提交时间 | 字符串 | 提交作业的时间(UTC) |
开始时间 | 字符串 | 提交后作业开始运行的时间(UTC) |
结束时间 | 字符串 | 作业结束时间 |
并行度 | 字符串 | 提交作业时请求的 Data Lake Analytics 单位数 |
注释
SubmitTime、 StartTime、 EndTime 和 Parallelism 提供有关作的信息。 仅当该作已启动或完成时,这些条目才包含一个值。 例如, SubmitTime 仅在 operationName 具有 JobSubmitted 值后包含一个值。
后续步骤
- Azure Data Lake Analytics 的 概述
- 排查 U-SQL 作业问题