View a markdown version of this page

配置 Automation 以监控 CloudWatch 警报 - AWS Systems Manager

配置 Automation 以监控 CloudWatch 警报

可配置 Automation 运行手册执行以监控 CloudWatch 警报。如果指定的警报进入 ALARM 状态,Automation 将停止执行。对于使用速率控制模式或跨多个账户运行的执行,Automation 将取消所有待处理的执行。如果在运行手册中定义了 onCancel 步骤,这些步骤将在执行结束之前运行。当监控的资源运行状况不佳时,这可以防止运行手册继续运行。

开始前的准备工作

在配置 CloudWatch 警报监控之前,请先满足以下先决条件:

  • 创建 CloudWatch 警报:创建警报,监控受 Automation 执行影响的资源。有关更多信息,请参阅使用 Amazon CloudWatch 警报。

  • 配置执行身份权限:Automation 使用的执行身份必须具有以下权限才能使 CloudWatch 警报监控正常运行:

    • cloudwatch:DescribeAlarms:监控警报状态所必需。

    • ssm:StopAutomationExecution:警报激活时停止执行所必需。

    执行身份由 Automation 运行手册的 assumeRole 字段中指定的 IAM 角色 ARN 确定。如果未指定 assumeRole 值,则运行手册将使用调用 StartAutomationExecution 的 IAM 主体的身份执行。

以下示例显示授予 CloudWatch 警报监控所需权限的最低限度 IAM 策略:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:DescribeAlarms", "ssm:StopAutomationExecution" ], "Resource": "*" } ] }

配置警报监控(控制台)

通过 Systems Manager 控制台启动自动化操作时,使用以下流程配置 CloudWatch 警报监控。

配置警报监控

访问 https://console.aws.amazon.com/systems-manager/,打开 AWS Systems Manager 控制台。

  1. 在导航窗格中,选择 自动化。

  2. 选择执行自动化。

  3. 选择运行手册并为执行配置输入参数。

  4. 在 CloudWatch 警报部分,选择要在执行期间监控的警报。

    Systems Manager Automation 控制台的 CloudWatch 警报部分,其中显示警报选择以及警报状态不可用时继续执行的选项。
  5. (可选)切换警报状态不可用时继续自动化,以控制 Automation 无法检索警报状态时的行为。启用后,即使无法确定警报状态,执行也将继续运行。禁用(默认)后,如果无法检索警报状态,执行将停止。

  6. 选择执行。

配置警报监控(AWS CLI)

使用带 aws ssm start-automation-execution 命令的 --alarm-configuration 参数,指定要监控的 CloudWatch 警报。

--alarm-configuration 参数接受具有以下字段的 JSON 结构:

  • Alarms(必填):警报对象,Name 字段用于标识要监控的 CloudWatch 警报。

  • IgnorePollAlarmFailure(可选,布尔值):控制 Automation 无法检索警报状态时的行为。设置为 false(默认)在无法确定警报状态时停止执行,或者设置为 true 在任何情况下都继续执行。

以下示例启动了一个自动化操作,用于监控名为 my-alarm 的 CloudWatch 警报。由于 IgnorePollAlarmFailure 设置为 false,因此如果无法检索警报状态,则 Automated 将停止:

aws ssm start-automation-execution \ --document-name "AWS-RestartEC2Instance" \ --parameters '{"InstanceId":["i-02573cafcfEXAMPLE"]}' \ --alarm-configuration '{"IgnorePollAlarmFailure":false,"Alarms":[{"Name":"my-alarm"}]}'

跨账户和跨区域警报监控

对于跨多个账户和区域运行的自动化操作,您可以使用 TargetLocations 中的 TargetLocationAlarmConfiguration 字段,为每个目标位置配置警报监控。每个目标账户中的执行角色(例如 AWS-SystemsManager-AutomationExecutionRole)必须拥有 cloudwatch:DescribeAlarms 和 ssm:StopAutomationExecution 权限。

有关设置跨账户角色的更多信息,请参阅设置进行多区域和多账户自动化的管理账户权限。