View a markdown version of this page

配置 Automation 以监控 CloudWatch 警报 - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

配置 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/,打开 Amazon Systems Manager 控制台。

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

  2. 选择执行自动化

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

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

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

  6. 选择执行

配置警报监控(Amazon 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:DescribeAlarmsssm:StopAutomationExecution 权限。

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