REL06-BP04 自动响应(实时处理和警报)
检测到事件后,利用自动化功能执行操作;例如,更换故障组件。
实施警报的自动实时处理,以便系统可以快速采取纠正措施,并在触发警报时尝试防止故障或服务降级。警报的自动响应可能包括更换故障组件,调整计算容量,将流量重定向到运行状况良好的主机、可用区或其他区域,以及通知操作员。
期望结果:识别实时警报,并设置警报的自动处理,以便调用适当措施来维护服务级别目标和服务水平协议(SLA)。自动处理的范围可以是单个组件的自我修复活动,也可以是全站点的失效转移。
常见反模式:
-
没有明确的关键实时警报的清单或目录。
-
关键警报没有自动响应(例如,当计算资源即将耗尽时自动进行扩展)。
-
警报响应操作相互矛盾。
-
操作员在收到警报通知时没有任何标准操作程序(SOP)可以遵循。
-
不监控配置更改,因为未检测到的配置更改可能会导致工作负载停机。
-
没有撤消意外配置更改的策略。
建立此最佳实践的好处:自动处理警报可以提高系统的韧性。系统会自动采取纠正措施,从而减少手动操作,而手动操作往往是容易出错的人工干预。工作负载的运行符合可用性目标,并减少服务中断。
在未建立这种最佳实践的情况下暴露的风险等级:中
实施指导
为了有效地管理警报并自动进行响应,请根据警报的严重程度和影响对警报进行分类,记录响应程序,并在对任务进行评级之前制定好响应计划。
确定需要特定操作的任务(通常在运行手册中详细说明),并检查所有运行手册和行动手册,判断哪些任务可以自动执行。如果操作可以定义,通常就可以实现自动化。如果操作无法自动化,请在 SOP 中记录手动步骤并对操作员进行培训。不断挑战手动流程,寻找自动化机会,以便制定和维护自动响应警报的计划。
实施步骤
-
创建警报清单:要获取所有警报的列表,您可以使用 Amazon CloudWatch 命令
describe-alarms
来使用 AWS CLI。根据设置的警报数量,您可能需要使用分页来检索每个呼叫的警报子集,或者也可以使用 AWS SDK 通过 API 调用获取警报。 -
记录所有警报操作:更新包含所有警报及其操作的运行手册,无论它们是手动还是自动的。AWS Systems Manager 提供预定义的运行手册。有关运行手册的更多信息,请参阅使用运行手册。有关如何查看运行手册内容的详细信息,请参阅 View runbook content。
-
设置和管理警报操作:对于任何需要操作的警报,请使用 CloudWatch SDK 指定自动操作。例如,您可以通过创建和启用警报操作或禁用警报操作,根据 CloudWatch 警报自动更改 Amazon EC2 实例的状态。
您还可以使用 Amazon EventBridge
自动响应系统事件,例如应用程序可用性问题或资源更改。您可以创建规则来指示要关注的事件,以及在事件匹配规则时要执行的操作。可以自动启动的操作包括调用 AWS Lambda 函数、调用 Amazon EC2 Run Command
、将事件中继到 Amazon Kinesis Data Streams以及查看使用 EventBridge 自动执行 Amazon EC2。 -
标准操作程序(SOP):根据应用程序组件,AWS Resilience Hub 会推荐多个 SOP 模板。您可以使用这些 SOP 来记录在出现警报时操作员应遵循的所有流程。您还可以根据韧性监测中心的建议构造 SOP,前提是有一个具有相关韧性策略的 Resilience Hub 应用程序,以及针对该应用程序的历史韧性评测。针对 SOP 的建议由韧性评测生成。
韧性监测中心与 Systems Manager 结合使用,通过提供大量可用作这些 SOP 基础的 SSM 文档,自动执行 SOP 的步骤。例如,韧性监测中心可能会根据现有的 SSM 自动化文档推荐用于添加磁盘空间的 SOP。
-
使用 Amazon DevOps Guru 执行自动操作:可以使用 Amazon DevOps Guru
自动监控应用程序资源的异常行为并提供针对性的建议,缩短识别问题和进行修复所需的时间。借助 DevOps Guru,您可以近乎实时地监控来自多个来源的运营数据流,包括 Amazon CloudWatch 指标、AWS Config 、AWS CloudFormation 和 AWS X-Ray 。您还可以使用 DevOps Guru 在 OpsCenter 中自动创建 OpsItems,并将事件发送到 EventBridge 实现更多自动化操作。
资源
相关最佳实践:
相关文档:
相关视频:
相关示例: