在 Azure Monitor 中创建诊断设置

在 Azure Monitor 中创建和编辑诊断设置,以将 Azure 平台指标和日志发送到不同的目标,例如 Azure Monitor 日志、Azure 存储或 Azure 事件中心。 可以使用不同的方法(例如 Azure 门户、Azure CLI、PowerShell 和 Azure 资源管理器)来处理诊断设置。

重要

在“诊断设置”中设置的保留策略现已弃用,不能再使用。 使用 Azure 存储生命周期策略管理日志保留的时间长度。 有关详细信息,请参阅将诊断设置存储保留迁移到 Azure 存储生命周期管理

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    屏幕截图显示“目标详细信息”部分下的可用选项。

    1. 发送到 Log Analytics 工作区:选择你的订阅和要向其发送数据的 Log Analytics 工作区。 如果没有工作区,则必须在继续操作之前创建一个

    2. 存档到存储帐户:选择你的订阅和用于存储数据的存储帐户

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

      提示

      使用 Azure 存储生命周期策略管理日志保留的时间长度。 在“诊断设置”中设置的保留策略现已弃用。

    3. 流式传输到事件中心:指定以下条件:

      • 订阅:事件中心所属的订阅。
      • 事件中心命名空间:如果没有,则必须创建一个
      • 事件中心名称(可选):将所有数据发送到的名称。 如果未指定名称,将为每个日志类别创建一个事件中心。 如果发送多个类别,可能需要指定一个名称来限制创建的事件中心数。 有关详细信息,请参阅 Azure 事件中心的配额和限制
      • 事件中心策略名称(可选):策略定义流式处理机制具有的权限。 有关详细信息,请参阅事件中心功能
    4. 发送到合作伙伴解决方案:必须先在订阅中安装 Azure 本机 ISV 服务。

  6. 如果服务同时支持特定于资源模式和 Azure 诊断模式,则在选择“Log Analytics 工作区”作为目标时,会显示用于选择目标表的选项。 通常应选择特定于资源,因为表结构支持更大的灵活性和更高效的查询。

    用于设置目标表的对话框的屏幕截图。

  7. 选择“保存”。

几分钟后,新设置将出现在此资源的设置列表中。 生成新的事件数据时,日志会流式传输到指定目标。 发出事件后可能需要长达 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% 的日志数据传输。 已建立重试和其他机制来解决这些问题,并尝试确保日志数据到达终结点。

非活动资源

当资源处于不活动状态并导出零值指标时,诊断设置导出机制会以增量方式进行退避,以避免导出和存储零值所带来的不必要成本。 退避可能会导致下一个非零值的导出延迟。

当资源处于非活动状态一小时后,导出机制会退避到 15 分钟。 这意味着导出下一个非零值可能会有长达 15 分钟的延迟。 处于非活动状态七天后,会达到两小时的最大退避时间。 一旦资源开始导出非零值,导出机制就会恢复到原来的三分钟导出延迟。

此行为仅适用于导出的指标,不会影响基于指标的警报或自动缩放。

后续步骤