AWSSupport-TroubleshootCloudWatchAlarm - AWS Systems Manager 自动化运行手册参考

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

AWSSupport-TroubleshootCloudWatchAlarm

描述

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

如何工作?

运行手册AWSSupport-TroubleshootCloudWatchAlarm执行以下步骤:

  • 验证 Amazon CloudWatch (CloudWatch) 警报详情和AlarmTriggerTimestamp参数值,以检查其是否在 2,592,000 秒(30 天)以内。

  • 检查警报是基于指标还是公制数学,还是异常探测器警报。

  • 检查警报是否处于数据不足状态。

  • 检查警报中使用的指标是否与ListMetrics值匹配。

  • 验证指标在给定时间戳是否缺少数据点。

  • 获取给定时间戳的最新历史记录。

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

  • 检查警报的启用操作是否已 was/were 送达。

  • 生成包含所有诊断结果的故障排除报告。

运行此自动化(控制台)

文档类型

自动化

所有者

Amazon

平台

Linux、macOS、Windows

参数

所需的 IAM 权限

AutomationAssumeRole 参数需要执行以下操作才能成功使用运行手册。

  • cloudwatch:DescribeAlarms

  • cloudwatch:DescribeAlarmHistory

  • cloudwatch:DescribeAnomalyDetectors

  • cloudwatch:GetMetricData

  • cloudwatch:GetMetricStatistics

  • cloudwatch:ListMetrics

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

说明

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

  1. AWSSupport-TroubleshootCloudWatchAlarm在 Systems Manager 的 “文档” 下导航至。

  2. 选择 Execute automation(执行自动化)。

  3. 对于输入参数,请输入以下内容:

    • AutomationAssumeRole (可选):

      • 类型:String

      • 描述:(可选)允许 Systems Manager Automation 代表您执行操作的 AWS AWS Identity and Access Management (IAM) 角色的亚马逊资源名称 (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$

  4. 选择执行。

  5. 自动化启动。

  6. 文档将执行以下步骤:

    • VerifyRunbookInputs

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

    • UpdateSSMDocumentInputChecksVariable

      使用VerifyRunbookInputs步骤SSMDocumentInputChecks中的SSMDocumentInputChecks值更新变量。

    • BranchOnAlarmIsVerified

      分支于 Runbook 的输入验证AlarmTriggerTimestampCloudWatchAlarmName.

    • 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步骤中的MetricDelayedDatapointsMeetThreshold值,默认步骤为GenerateReport

    • CheckActionDelivered

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

    • UpdateActionDeliveredChecksVariable

      使用CheckActionDelivered步骤ActionDeliveredChecks的输出ActionDeliveredChecks更新变量。

    • GenerateReport

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

  7. 执行完成后,请查看 “输出” 部分,了解执行的详细结果:

    • 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