Azure Monitor 中的诊断设置

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

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

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

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

警告

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

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

来源

诊断信息有三个源:

  • 默认情况下,平台指标会自动发送到 Azure Monitor 指标,无需配置。
  • 平台日志 - 提供 Azure 资源及其所依赖的 Azure 平台的详细诊断和审核信息。
    • 在资源日志路由到目标之前,不会收集它们。
    • 活动日志提供有关资源本身以外的资源信息,例如创建或删除资源的时间。 这些条目单独存在,但也可路由到其他位置。

指标

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

资源日志

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

活动日志

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

Destinations

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

为了确保传输中的数据的安全性,所有目标终结点均配置为支持 TLS 1.2。

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

活动日志设置

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

要求和限制

本部分介绍要求和限制。

遥测到达目标之前的时间

设置诊断设置后,数据应在 90 分钟内开始流向所选目标。 将日志发送到 Log Analytics 工作区时,系统会自动创建表(如果它尚不存在)。 仅当收到第一个日志记录时,系统才会创建该表。 如果在 24 小时内未收到任何信息,则可能遇到以下问题之一:

  • 未生成任何日志。
  • 底层路由机制出现问题。

如果遇到问题,可尝试禁用配置,然后重新启用它。 如果仍出现此问题,请通过 Azure 门户联系 Azure 支持。

用作源的指标

导出指标存在某些限制:

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

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

目标限制

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

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

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

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

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

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

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

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

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

注意

如果要在 Log Analytics 工作区中存储诊断日志,需要考虑两点以免 Application Insights 中出现重复数据:

  • 该目标不能与 Application Insights 资源所基于的 Log Analytics 工作区相同。
  • Application Insights 用户不能同时访问两个工作区。 将 Log Analytics 访问控制模式设置为“需要工作区权限”。 通过 Azure 基于角色的访问控制,确保用户只能访问 Application Insights 资源所基于的 Log Analytics 工作区。

这些步骤是必要的,因为 Application Insights 跨 Application Insight 资源(包括 Log Analytics 工作区)来访问遥测数据,以提供完整的端到端事务操作和准确的应用程序映射。 由于诊断日志使用相同的表名,因此如果用户有权访问包含相同数据的多个资源,则可能会显示重复的遥测数据。

控制成本

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

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

提示

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

后续步骤