使用存储资源日志进行故障排除
Azure 存储资源日志捕获您存储帐户中执行的每项操作及其结果。 这些日志提供关于每个请求的详细信息,而不是像指标那样对操作进行逐分钟总结。 使用日志记录信息,可以检查向存储帐户发出的请求的性质,并确定这些请求是否成功。
在本单元中,你将了解 Azure Monitor 中的 Azure 存储资源日志。 你将看到日志中捕获的不同类型的信息,并了解如何使用此信息检测应用程序使用 Azure 存储时可能发生的问题。
Azure Monitor 中的资源日志
有时,你希望看到有关存储事务的更多详细信息,而不是与性能相关的指标。 指标可用于跟踪性能或需求的总体趋势,但监视事务指标无法显示请求的 URL。 此外,没有可用的存储指标可以报告与特定请求相关的错误消息。
Azure Monitor 中的资源日志捕获此类详细信息,它们可用于检查特定请求背后的详细信息。 例如,如果想要知道特定资源的请求数已经过身份验证或匿名,或者成功或失败,则可以使用这些日志。
若要收集资源日志,必须创建诊断设置。 资源日志列出存储帐户的成功和失败请求。 请求记录为针对特定存储服务的读取、写入或删除操作:Azure Blob 存储、表存储或队列存储。 通过使用诊断设置,可以将日志路由到 Log Analytics、存储帐户,或将其流式传输到事件中心或合作伙伴解决方案。
可以使用资源日志来查看不同类型的请求和请求频率,或排查失败的请求问题。 仅当事务发生且仅针对特定服务终结点时,才会生成日志。 因此,如果在 Blob 存储和队列存储终结点中使用存储,但只有 Blob 存储终结点具有请求或事务,则系统只会为 Blob 存储创建日志。
启用日志记录时,将记录以下类型的请求:
- 经过身份验证的请求。
- 匿名请求。
- 成功的请求。
- 失败的请求。 例如,超时、限制、网络错误和授权错误。
- 服务器错误。
- 使用共享访问签名的请求,包括失败的和成功的。
- 客户端和服务器的超时错误。
- 分析数据的请求。
- 失败的 GET 请求,错误代码为 304(“未修改”)。
在 Azure Monitor 中存储资源日志
资源日志是针对存储帐户自动生成的,但这些日志无法查看,除非将它们发送到目标。 可以使用诊断设置指定将其发送到何处。
创建诊断设置时,可以选择想要路由日志的存储类型。 例如,Blob 存储或文件存储。 然后,你可以选择哪些类型的操作显示在日志中。 例如,读取、写入或删除操作。 最后,选择要发送日志的位置。 可以将日志发送到以下任一位置:
- 日志分析
- 存储帐户
- 事件中心
- 合作伙伴解决方案
可以通过 Azure Monitor 日志查询访问发送到 Log Analytics 工作区的日志。
如果将日志路由到存储帐户,这些日志将以存储到容器中的 blob 形式显示。 数据作为以行分隔的 JSON 有效负载收集并存储在单个 Blob 中。 Blob 的名称遵循以下命名约定:
https://<destination-storage-account>.blob.core.windows.net/insights-logs-<storage-operation>/resourceId=/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<source-storage-account>/blobServices/default/y=<year>/m=<month>/d=<day>/h=<hour>/m=<minute>/PT1H.json
发送到事件中心的日志不存储为文件,但可以验证事件中心是否收到了日志信息。 只需在 Azure 门户中打开事件中心并检查传入消息的计数。
还可以将平台指标和日志发送到某些 Azure Monitor 合作伙伴。 必须先将合作伙伴集成安装到订阅中。 配置选项因合作伙伴而异。
无法为日志数据设置保留策略。 如果将日志发送到 Log Analytics,则可以在工作区级别管理数据保留期,甚至可以按数据类型指定不同的保留设置。 如果将日志存档到存储帐户,可以通过定义生命周期管理策略来管理日志容器的保留策略。