REL06-BP03 发送通知(实时处理和报警)
当组织检测到潜在问题时,会向相应的人员和系统发送实时通知和警报,以便快速有效地处理这些问题。
期望的结果: 通过根据服务和应用程序指标配置相关警报,可对运维事件做出快速响应。当超出警报阈值时,相应的人员和系统会收到通知,以便解决潜在的问题。
常见反模式:
-
配置的警报阈值过高,导致无法发送重要通知。
-
配置的警报阈值过低,导致通知过多,而重要警报无法得到处理。
-
使用情况发生变化时不更新警报及其阈值。
-
对于最好通过自动操作来处理的警报,向人员发送通知而不是生成自动操作,从而导致发送的通知过多。
建立此最佳实践的好处: 通过向相应的人员和系统发送实时通知和警报,可以及早发现问题并快速处理运维方面的意外事件。
未建立这种最佳实践的情况下暴露的风险等级: 高
实施指导
工作负载应配备实时处理和报警功能,从而更及时地检测到可能影响应用程序可用性的问题,并充当自动响应的触发器。组织可以通过使用定义的指标创建警报来执行实时处理和报警,以便在发生重大事件或指标超过阈值时收到通知。
Amazon CloudWatch 让您可以基于静态阈值、异常检测和其他标准创建 指标 和复合警报(使用 CloudWatch 警报)。有关您可以使用 CloudWatch 配置的警报类型的详细信息,请参阅 CloudWatch 文档的警报部分。
您可以为团队自定义包含 AWS 资源指标和警报的视图 – 使用 CloudWatch 控制面板。通过 CloudWatch 控制台中的可自定义主页,您可以在单一视图中监控多个区域的资源。
警报可以执行一项或多项操作,例如,向 Amazon SNS 主题发送通知,执行 Amazon EC2
Amazon CloudWatch 使用 Amazon SNS 在警报状态发生变化时发送通知,提供从发布者(生产者)到订阅用户(消费者)的信息传递。有关设置 Amazon SNS 通知的详细信息,请参阅 配置 Amazon SNS。
CloudWatch 会在以下情况下发送 EventBridge
何时应使用 EventBridge?何时应使用 Amazon SNS?
EventBridge 和 Amazon SNS 都可用于开发事件驱动型应用程序,您可以根据自己的具体需求进行选择。
如果您想构建一个能对来自您自己的应用程序、SaaS 应用程序和 AWS 服务的事件做出反应的应用程序,建议使用 Amazon EventBridge。EventBridge 是唯一一项直接与第三方 SaaS 合作伙伴集成的基于事件的服务。EventBridge 还可以自动从 200 多个 AWS 服务中摄取事件,而无需开发人员在自己的账户中创建任何资源。
EventBridge 使用已定义的基于 JSON 的事件结构,有助于您创建应用于整个事件主体的规则,以便选择要转发到 目标的事件。EventBridge 目前支持将 20 多种 AWS 服务作为目标,包括 AWS Lambda、Amazon SQS
对于需要高扇出(数千或数百万个端点)的应用程序,建议使用 Amazon SNS。我们常见的一种模式是,客户将 Amazon SNS 用作规则的目标,来筛选所需的事件并扇出到多个端点。
消息是非结构化的,可以是任何格式。Amazon SNS 支持将消息转发到六种目标,包括 Lambda、Amazon SQS、HTTP/S 端点、SMS、移动推送和电子邮件。 Amazon SNS 典型延迟不超过 30 毫秒
实施步骤
-
使用 Amazon CloudWatch 警报来创建警报。
-
指标警报可监控单个 CloudWatch 指标或依赖于 CloudWatch 指标的表达式。这种警报会根据在若干时间间隔内,指标或表达式的值与阈值的比较结果,启动一项或多项操作。这些操作可能包括:向 Amazon SNS 主题发送通知,执行 Amazon EC2
操作或 Amazon EC2 Auto Scaling 操作,或者 创建 OpsItem 或 事件 (在 AWS Systems Manager 中)。 -
复合警报由一个规则表达式组成,该规则表达式考虑了您创建的其他警报的警报条件。只有满足所有规则条件,复合警报才会进入警报状态。复合警报的规则表达式中指定的警报可以包括指标警报和其他复合警报。复合警报可以在状态发生变化时发送 Amazon SNS 通知,并且可以在进入警报状态时创建 Systems Manager OpsItem 或 事件 ,但无法执行 Amazon EC2 或 Auto Scaling 操作。
-
-
设置 Amazon SNS 通知。创建 CloudWatch 警报时,可以包括 Amazon SNS 主题,以便在警报状态发生变化时发送通知。
-
在 EventBridge 中创建规则 以便与指定的 CloudWatch 警报匹配。每条规则都支持多个目标,包括 Lambda 函数。例如,您可以定义一个警报,该警报在可用磁盘空间不足时启动,它会通过 EventBridge 规则触发 Lambda 函数来清理空间。有关 EventBridge 目标的详细信息,请参阅 EventBridge 目标。
资源
相关的 Well-Architected 最佳实践:
相关文档:
相关视频:
相关示例: