你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

监视 Azure 文件存储

如果你有依赖 Azure 资源的关键应用程序和业务流程,则需要监视这些资源的可用性、性能和操作。 本文介绍 Azure 文件存储生成的监视数据,以及如何使用 Azure Monitor 的各种功能分析这些数据的相关警报。

适用于

文件共享类型 SMB NFS
标准文件共享 (GPv2)、LRS/ZRS 是 否
标准文件共享 (GPv2)、GRS/GZRS 是 否
高级文件共享 (FileStorage)、LRS/ZRS 是 是

Monitor 概述

每种 Azure 文件存储资源的 Azure 门户“概述”页都包含资源使用情况(例如请求和每小时计费)的简要视图。 这些信息非常有用,但只提供少量监视数据。 创建资源后,其中的某些数据会自动收集,并可供分析。 你可以使用某些配置启用其他数据收集类型。

说明是 Azure Monitor?

Azure 文件存储使用 Azure Monitor 来创建监视数据,Azure Monitor 是 Azure 中的一项完整堆栈监视服务。 Azure Monitor 提供了一整套用于监视 Azure 资源以及其他云和本地资源的功能。

可先阅读文章使用 Azure Monitor 监视 Azure 资源,其中介绍了以下内容:

  • 说明是 Azure Monitor?
  • 与监视相关的成本
  • 监视 Azure 中收集的数据
  • 配置数据收集
  • Azure 中用于分析监视数据并就其发出警报的标准工具

本文中的以下各部分将介绍从 Azure 文件存储收集的特定数据。 其中的示例演示了如何配置数据收集并通过 Azure 工具分析这些数据。

监视数据

Azure 文件存储会收集与其他 Azure 资源类型相同的监视数据,如监视 Azure 资源中的数据中所述。

有关 Azure 文件存储创建的指标和日志指标的详细信息,请参阅 Azure 文件存储监视数据参考

Azure Monitor 中的指标和日志仅支持 Azure 资源管理器存储帐户。 Azure Monitor 不支持经典存储帐户。 如果要使用经典存储帐户上的指标或日志,则需要迁移到 Azure 资源管理器存储帐户。 请参阅迁移到 Azure 资源管理器

收集和路由

平台指标和活动日志会自动收集,但你可以使用诊断设置将其路由到其他位置。

要收集资源日志,必须创建诊断设置。 创建设置时,选择“文件”作为要为其启用日志的存储类型。 然后,指定需要收集日志的以下操作类别之一。

类别 说明
StorageRead 对象上的读取操作。
StorageWrite 对象上的写入操作。
StorageDelete 对象上的删除操作。

若要获取记录的 SMB 和 REST 操作列表,请参阅存储记录的操作和状态消息Azure 文件存储监视数据参考

有关使用 Azure 门户、CLI 和 PowerShell 创建诊断设置的详细过程,请参阅创建诊断设置以收集 Azure 中的平台日志和指标。 还可以找到有关如何使用 Azure 资源管理器模板或 Azure Policy 定义来创建诊断设置的信息的链接。

目标限制

有关一般目标限制,请参阅目标限制。 以下限制仅适用于监视 Azure 存储帐户。

  • 无法将日志发送到使用此设置监视的同一存储帐户。

    这将导致出现递归日志,其中某个日志条目描述的是另一个日志条目的写入。 必须创建帐户或使用其他现有帐户来存储日志信息。

  • 不能设置保留策略。

    如果将日志存档到存储帐户,可以通过定义生命周期管理策略来管理日志容器的保留策略。 要了解如何操作,请参阅通过自动执行 Azure Blob 存储访问层来优化成本

    如果将日志发送到 Log Analytics,可以在工作区级别管理 Log Analytics 的数据保留期,甚至可以按数据类型指定不同的保留设置。 若要了解如何操作,请参阅更改数据保留期

分析指标

有关所有 Azure Monitor 支持指标(包括 Azure 文件存储)的列表,请参阅 Azure Monitor 支持的指标

你可以使用指标资源管理器通过其他 Azure 服务中的指标分析 Azure 存储的指标。 从 Azure Monitor 菜单中选择“指标”,可打开指标资源管理器 。 有关使用此工具的详细信息,请参阅 Azure 指标资源管理器入门

对于支持维度的指标,可使用所需的维度值筛选指标。 有关 Azure 存储支持的维度的完整列表,请参阅指标维度。 Azure 文件存储的指标位于以下命名空间:

  • Microsoft.Storage/storageAccounts
  • Microsoft.Storage/storageAccounts/fileServices

分析日志

你可以将资源日志作为存储帐户中的 blob 以及事件数据进行访问,也可以通过 Log Analytics 查询访问资源日志。 有关如何查找这些日志的信息,请参阅 Azure 资源日志

Azure Monitor 中的所有资源日志都具有后跟服务特定字段的相同字段。 Azure Monitor 资源日志架构概述了常见架构。 Azure 文件存储资源日志的架构位于监视数据引用的 Azure 文件存储中。

若要获取记录的 SMB 和 REST 操作列表,请参阅存储记录的操作和状态消息

仅在针对服务终结点发出请求时才会创建日志条目。 例如,如果存储帐户的文件终结点中存在活动,而表或队列终结点中没有该活动,则仅创建与 Azure 文件存储服务有关的日志。 Azure 存储日志包含有关成功和失败的存储服务请求的详细信息。 可以使用该信息监视各个请求和诊断存储服务问题。 将最大程度地记录请求。

活动日志是位于 Azure 中的一种平台日志,可用于深入了解订阅级别的事件。 你可以单独查看它或将它路由到 Azure Monitor 日志,然后便可以在其中使用 Log Analytics 执行复杂得多的查询。

记录经过身份验证的请求

将记录以下类型的经过身份验证的请求:

  • 成功的请求
  • 失败的请求,包括超时、限制、网络、授权和其他错误
  • 使用 Kerberos、NTLM 或共享访问签名 (SAS) 的请求,包括失败和成功的请求
  • 对分析数据($logs 容器中的经典日志数据和 $metric 表中的经典指标数据)的请求

不会记录 Azure 文件存储服务本身发出的请求,如创建或删除日志。 有关记录的 SMB 和 REST 请求的完整列表,请参阅存储记录的操作和状态消息Azure 文件存储监视数据参考

示例 Kusto 查询

如果将日志发送到 Log Analytics,则可以使用 Azure Monitor 日志查询访问这些日志。 有关详细信息,请参阅 Log Analytics 教程

你可以在“日志搜索”栏中输入下面这些查询,以帮助监视 Azure 文件存储。 这些查询使用新语言

重要

从存储帐户资源组菜单中选择“日志”时,会打开 Log Analytics 并将查询范围设置为当前资源组。 这意味着日志查询只包含来自该资源组的数据。 如果要运行的查询包含来自他资源或其他 Azure 服务的数据,请从“Azure Monitor”菜单中选择“日志”。 有关详细信息,请参阅 Azure Monitor Log Analytics 中的日志查询范围和时间范围

使用以下查询可帮助你监视 Azure 文件共享:

  • 查看过去一周的 SMB 错误
StorageFileLogs
| where Protocol == "SMB" and TimeGenerated >= ago(7d) and StatusCode contains "-"
| sort by StatusCode
  • 创建过去一周内的 SMB 操作的饼图
StorageFileLogs
| where Protocol == "SMB" and TimeGenerated >= ago(7d) 
| summarize count() by OperationName
| sort by count_ desc
| render piechart
  • 查看过去一周的 REST 错误
StorageFileLogs
| where Protocol == "HTTPS" and TimeGenerated >= ago(7d) and StatusText !contains "Success"
| sort by StatusText asc
  • 创建过去一周内的 REST 操作的饼图
