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

Azure Monitor 中的诊断设置

本文详细介绍如何创建和配置诊断设置,以将 Azure 平台指标和日志发送到不同目标。

默认情况下,平台指标会自动发送到 Azure Monitor 指标,无需配置。

平台日志提供 Azure 资源及其所依赖的 Azure 平台的详细诊断和审核信息:

  • 在资源日志路由到目标之前,不会收集它们。
  • 活动日志单独存在,但也可路由到其他位置。

每个 Azure 资源都需有自身的诊断设置,其设置定义了以下条件:

  • :要发送到设置中定义的目标的指标和日志数据的类型。 可用类型因资源类型而异。
  • 目标:要发送到的一个或多个目标。

一个诊断设置只能为每个目标定义一种类型。 若要将数据发送到多个特定的目标类型(例如,两个不同的 Log Analytics 工作区),请创建多个设置。 每个资源最多可以有五个诊断设置。

警告

如果需要删除资源,应首先删除其诊断设置。 否则,如果重新创建此资源,则已删除资源的诊断设置可能包含在新资源中,具体取决于每个资源的资源配置。 如果诊断设置包含在新资源中,则会恢复诊断设置中定义的资源日志收集,并将适用的指标和日志数据发送到先前配置的目标。

此外,为了保持环境整洁,最好删除将要删除且不打算再次使用的资源的诊断设置。

以下视频演示如何通过诊断设置来路由资源平台日志。 该视频是以前制作的。 请注意以下更改:

  • 现在有 4 个目标。 你可以将平台指标和日志发送给某些 Azure Monitor 合作伙伴。
  • 2021 年 11 月引入了一项称为类别组的新功能。

本文介绍了有关这些新功能的信息。

下面是源选项。

指标

“AllMetrics”设置将资源的平台指标路由到其他目标。 并非所有资源提供程序都提供此选项。

资源日志

使用日志时,可选择要单独路由的日志类别或选择类别组。

注意

类别组不会应用于指标。 并非所有资源都有可用的类别组。

你可以使用“类别组”基于预定义的分组动态收集资源日志,而不是选择单个日志类别。 Microsoft 定义分组以帮助监视所有 Azure 服务中的特定用例。

随着时间的推移,该组中的类别可能会随着新日志的推出或评估更改而更新。 在类别组中添加或删除日志类别时,会自动修改日志集合,而无需更新诊断设置。

使用类别组时,将:

  • 不能再根据单个类别类型单独选择资源日志。
  • 不能再将保留设置应用于发送到 Azure 存储的日志。

目前,设有两个类别组:

  • 全部:资源提供的所有资源日志。
  • 审核:记录客户与数据或服务设置交互的所有资源日志。 请注意,审核日志是每个资源提供者提供最相关的审核数据的一种尝试,但从审核标准的角度来看可能并不充分。

活动日志

请参阅活动日志设置部分。

Destinations

平台日志和指标可以发送到下表中列出的目标。

为了确保传输中数据的安全性,强烈建议配置传输层安全性 (TLS)。 所有目标终结点都支持 TLS 1.2。

目标 说明
Log Analytics 工作区 指标将转换为日志窗体。 此选项不一定适用于所有资源类型。 通过将它们发送到 Azure Monitor 日志存储(可通过 Log Analytics 进行搜索),可将其与现有的日志数据集成到查询、警报和可视化效果中。
Azure 存储帐户 将日志和指标存档到 Azure 存储帐户有助于审核、静态分析或备份。 与使用 Azure Monitor 日志或 Log Analytics 工作区相比,Azure 存储成本较低,并且日志可以无限期保留。
Azure 事件中心 向事件中心发送日志和指标时,可将数据流式传输到外部系统,例如第三方 SIEM 和其他 Log Analytics 解决方案。
Azure 监视器合作伙伴集成 可以在 Azure Monitor 和其他非 Microsoft 监视平台之间实现专用集成。 在已使用某个合作伙伴时集成非常有用。

活动日志设置

虽然活动日志使用诊断设置,但它具有自己的用户界面,因为它适用于整个订阅而非单个资源。 下面列出的目标信息仍然适用。 有关详细信息,请参阅 Azure 活动日志

要求和限制

本部分介绍要求和限制。

遥测到达目标之前的时间

设置诊断设置后,数据应在 90 分钟内开始流向所选目标。 如果你在 24 小时内没有收到任何信息,则

  • 要么没有生成日志,要么
  • 底层路由机制出现问题。 请尝试禁用配置,然后重新启用它。 如果仍出现此问题,请通过 Azure 门户联系 Azure 支持。

用作源的指标

