REL06-BP04 自动响应(实时处理和警报) - 可靠性支柱

REL06-BP04 自动响应(实时处理和警报)

检测到事件后,利用自动化功能执行操作;例如,更换故障组件。

实施警报的自动实时处理,以便系统可以快速采取纠正措施,并在触发警报时尝试防止故障或服务降级。警报的自动响应可能包括更换故障组件,调整计算容量,将流量重定向到运行状况良好的主机、可用区或其他区域,以及通知操作员。

期望结果:识别实时警报,并设置警报的自动处理,以便调用适当措施来维护服务级别目标和服务水平协议(SLA)。自动处理的范围可以是单个组件的自我修复活动,也可以是全站点的失效转移。

常见反模式:

  • 没有明确的关键实时警报的清单或目录。

  • 关键警报没有自动响应(例如,当计算资源即将耗尽时自动进行扩展)。

  • 警报响应操作相互矛盾。

  • 操作员在收到警报通知时没有任何标准操作程序(SOP)可以遵循。

  • 不监控配置更改,因为未检测到的配置更改可能会导致工作负载停机。

  • 没有撤消意外配置更改的策略。

建立此最佳实践的好处:自动处理警报可以提高系统的韧性。系统会自动采取纠正措施,从而减少手动操作,而手动操作往往是容易出错的人工干预。工作负载的运行符合可用性目标,并减少服务中断。

在未建立这种最佳实践的情况下暴露的风险等级:

实施指导

为了有效地管理警报并自动进行响应,请根据警报的严重程度和影响对警报进行分类,记录响应程序,并在对任务进行评级之前制定好响应计划。

确定需要特定操作的任务(通常在运行手册中详细说明),并检查所有运行手册和行动手册,判断哪些任务可以自动执行。如果操作可以定义,通常就可以实现自动化。如果操作无法自动化,请在 SOP 中记录手动步骤并对操作员进行培训。不断挑战手动流程,寻找自动化机会,以便制定和维护自动响应警报的计划。

实施步骤

  1. 创建警报清单:要获取所有警报的列表,您可以使用 Amazon CloudWatch 命令 describe-alarms 来使用 AWS CLI。根据设置的警报数量,您可能需要使用分页来检索每个呼叫的警报子集,或者也可以使用 AWS SDK 通过 API 调用获取警报。

  2. 记录所有警报操作:更新包含所有警报及其操作的运行手册,无论它们是手动还是自动的。AWS Systems Manager 提供预定义的运行手册。有关运行手册的更多信息,请参阅使用运行手册。有关如何查看运行手册内容的详细信息,请参阅 View runbook content

  3. 设置和管理警报操作:对于任何需要操作的警报,请使用 CloudWatch SDK 指定自动操作。例如,您可以通过创建和启用警报操作或禁用警报操作,根据 CloudWatch 警报自动更改 Amazon EC2 实例的状态。

    您还可以使用 Amazon EventBridge 自动响应系统事件,例如应用程序可用性问题或资源更改。您可以创建规则来指示要关注的事件,以及在事件匹配规则时要执行的操作。可以自动启动的操作包括调用 AWS Lambda 函数、调用 Amazon EC2 Run Command、将事件中继到 Amazon Kinesis Data Streams 以及查看使用 EventBridge 自动执行 Amazon EC2

  4. 标准操作程序(SOP):根据应用程序组件,AWS Resilience Hub 会推荐多个 SOP 模板。您可以使用这些 SOP 来记录在出现警报时操作员应遵循的所有流程。您还可以根据韧性监测中心的建议构造 SOP,前提是有一个具有相关韧性策略的 Resilience Hub 应用程序,以及针对该应用程序的历史韧性评测。针对 SOP 的建议由韧性评测生成。

    韧性监测中心与 Systems Manager 结合使用,通过提供大量可用作这些 SOP 基础的 SSM 文档,自动执行 SOP 的步骤。例如,韧性监测中心可能会根据现有的 SSM 自动化文档推荐用于添加磁盘空间的 SOP。

  5. 使用 Amazon DevOps Guru 执行自动操作:可以使用 Amazon DevOps Guru 自动监控应用程序资源的异常行为并提供针对性的建议,缩短识别问题和进行修复所需的时间。借助 DevOps Guru,您可以近乎实时地监控来自多个来源的运营数据流,包括 Amazon CloudWatch 指标、AWS ConfigAWS CloudFormationAWS X-Ray。您还可以使用 DevOps Guru 在 OpsCenter 中自动创建 OpsItems,并将事件发送到 EventBridge 实现更多自动化操作。

资源

相关最佳实践:

相关文档:

相关视频:

相关示例: