

# 조사를 생성하도록 경보 구성
<a name="Investigations-configure-alarm-procedures"></a>

계정에 조사 그룹을 설정하면, 기존 CloudWatch 경보가 ALARM 상태가 될 때 조사가 자동으로 생성되도록 구성할 수 있습니다. 이렇게 하면 조사를 수동으로 시작할 필요가 없으며, 운영 문제에 일관된 대응을 할 수 있습니다. AWS Management Console, AWS CLI, CloudFormation 또는 AWS SDK를 사용하여 경보를 구성할 수 있습니다.

------
#### [ Console ]

1. [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)에서 CloudWatch 콘솔을 엽니다.

1. 탐색 창에서 **경보**를 선택한 후 기존 경보를 선택합니다.

1. **작업(Actions)**, **편집(Edit)**을 선택합니다.

1. **경보 작업** 섹션에서 **경보 작업 추가**를 선택합니다.

1. **작업 구성**, **조사 작업** 섹션에서 조사 그룹 ARN을 선택합니다.

1. (선택 사항) 중복 제거 문자열을 추가하여 관련 경보를 그룹화합니다.

1. **경보 업데이트(Update alarm)**을 선택합니다.

------
#### [ CLI ]

이 명령을 사용하려면 `alarm-actions` 파라미터에 대한 ARN을 지정해야 합니다. ARN을 생성하는 방법에 대한 자세한 내용은 [ARN 형식 및 파라미터](Investigations-configure-alarms.md#Investigations-arn-format) 섹션을 참조하세요.

**InvestigationGroup 작업을 사용하여 CloudWatch 경보를 구성하려면(AWS CLI)**

1. 아직 하지 않은 경우 AWS CLI을 설치하고 구성합니다. 자세한 내용은 [최신 버전의 AWS CLI 설치 또는 업데이트](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)를 참조하세요.

1. 다음 명령을 실행하여 구성하려는 경보에 대한 정보를 수집합니다.

   ```
   aws cloudwatch describe-alarms --alarm-names "alarm name"
   ```

1. 다음 명령을 실행하여 경보를 업데이트합니다. 각 {{example resource placeholder}}를 사용자의 정보로 바꿉니다.

   ```
   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 ]

이 섹션에는 조사를 자동으로 생성하거나 업데이트하도록 CloudWatch 경보를 구성하는 데 사용할 수 있는 CloudFormation 템플릿이 포함되어 있습니다. 각 템플릿을 사용하려면 `AlarmActions` 파라미터에 대한 ARN을 지정해야 합니다. ARN을 생성하는 방법에 대한 자세한 내용은 [ARN 형식 및 파라미터](Investigations-configure-alarms.md#Investigations-arn-format) 섹션을 참조하세요.

```
//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 ]

이 섹션에는 조사를 자동으로 생성하거나 업데이트하도록 CloudWatch 경보를 구성하는 데 사용할 수 있는 Java 코드 조각이 포함되어 있습니다. 각 코드 조각을 사용하려면 `investigationGroupArn` 파라미터에 대한 ARN을 지정해야 합니다. ARN을 생성하는 방법에 대한 자세한 내용은 [ARN 형식 및 파라미터](Investigations-configure-alarms.md#Investigations-arn-format) 섹션을 참조하세요.

```
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);
}
```

------