导出指标存在某些限制:

  • 当前不支持通过诊断设置发送多维指标:多维指标作为平展一维指标导出,并跨维度值聚合。 例如,可以在每个节点级别浏览区块链上的“IOReadBytes”指标并为其绘制图表。 但是,通过诊断设置导出时,导出的指标会显示所有节点的所有读取字节。
  • 并非所有指标都可通过诊断设置导出:由于内部限制,并非所有指标都可导出到 Azure Monitor 日志或 Log Analytics。 有关详细信息,请参阅支持的指标列表中的“可导出”列。

若要绕过特定指标的这些限制,可以使用指标 REST API 手动提取指标。 然后,可以使用 Azure Monitor 数据收集器 API 将其导入 Azure Monitor 日志。

目标限制

在创建诊断设置之前,必须已创建诊断设置的任何目标。 只要配置设置的用户同时拥有两个订阅的相应 Azure 基于角色的访问控制访问权限,目标就不必位于发送日志的资源所在的订阅中。 使用 Azure Lighthouse,还可以将诊断设置发送到另一个 Azure Active Directory 租户中的工作区、存储帐户或事件中心。

下表提供了每个目标的独特要求,包括任何区域限制。

目标 要求
Log Analytics 工作区 此工作区无需与要监视的资源在同一区域。
存储帐户 请勿使用其中存储了其他非监视数据的现有存储帐户,以便更好地控制数据访问权限。 如果要将活动日志和资源日志一同存档,则可以选择使用该存储帐户在一个中心位置保留所有监视数据。

若要将数据发送到不可变存储,请按照为 Azure Blob 存储设置和管理不可变策略中所述为存储帐户设置不可变策略。 必须遵循此链接文章中的所有步骤,包括启用受保护的追加 Blob 写入。

如果资源是区域性的,则存储帐户需要与要监视的资源位于同一区域中。

启用虚拟网络时,诊断设置无法访问存储帐户。 必须在存储帐户中启用“允许受信任的 Microsoft 服务”来此防火墙设置,以便授予 Azure Monitor 诊断设置服务访问存储帐户的权限。

Azure DNS 区域终结点(预览版)Azure Premium LRS(本地冗余存储)存储帐户不支持作为日志或指标目标。
事件中心 命名空间的共享访问策略定义流式处理机制具有的权限。 流式传输到事件中心需要“管理”、“发送”和“侦听”权限。 若要更新诊断设置,使之包括流式传输,则必须在事件中心授权规则中拥有 ListKey 权限。

如果资源是区域性的,则事件中心命名空间需要与要监视的资源位于同一区域中。

启用虚拟网络时,诊断设置无法访问事件中心资源。 必须启用事件中心的“允许受信任的 Microsoft 服务”绕过此防火墙设置,以便授予 Azure Monitor 诊断设置服务访问事件中心资源的权限。
合作伙伴集成 解决方案因合作伙伴而异。 有关详细信息,请查看 Azure Monitor 合作伙伴集成文档

控制成本

在 Log Analytics 工作区中收集数据需要付费,因此你应当仅为每项服务收集你需要的类别。 资源日志的数据量因服务而异,差别明显。

你可能也不想从 Azure 资源收集平台指标,因为此数据已在指标中收集。 仅当你需要工作区中的指标数据以使用日志查询进行更复杂的分析时,才将诊断数据配置为收集指标。

诊断设置不允许对资源日志进行精细筛选。 你可能需要特定类别中的某些日志,而不需要其他日志。 或者,你可能想要从数据中删除不需要的列。 在这些情况下,请在工作区中使用转换来筛选不需要的日志。

还可以通过删除不包含有用信息的列来使用转换,以降低所需记录的存储要求。 例如,资源日志中可能有需要发出警报的错误事件。 但是,你可能不需要记录中包含大量数据的某些列。 可为该表创建一个移除这些列的转换。

提示

有关降低 Azure Monitor 成本的策略,请参阅成本优化和 Azure Monitor

创建诊断设置

可以使用多种方法创建和编辑诊断设置。