StorageFileLogs
| where Protocol == "HTTPS" and TimeGenerated >= ago(7d) 
| summarize count() by OperationName
| sort by count_ desc
| render piechart

若要查看 Azure 文件存储的列名和说明列表,请参阅 StorageFileLogs

有关如何编写查询的详细信息,请参阅 Log Analytics 教程

警报

在监视数据中发现重要情况时,Azure Monitor 警报会主动通知你。 有了警报,你就可以在客户注意到你的系统中的问题之前确定和解决它们。 可以在指标日志活动日志上设置警报。

下表列出了一些要监视的示例场景和用于警报的适当指标:

场景 用于警报的指标
文件共享受到限制。 指标:Transactions
维度名称:响应类型
维度名称:FileShare(仅限高级文件共享)
文件共享大小为容量的 80%。 指标:文件容量
维度名称:FileShare(仅限高级文件共享)
一天内的文件共享流出量已超过 500 GiB。 指标:流出量
维度名称:FileShare(仅限高级文件共享)

如何为 Azure 文件存储创建警报

  1. 在 Azure 门户 中转到自己的存储帐户。

  2. 单击“警报”,然后单击“+ 新建警报规则”。

  3. 单击“编辑资源”,选择“文件资源类型”,然后单击“完成”。

  4. 单击“添加条件”,并为警报提供以下信息:

    • 指标
    • 维度名称
    • 警报逻辑
  5. 单击“添加操作组”,通过选择现有操作组或创建新的操作组,将一个操作组(电子邮件、短信等)添加到警报中。

  6. 填写警报详细信息,例如警报规则名称说明严重性

  7. 单击“创建警报规则”以创建警报。

注意

如果创建了警报,但警报导致过多的干扰,请调整阈值和警报逻辑。

如何创建文件共享受到限制时的警报

  1. 在 Azure 门户 中转到自己的存储帐户。

  2. 在“监视”部分中单击“警报”,然后单击“+ 新建警报规则”。

  3. 单击“编辑资源”,为存储帐户选择“文件资源类型”,然后单击“完成”。 例如,如果存储帐户名称为 contoso,请选择 contoso/file 资源。

  4. 单击“选择条件”以添加条件。

  5. 你将看到存储帐户支持的信号列表,请选择“事务”指标。

  6. 在“配置信号逻辑”边栏选项卡上,单击“维度名称”下拉列表,然后选择“响应类型”。

  7. 单击“维度值”下拉列表,然后为你的文件共享选择适当的响应类型。

    对于标准文件共享,请选择以下响应类型:

    • SuccessWithShareIopsThrottling
    • SuccessWithThrottling
    • ClientShareIopsThrottlingError

    对于高级文件共享,请选择以下响应类型:

    • SuccessWithShareEgressThrottling
    • SuccessWithShareIngressThrottling
    • SuccessWithShareIopsThrottling
    • ClientShareEgressThrottlingError
    • ClientShareIngressThrottlingError
    • ClientShareIopsThrottlingError

    注意

    如果“维度值”下拉列表中未列出响应类型,这意味着资源未被限制。 若要添加维度值,请在“维度值”下拉列表旁边选择“添加自定义值”,输入响应类型类型(例如 SuccessWithThrottling),选择“确定”,然后重复上述步骤,为你的文件共享添加所有适用的响应类型。

  8. 对于“高级文件共享”,请单击“维度名称”下拉列表,然后选择“文件共享”。 对于“标准文件共享”,请跳到“步骤 #10”。

    注意

    如果文件共享是标准文件共享,则“File Share”维度不会列出文件共享,因为每个共享指标对标准文件共享不可用。 如果存储帐户中的任何文件共享受到限制,则会触发标准文件共享的限制警报,并且警报不会识别哪个文件共享受到限制。 因为每共享指标不可用于标准文件共享,所以建议为每个存储帐户使用一个文件共享。

  9. 单击“维度值”下拉列表,并选择要对其发出警报的文件共享。

  10. 定义“警报参数”(阈值、运算符、聚合粒度和评估频率),然后单击“完成”。

    提示

    如果你使用的是静态阈值,并且文件共享当前受到限制,则可通过指标图表来确定合理的阈值。 如果使用的是动态阈值,则指标图表将显示基于最新数据计算出的阈值。

  11. 单击“添加操作组”,通过选择现有操作组或创建新的操作组,将一个操作组(电子邮件、短信等)添加到警报中。

  12. 填写警报详细信息,例如警报规则名称说明严重性

  13. 单击“创建警报规则”以创建警报。

