

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# `AWSSupport-TroubleshootCloudWatchAlarm`
<a name="automation-awssupport-troubleshoot-cloudwatchalarm"></a>

 **描述** 

 该`AWSSupport-TroubleshootCloudWatchAlarm`运行手册有助于识别和解决配置错误或有问题的 Amazon CloudWatch (CloudWatch) 警报的问题。它利用公开 AWS APIs 和已知的警报评估逻辑来检测监控指标中延迟或丢失的数据点，这可能导致警报操作错过或延迟。本运行手册提供了一种结构化的方法来调查和解决 Amazon CloudWatch (CloudWatch) 警报相关的问题。

 **如何工作？** 

 运行手册`AWSSupport-TroubleshootCloudWatchAlarm`执行以下步骤：
+ 验证 Amazon CloudWatch (CloudWatch) 警报详情和`AlarmTriggerTimestamp`参数值，以检查其是否在 2,592,000 秒（30 天）以内。
+ 检查警报是基于指标还是公制数学，还是异常探测器警报。
+ 检查警报是否处于数据不足状态。
+ 检查警报中使用的指标是否与`ListMetrics`值匹配。
+ 验证指标在给定时间戳是否缺少数据点。
+ 获取给定时间戳的最新历史记录。
+ 检查警报是否由于延迟或错过指标而未触发。
+ 检查警报的启用操作是否已 was/were 送达。
+ 生成包含所有诊断结果的故障排除报告。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootCloudWatchAlarm) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux、macOS、Windows

**参数**

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `cloudwatch:DescribeAlarms`
+ `cloudwatch:DescribeAlarmHistory`
+ `cloudwatch:DescribeAnomalyDetectors`
+ `cloudwatch:GetMetricData`
+ `cloudwatch:GetMetricStatistics`
+ `cloudwatch:ListMetrics`

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:DescribeAlarms",
                "cloudwatch:DescribeAlarmHistory",
                "cloudwatch:DescribeAnomalyDetectors",
                "cloudwatch:GetMetricData",
                "cloudwatch:GetMetricStatistics",
                "cloudwatch:ListMetrics"
            ],
            "Resource": "*"
        }
    ]
}
```

------

 **说明** 

按照这些步骤对自动化进行配置：

1. [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootCloudWatchAlarm/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootCloudWatchAlarm/description)在 Systems Manager 的 “文档” 下导航至。

1. 选择 Execute automation（执行自动化）。

1. 对于输入参数，请输入以下内容：
   + **AutomationAssumeRole （可选）：**
     + 类型：`String`
     + 描述：（可选）允许 Systems Manager Automation 代表您执行操作 AWS AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。如果未指定任何角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
   + **CloudWatchMetricAlarmName（必填）：**
     + 类型：`String`
     + 描述：（必填）要进行故障排除的 Amazon CloudWatch (CloudWatch) 指标警报的名称。
     + 允许的模式：`^[a-zA-Z0-9.:;,\\-_&() ]{1,255}$`
   + **AlarmTriggerTimestamp （必填）：**
     + 类型：`String`
     + 描述：（必填）警报问题发生时的 UTC 时间戳。这些信息对于解决问题和了解问题发生的背景至关重要。时间戳值应为从今天起的最近 30 天内的时间，格式`YYYY-MM-DDTHH:mm:ssZ`为。示例：`2024-10-29T09:04:00Z`
     + 允许的模式：`^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})Z$`

1. 选择执行。

1. 自动化启动。

1. 文档将执行以下步骤：
   + **`VerifyRunbookInputs`**

     验证 Amazon CloudWatch (CloudWatch) 警报详情和`AlarmTriggerTimestamp`参数值，以检查其是否在 2,592,000 秒（30 天）以内。
   + **`UpdateSSMDocumentInputChecksVariable`**

     使用`VerifyRunbookInputs`步骤`SSMDocumentInputChecks`中的`SSMDocumentInputChecks`值更新变量。
   + **`BranchOnAlarmIsVerified`**

     分支于 Runbook 的输入验证`AlarmTriggerTimestamp`和`CloudWatchAlarmName`.
   + **`CheckMetricAlarmType`**

     检查警报是基于指标还是公制数学，还是异常探测器警报。
   + **`CheckAlarmInInsufficientDataState`**

     检查警报是否处于数据不足状态。
   + **`UpdateInsufficientDataChecksVariable`**

     使用`CheckAlarmInInsufficientDataState`步骤`InsufficientDataChecks`中的`InsufficientDataChecks`值更新变量。
   + **`BranchOnAlarmHasInsufficientData`**

     在 ste `CheckAlarmInInsufficientDataState` p 中的`AlarmHasInsufficientData`值上进行分支，默认步骤为`CheckMetricMismatch`。
   + **`CheckMetricMismatch`**

     检查警报中使用的指标是否与`ListMetrics`值匹配。
   + **`UpdateMetricMismatchChecksVariable`**

     使用`CheckMetricMismatch`步骤`MetricMismatchChecks`中的`MetricMismatchChecks`值更新变量。
   + **`BranchOnMetricsMatched`**

     在 ste `CheckMetricMismatch` p 中的`MetricsMatched`值上进行分支，默认步骤为`CheckMissingDatapoint`。
   + **`CheckMissingDatapoint`**

     验证指标在给定时间戳是否缺少数据点。
   + **`UpdateMetricMissingDatapointsChecksVariable`**

     使用`CheckMissingDatapoint`步骤`MetricMissingDatapointsChecks`中的`MetricMissingDatapointsChecks`值更新变量。
   + **`BranchOnMetricMissingDatapoint`**

     在 ste `CheckMissingDatapoint` p 中的`MetricMissingDatapoint`值上进行分支，默认步骤为`GetAlarmHistoryDetails`。
   + **`GetAlarmHistoryDetails`**

     获取给定时间戳的最新历史记录。
   + **`UpdateAlarmHistoryChecksVariable`**

     使用`GetAlarmHistoryDetails`步骤`AlarmHistoryChecks`中的`AlarmHistoryChecks`值更新变量。
   + **`BranchOnAlarmHistoryFound`**

     在 ste `GetAlarmHistoryDetails` p 中的`AlarmHistoryFound`值上进行分支，默认步骤为`CheckDelayedMetric`。
   + **`CheckDelayedMetric`**

     检查警报是否由于延迟或错过指标而未触发。
   + **`UpdateDelayedMetricChecksVariable`**

     使用`CheckDelayedMetric`步骤`DelayedMetricChecks`中的`DelayedMetricChecks`值更新变量。
   + **`BranchOnMetricDelayedAndDatapointsMeetThreshold`**

     分支位于`CheckDelayedMetric`步骤中的`MetricDelayed`和`DatapointsMeetThreshold`值，默认步骤为`GenerateReport`。
   + **`CheckActionDelivered`**

     检查警报的启用操作是否已 was/were 送达。
   + **`UpdateActionDeliveredChecksVariable`**

     使用`CheckActionDelivered`步骤`ActionDeliveredChecks`的输出`ActionDeliveredChecks`更新变量。
   + **`GenerateReport`**

     编译前面步骤的输出并输出报告。

1. 执行完成后，请查看 “输出” 部分，了解执行的详细结果：
   + **GenerateReport. 报告**

     有关所提供的 Amazon CloudWatch (CloudWatch) 指标警报的报告。

   ```
                   ------------------------------------------------------------------------------------------
                   |                     AWS CloudWatch Alarm Troubleshooting Results                       |
                   ------------------------------------------------------------------------------------------
                   |     Alarm Name                        -               Demo-Alarm                       |
                   |     Timestamp                         -               2025-03-04T06:31:00Z             |
                   ------------------------------------------------------------------------------------------
                   |     ✅ No Issue(s) Found                                                               |
                   ------------------------------------------------------------------------------------------
   
   
   
                   ==========================================================================================
                   1. Validating SSM Document input parameters:
                   ==========================================================================================
                   ✅ [PASSED]: Found a metric alarm with name Demo-Alarm
   
   
                   ==========================================================================================
                   2. Checking alarm's data state:
                   ==========================================================================================
                   ✅ [PASSED]: The alarm is not in INSUFFICIENT_DATA state, alarm's state is: ALARM
   
   
                   ==========================================================================================
                   3. Checking if the alarm experienced metric mismatches:
                   ==========================================================================================
                   ✅ [PASSED]: Metric matches with the configured metric for Alarm.
   
   
                   ==========================================================================================
                   4. Checking if the alarm's metric(s) experienced missing datapoint(s):
                   ==========================================================================================
                   ✅ [PASSED]: Metric has datapoints
   
   
                   ==========================================================================================
                   5. Retrieving alarm's history for timestamp 2025-03-04T06:31:00Z:
                   ==========================================================================================
                   ✅ [PASSED]: Found most recent alarm history item for the provided timestamp: '2025-03-04T06:31:00Z'
   
   
                   ==========================================================================================
                   6. Checking if the alarm experienced metric delays or the alarm's datapoint(s) did not meet the configured threshold:
                   ==========================================================================================
                   ✅ [PASSED]: CloudWatch alarm did not experience any delayed metric
   
   
                   ==========================================================================================
                   7. Checking if the alarm has actions enabled and if action(s) were delivered:
                   ==========================================================================================
                   ✅ [PASSED]: Successfully executed action arn:aws:sns:us-east-1:12345678910:Demo_Alarms_Topic
   
   
                   ------------------------------------------------------------------------------------------
   
                   ✅ All the checks have passed for CloudWatch alarm, Demo-Alarm, the alarm's configuration is correct.
   ```

 **参考** 

Systems Manager Automation
+ [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootCloudWatchAlarm/description)
+ [运行自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [设置自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [支持自动化工作流登录页面](https://aws.amazon.com/premiumsupport/technology/saw/)