有关 Azure Monitor 警报的最佳做法

本文提供 Azure Monitor 警报、警报处理规则和操作组的体系结构最佳实践。 本指南基于 Azure Well-Architected Framework 中所述的体系结构卓越五大支柱。

有关警报和通知的详细信息,请参阅 Azure Monitor 警报概述。 有关大规模警报解决方案的详细信息,请参阅 大规模警报

可靠性

在云端,我们承认故障总会发生。 我们的目标不是试图防止各种故障,而是最大程度地减轻单个组件故障造成的影响。 使用以下信息可最大限度地减少 Azure Monitor 警报规则组件的故障。

Azure Monitor 警报无需任何设计决策即可提供高度可靠性。 其他 Azure Monitor 组件的功能通常会缓解暂时丢失警报数据的情况。

设计清单

  • 配置服务运行状况警报规则。
  • 设置资源健康状态警报规则。
  • 避免对生成大规模通知的警报规则的服务限制。

配置建议

建议 益处
配置服务运行状况警报规则。 服务运行状况警报会向你发送有关中断、服务中断、计划内维护和安全公告的通知。 有关详细信息,请参阅 使用 Azure 门户创建服务运行状况警报
设置资源健康状态警报规则。 资源运行状况警报会在这些资源的运行状况发生变化时几乎实时地发出通知。 有关详细信息,请参阅 Azure 门户中的“创建资源运行状况警报”。
避免对生成大规模通知的警报规则的服务限制。 如果警报规则会发送大量通知,则可能会达到用于发送电子邮件或短信通知的服务的服务限制。 配置编程操作或选择备用通知方法或提供程序来处理大规模通知。 有关详细信息,请参阅 通知的服务限制

安全

安全性是任何体系结构最为重视的方面之一。 Azure Monitor 提供了采用最低特权原则和深度防御原则的功能。 使用以下信息最大限度地提高 Azure Monitor 警报的安全性。

使用托管标识来控制日志搜索警报规则的权限

开发人员面临的一个常见挑战是管理用于保护服务之间通信的机密、凭据、证书和密钥。 托管标识使开发人员无需管理这些凭据。 为日志搜索警报规则设置托管标识可让你控制和了解警报规则的确切权限。 你可以随时查看规则的查询权限,并直接从其托管身份添加或删除权限。

如果规则查询要访问 Azure 数据资源管理器(ADX)或 Azure 资源图(ARG),则需要使用托管身份。

说明创建或编辑日志搜索警报规则

将“监视读取者”角色分配给不需要配置特权的所有用户

通过向用户授予其角色所需的最低权限来提高安全性。

说明Azure Monitor 中的角色、权限和安全性

尽可能使用安全的 Webhook 操作

如果警报规则包含使用 Webhook 操作的操作组,则建议优先使用安全 Webhook 操作以进行更强的身份验证。

说明为安全 Webhook 配置身份验证

如果需要使用自己的加密密钥来保护工作区中的数据和保存的查询,请使用客户管理的密钥

Azure Monitor 使用 Azure 托管密钥(MMK)加密所有数据和保存的查询。 如果需要使用自己的加密密钥,并为专用群集收集足够的数据,请使用客户管理的密钥以提高灵活性和密钥生命周期控制。

说明客户管理的密钥

如果使用Microsoft Sentinel,请参阅设置Microsoft Sentinel 客户管理的密钥

成本优化

成本优化是指可以减少不必要的费用以及提高运营效率的方法。 通过了解不同的配置选项和减少数据收集量的可能设置,可以显著降低 Azure Monitor 的成本。 请参阅 Azure Monitor 成本和使用情况 ,了解 Azure Monitor 费用的不同方式以及如何查看每月帐单。

设计清单

  • 活动日志警报、服务运行状况警报和资源运行状况警报是免费的。
  • 使用日志搜索警报时,请尽量降低日志搜索警报频率。
  • 使用指标警报时,请尽量减少要监视的资源数。

配置建议

建议 益处
请记住,活动日志警报、服务运行状况警报和资源运行状况警报是免费的。 Azure Monitor 活动警报、服务运行状况警报和资源运行状况警报是免费的。 如果想要监控的内容可以通过这些警报类型实现,请使用它们。
使用日志搜索警报时,请尽量降低日志搜索警报频率。 配置日志搜索警报时,请记住,规则评估越频繁,成本就越高。 相应地配置规则。
使用指标警报时,请尽量减少要监视的资源数。 某些资源类型支持指标警报规则,这些规则可以监视同一类型的多个资源。 对于这些资源类型,请记住,如果规则监视许多资源,则成本可能会变得较高。 若要降低成本,可以降低指标警报规则的范围。 您还可以使用日志搜索警报规则来监视大量资源,这种方法成本较低。

卓越运营

卓越运营是指使服务在生产环境中可靠运行所需的操作流程。 使用以下信息最大程度地减少支持 Azure Monitor 警报的操作要求。

设计清单

  • 在适当的情况下,在指标警报规则中使用动态阈值。
  • 尽可能使用一个警报规则来监控多个资源。
  • 若要大规模控制行为,请使用警报处理规则。
  • 利用自定义属性增强诊断
  • 利用逻辑应用自定义、扩充和集成各种系统

配置建议

建议 益处
在适当情况下,在指标警报规则中使用 动态阈值 你可能不确定要用作警报规则阈值的正确数字。 动态阈值使用机器学习和一组算法和方法来确定基于趋势的正确阈值。 这意味着无需提前知道正确的预定义阈值。 动态阈值也可用于监视多个资源的规则,并且无法为所有资源配置单个阈值。 有关详细信息,请参阅 指标警报中的动态阈值
尽可能使用一个警报规则来监控多个资源。 使用监视多个资源的警报规则可减少管理开销,方法是允许管理一个规则来监视大量资源。
若要大规模控制行为,请使用 警报处理规则 警报处理规则可用于减少需要创建和管理的警报规则数。
使用 指标警报规则日志搜索警报规则 的自定义属性增强诊断。 如果警报规则使用操作组,你可以添加自己的属性以包含在警报通知负载中。 可以在动作组发起的操作(例如 Webhook、Azure 函数或逻辑应用操作)中使用这些属性。

性能效率

性能效率是指工作负荷能够以高效的方式扩展以满足用户对它的需求。 警报可提供高效的性能,无需任何设计决策。

后续步骤