配置警报以创建调查
在账户中设置调查组后,可以配置现有的 CloudWatch 警报,使其在进入 ALARM 状态时自动创建调查。这样就无需手动启动调查,并确保对操作问题做出一致的响应。您可以使用 Amazon 管理控制台、Amazon CLI、Amazon CloudFormation 或 Amazon SDK 来配置警报。
- Console
-
-
通过 https://console.aws.amazon.com/cloudwatch/
打开 CloudWatch 控制台。 -
在导航窗格中,选择警报,然后选择现有警报。
-
选择 Actions(操作)和 Edit(编辑)。
-
在警报操作部分中,选择添加警报操作。
-
在配置操作、调查操作部分下,选择调查组 ARN。
-
(可选)添加重复数据删除字符串,对相关警报进行分组。
-
选择更新警报。
-
- CLI
-
此命令要求您为
alarm-actions参数指定 ARN。有关如何创建 ARN 的信息,请参阅 ARN 格式和参数。使用 InvegationGroup 操作配置 CloudWatch 警报(Amazon CLI)
-
安装并配置 Amazon CLI(如果尚未执行该操作)。有关更多信息,请参阅安装或更新 Amazon CLI 的最新版本。
-
运行以下命令以收集要配置的告警的信息。
aws cloudwatch describe-alarms --alarm-names "alarm name" -
运行以下命令以更新告警。将每个
示例资源占位符替换为您自己的信息。aws cloudwatch put-metric-alarm --alarm-name name \ --alarm-description "description" \ --metric-name name --namespace namespace \ --statistic statistic --period value --threshold value \ --comparison-operator value \ --dimensions "dimensions" --evaluation-periods value \ --alarm-actions "arn:aws:aiops:region:{account-id}:investigation-group/{investigationGroupIdentifier}#DEDUPE_STRING={my-dedupe-string}"以下为示例。
//Without deduplication string aws cloudwatch put-metric-alarm --alarm-name cpu-mon \ --alarm-description "Alarm when CPU exceeds 70 percent" \ --metric-name CPUUtilization --namespace AWS/EC2 \ --statistic Average --period 300 --threshold 70 \ --comparison-operator GreaterThanThreshold \ --dimensions "Name=InstanceId,Value=i-12345678" --evaluation-periods 2 \ --alarm-actions arn:aws:aiops:us-east-1:123456789012:investigation-group/sMwwg1IogXdvL7UZ \ --unit Percent //With deduplication string aws cloudwatch put-metric-alarm --alarm-name cpu-mon \ --alarm-description "Alarm when CPU exceeds 70 percent" \ --metric-name CPUUtilization --namespace AWS/EC2 \ --statistic Average --period 300 --threshold 70 \ --comparison-operator GreaterThanThreshold \ --dimensions "Name=InstanceId,Value=i-12345678" --evaluation-periods 2 \ --alarm-actions arn:aws:aiops:us-east-1:123456789012:investigation-group/sMwwg1IogXdvL7UZ#DEDUPE_STRING=performance \ --unit Percent
-
- CloudFormation
-
本节包括多个 Amazon CloudFormation 模板,可用于配置 CloudWatch 警报以自动创建或更新调查。每个模板均要求您为
AlarmActions参数指定 ARN。有关如何创建 ARN 的信息,请参阅 ARN 格式和参数。//Without deduplication string Resources: MyAlarm: Type: AWS::CloudWatch::Alarm Properties: AlarmActions: - !Sub "arn:aws:aiops:${AWS::Region}:${AWS::AccountId}:investigation-group/{investigationGroupIdentifier}" //With deduplication string Resources: MyAlarm: Type: AWS::CloudWatch::Alarm Properties: AlarmActions: - !Sub "arn:aws:aiops:${AWS::Region}:${AWS::AccountId}:investigation-group/{investigationGroupIdentifier}#DEDUPE_STRING={my-dedupe-string}" - SDK
-
本节包括 Java 代码片段,可用于配置 CloudWatch 警报以自动创建或更新调查。每个代码段均要求您为
investigationGroupArn参数指定 ARN。有关如何创建 ARN 的信息,请参阅 ARN 格式和参数。import com.amazonaws.services.cloudwatch.AmazonCloudWatch; import com.amazonaws.services.cloudwatch.AmazonCloudWatchClientBuilder; import com.amazonaws.services.cloudwatch.model.ComparisonOperator; import com.amazonaws.services.cloudwatch.model.Dimension; import com.amazonaws.services.cloudwatch.model.PutMetricAlarmRequest; import com.amazonaws.services.cloudwatch.model.PutMetricAlarmResult; import com.amazonaws.services.cloudwatch.model.StandardUnit; import com.amazonaws.services.cloudwatch.model.Statistic; //Without deduplication string private void putMetricAlarmWithCloudWatchInvestigationAction() { final AmazonCloudWatch cloudWatchClient = AmazonCloudWatchClientBuilder.defaultClient(); Dimension dimension = new Dimension() .withName("InstanceId") .withValue("i-12345678"); String investigationGroupArn = "arn:aws:aiops:us-east-1:123456789012:investigation-group/sMwwg1IogXdvL7UZ"; PutMetricAlarmRequest request = new PutMetricAlarmRequest() .withAlarmName("cpu-mon") .withComparisonOperator( ComparisonOperator.GreaterThanThreshold) .withEvaluationPeriods(2) .withMetricName("CPUUtilization") .withNamespace("AWS/EC2") .withPeriod(300) .withStatistic(Statistic.Average) .withThreshold(70.0) .withActionsEnabled(true) .withAlarmDescription("Alarm when CPU exceeds 70 percent") .withUnit(StandardUnit.Percent) .withDimensions(dimension) .withAlarmActions(investigationGroupArn); PutMetricAlarmResult response = cloudWatchClient.putMetricAlarm(request); } //With deduplication string private void putMetricAlarmWithCloudWatchInvestigationActionWithDedupeString() { final AmazonCloudWatch cloudWatchClient = AmazonCloudWatchClientBuilder.defaultClient(); Dimension dimension = new Dimension() .withName("InstanceId") .withValue("i-12345678"); String investigationGroupArn = "arn:aws:aiops:us-east-1:123456789012:investigation-group/sMwwg1IogXdvL7UZ#DEDUPE_STRING=performance"; PutMetricAlarmRequest request = new PutMetricAlarmRequest() .withAlarmName("cpu-mon") .withComparisonOperator( ComparisonOperator.GreaterThanThreshold) .withEvaluationPeriods(2) .withMetricName("CPUUtilization") .withNamespace("AWS/EC2") .withPeriod(300) .withStatistic(Statistic.Average) .withThreshold(70.0) .withActionsEnabled(true) .withAlarmDescription("Alarm when CPU exceeds 70 percent") .withUnit(StandardUnit.Percent) .withDimensions(dimension) .withAlarmActions(investigationGroupArn); PutMetricAlarmResult response = cloudWatchClient.putMetricAlarm(request); }