可以在 Azure 门户中通过“Azure Monitor”菜单或资源菜单配置诊断设置。

  1. 在 Azure 门户中配置诊断设置的位置取决于资源:

    • 对于单项资源,在资源菜单中的“监视”下,选择“诊断设置”。

      Azure 门户中资源菜单的“监视”部分的屏幕截图,其中突出显示了“诊断设置”。

    • 对于一项或多项资源,在 Azure Monitor 菜单中,选择“设置”下的“诊断设置”,然后选择相应资源。

      Azure Monitor 菜单中“设置”部分的屏幕截图,其中突出显示了“诊断设置”。

    • 对于活动日志,在“Azure Monitor”菜单中,选择“活动日志”,然后选择“诊断设置”。 请确保禁用活动日志的任何旧配置。 有关说明,请参阅禁用现有设置

      Azure Monitor 菜单的屏幕截图,其中已选择“活动日志”,并且在“Monitor - 活动日志”菜单栏中突出显示了“诊断设置”。

  2. 如果选定的资源上不存在任何设置,系统会提示创建设置。 选择“添加诊断设置”。

    显示“添加诊断设置”的屏幕截图,该设置现未进行任何设置。

    如果资源上有现有的设置,则会看到已配置的设置列表。 若要添加新设置,请选择“添加诊断设置”。 或者,选择“编辑设置”以编辑现有设置。 每个设置最多只能包含一个目标类型。

    显示为现有设置添加诊断设置的屏幕截图。

  3. 为设置指定名称(如果未指定)。

    显示诊断设置名称的屏幕截图。

  4. 要路由的日志和指标:对于日志,请选择一个类别组,或选中要发送到后续指定目标的每个数据类别对应的各个复选框。 每种 Azure 服务的类别列表各不相同。 如果还要将指标存储到 Azure Monitor 日志中,请选择“AllMetrics”。

  5. 目标详细信息:选中每个目标对应的复选框。 此时将显示多个选项,以便添加更多信息。

    显示“发送到 Log Analytics”和“流式传输到事件中心”的屏幕截图。

    1. Log Analytics:输入订阅和工作区。 如果没有工作区,则必须在继续操作之前创建一个

    2. 事件中心:指定以下条件:

      • 订阅:事件中心所属的订阅。
      • 事件中心命名空间:如果没有,则必须创建一个
      • 事件中心名称(可选):将所有数据发送到的名称。 如果未指定名称,将为每个日志类别创建一个事件中心。 如果发送多个类别,可能需要指定一个名称来限制创建的事件中心数。 有关详细信息,请参阅 Azure 事件中心的配额和限制
      • 事件中心策略名称(可选):策略定义流式处理机制具有的权限。 有关详细信息,请参阅事件中心功能
    3. 存储:选择“订阅”、“存储帐户”和“保留”策略。

      显示存储类别和目标详细信息的屏幕截图。

      提示

      考虑将保留策略设置为 0,并使用 Azure 存储生命周期策略,或使用计划作业从存储中删除你的数据。 这些策略可能提供更一致的行为。

      首先,如果要使用存储进行存档,你通常希望数据保留 365 天以上。

      其次,如果选择的保留策略大于 0,则在存储时会向日志附加一个到期日期。 日志一旦存储,则无法为其更改该日期。

      例如,如果将 WorkflowRuntime 的保留策略设置为 180 天,24 小时后又将其设置为 365 天,则在前 24 小时内存储的日志将在 180 天后自动删除。 而该类型的所有后续日志将在 365 天后自动删除。 后来进行的保留策略更改不会使前 24 小时的日志保留 365 天。

    4. 合作伙伴集成:必须先将合作伙伴集成安装到你的订阅中。 配置选项因合作伙伴而异。 有关详细信息,请参阅 Azure Monitor 合作伙伴集成

  6. 选择“保存”。

几分钟后,新设置将出现在此资源的设置列表中。 生成新的事件数据时,日志会流式传输到指定目标。 发出事件后可能需要长达 15 分钟的时间该事件才会出现在 Log Analytics 工作区中

疑难解答

下面提供了一些故障排除提示。

指标类别不受支持

部署诊断设置时,你会收到类似于“不支持指标类别 'xxxx'”的错误消息。即使之前的部署成功,也可能会遇到此错误。

此问题发生在使用资源管理器模板、REST API、CLI 或 Azure PowerShell 时。 通过 Azure 门户创建的诊断设置不受影响,因为仅显示受支持的类别名称。

此问题由对基础 API 的最新更改引起。 除“AllMetrics”以外的指标类别都不受支持,并且除了一些特定的 Azure 服务之外从未支持过。 过去,部署诊断设置时,将忽略其他类别名称。 Azure Monitor 后端将这些类别重定向到了“AllMetrics”。 从 2021 年 2 月开始,对后端进行了更新,以明确确认提供的指标类别是否准确。 此更改导致一些部署出现失败。

如果收到此错误,请更新部署,将任何指标类别名称替换为“AllMetrics”以解决此问题。 如果部署之前添加了多个类别,则只保留具有“AllMetrics”引用的类别。 如果仍出现此问题,请通过 Azure 门户联系 Azure 支持。

由于 resourceID 中包含非 ASCII 字符,设置消失

诊断设置不支持具有非 ASCII 字符的资源 ID。 例如术语 Preproducción。 由于无法重命名 Azure 中的资源,唯一的选择是创建不包含非 ASCII 字符的新资源。 如果这些字符在一个资源组中,可以将其下的资源移到新的资源组。 否则,你需要重新创建该资源。

数据重复或丢失的可能性

会尽一切努力确保所有日志数据都正确发送到你的目标,但不可能保证终结点之间 100% 的日志数据传输。 已建立重试和其他机制来解决这些问题,并尝试确保日志数据到达终结点。

后续步骤

详细了解 Azure 平台日志