如何在 Azure 文件共享大小为容量的 80% 时创建警报

  1. 在 Azure 门户 中转到自己的存储帐户。

  2. 在“监视”部分中单击“警报”,然后单击“+ 新建警报规则”。

  3. 单击“编辑资源”,为存储帐户选择“文件资源类型”,然后单击“完成”。 例如,如果存储帐户名称为 contoso,请选择 contoso/file 资源。

  4. 单击“选择条件”以添加条件。

  5. 你将看到存储帐户支持的信号列表,请选择“文件容量”指标。

  6. 对于“高级文件共享”,请单击“维度名称”下拉列表,然后选择“文件共享”。 对于“标准文件共享”,请跳到“步骤 #8”。

    注意

    如果文件共享是标准文件共享,则“File Share”维度不会列出文件共享,因为每个共享指标对标准文件共享不可用。 标准文件共享的警报基于存储帐户中的所有文件共享。 因为每共享指标不可用于标准文件共享,所以建议为每个存储帐户使用一个文件共享。

  7. 单击“维度值”下拉列表,并选择要对其发出警报的文件共享。

  8. 输入“阈值”(以字节为单位)。 例如,如果文件共享大小为 100 TiB,并且你希望在文件共享大小为容量的 80% 时收到警报,则阈值(以字节为单位)为 87960930222080。

  9. 定义其余的“警报参数”(聚合粒度和评估频率),然后单击“完成”。

  10. 单击“添加操作组”,通过选择现有操作组或创建新的操作组,将一个操作组(电子邮件、短信等)添加到警报中。

  11. 填写警报详细信息,例如警报规则名称说明严重性

  12. 单击“创建警报规则”以创建警报。

如何在 Azure 文件共享流出量在一天内超过 500 GiB 时创建警报

  1. 在 Azure 门户 中转到自己的存储帐户。

  2. 在“监视”部分中单击“警报”,然后单击“+ 新建警报规则”。

  3. 单击“编辑资源”,为存储帐户选择“文件资源类型”,然后单击“完成”。 例如,如果存储帐户名称为“contoso”,则选择“contoso/文件”资源。

  4. 单击“选择条件”以添加条件。

  5. 你将看到存储帐户支持的信号列表,请选择“流出量”指标。

  6. 对于“高级文件共享”,请单击“维度名称”下拉列表,然后选择“文件共享”。 对于“标准文件共享”,请跳到“步骤 #8”。

    注意

    如果文件共享是标准文件共享,则“File Share”维度不会列出文件共享,因为每个共享指标对标准文件共享不可用。 标准文件共享的警报基于存储帐户中的所有文件共享。 因为每共享指标不可用于标准文件共享,所以建议为每个存储帐户使用一个文件共享。

  7. 单击“维度值”下拉列表,并选择要对其发出警报的文件共享。

  8. 为“阈值”输入 536870912000 个字节。

  9. 单击“聚合粒度”下拉列表,然后选择“24 小时”。

  10. 选择“评估频率”,并单击“完成”。

  11. 单击“添加操作组”,通过选择现有操作组或创建新的操作组,将一个操作组(电子邮件、短信等)添加到警报中。

  12. 填写警报详细信息,例如警报规则名称说明严重性

  13. 单击“创建警报规则”以创建警报。

后续步骤