

# Configurar alarmes para criar investigações
<a name="Investigations-configure-alarms"></a>

Você pode configurar um alarme existente do CloudWatch para criar investigações automaticamente no recurso de investigações do CloudWatch. Quando o alarme entra no estado ALARM, o CloudWatch cria automaticamente uma nova investigação ou faz uma adição a uma investigação existente com base na sequência de desduplicação.

Ao configurar um alarme para criar investigações automaticamente, especifique um nome do recurso da Amazon (ARN) no actionArns do alarme. Esse ARN identifica o grupo de investigações no qual as investigações acionadas por alarme serão criadas. Opcionalmente, você pode incluir uma string de desduplicação no ARN para agrupar alarmes relacionados.

## Formato do ARN e parâmetros
<a name="Investigations-arn-format"></a>

O padrão do ARN para ações de alarme do grupo de investigações segue este formato:

```
arn:aws:aiops:region:account-id:investigation-group/investigation-group-identifier#DEDUPE_STRING=value
```

A seguinte tabela descreve resumidamente cada componente do ARN:


| Parameter | Descrição | 
| --- | --- | 
| region (obrigatório) | A região da AWS na qual o grupo de investigações está localizado. Por exemplo: us-east-1. | 
| account-id (obrigatório) | O ID com 12 dígitos da sua conta da AWS. Por exemplo: 123456789012. | 
| investigation-group-identifier (obrigatório) | O identificador exclusivo do grupo de investigações. Por exemplo, sMwwg1IogXdvL7UZ | 
| DEDUPE\$1STRING=value (opcional) | Uma sequência de desduplicação que agrupa alarmes relacionados na mesma investigação. Quando vários alarmes usam a mesma sequência de desduplicação, eles contribuem para uma única investigação, em vez de criar investigações separadas. | 

**Exemplo sem string de desduplicação:**

```
arn:aws:aiops:us-east-1:123456789012:investigation-group/sMwwg1IogXdvL7UZ
```

**Exemplo com string de desduplicação:**

```
arn:aws:aiops:us-east-1:123456789012:investigation-group/sMwwg1IogXdvL7UZ#DEDUPE_STRING=performance
```

### Benefícios das strings de desduplicação
<a name="Investigations-deduplication-benefits"></a>

As strings de desduplicação ajudam a organizar alarmes relacionados e reduzir a fragmentação da investigação. Use strings de desduplicação quando:
+ **Vários alarmes monitorarem o mesmo sistema**: alarmes de CPU, memória e disco para a mesma instância do EC2 podem compartilhar uma string de desduplicação para criar uma única investigação abrangente.
+ **Ocorrerem falhas em cascata**: quando um problema aciona vários alarmes relacionados, a mesma string de desduplicação evita a criação de uma investigação separada para cada sintoma.
+ **Você desejar categorizar por tipo de problema**: use strings descritivas como “performance”, “conectividade” ou “segurança” para agrupar alarmes por categoria de problema.

Exemplos de strings de desduplicação eficazes:
+ `DEDUPE_STRING=webserver-performance`: agrupa os alarmes relacionados à performance para servidores Web
+ `DEDUPE_STRING=database-connectivity`: agrupa problemas de conexão do bancos de dados
+ `DEDUPE_STRING=instance-i-1234567890abcdef0`: agrupa todos os alarmes de uma determinada instância do EC2

**nota**  
Se nenhuma string de desduplicação for especificada, o sistema usará uma combinação padrão de nome do alarme, ID da conta e região para agrupar as investigações.

Para saber mais sobre grupos de investigações, consulte [Configurar um grupo de investigações](Investigations-GetStarted-Group.md).

# Configurar um alarme para criar investigações
<a name="Investigations-configure-alarm-procedures"></a>

Depois que um grupo de investigações é configurado em sua conta, é possível configurar os alarmes existentes do CloudWatch para criar investigações automaticamente quando eles entrarem no estado ALARM. Isso elimina a necessidade de iniciar investigações manualmente e garante uma resposta consistente aos problemas operacionais. Você pode configurar alarmes usando o AWS Management Console, a AWS CLI, o CloudFormation ou os SDKs da AWS.

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

1. Abra o console do CloudWatch, em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. No painel de navegação, escolha **Alarmes** e selecione um alarme existente.

1. Selecione **Ações**, **Editar**.

1. Na seção **Ações de alarme**, escolha **Adicionar ação de alarme**.

1. Na seção **Configurar ações**, **Ação de investigação**, escolha o ARN do grupo de investigações.

1. (Opcional) Adicione uma string de desduplicação para agrupar os alarmes relacionados.

1. Escolha **Create alarm** (Criar alarme).

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

Este comando requer que você especifique um ARN para o parâmetro `alarm-actions`. Para obter informações sobre como criar o ARN, consulte [Formato do ARN e parâmetros](Investigations-configure-alarms.md#Investigations-arn-format).

**Para configurar um alarme do CloudWatch com a ação InvestigationGroup (AWS CLI)**

1. Instale e configure o AWS CLI, caso ainda não o tenha feito. Para obter informações, consulte [Instalar ou atualizar a versão mais recente da AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Execute o seguinte comando a fim de coletar informações sobre o alarme que você deseja configurar.

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

1. Execute o comando a seguir para atualizar um alarme. Substitua cada *espaço reservado para recurso de exemplo* por suas próprias informações.

   ```
   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}"
   ```

   Aqui está um exemplo.

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

Esta seção inclui modelos do CloudFormation que podem ser usados para configurar os alarmes do CloudWatch para criar ou atualizar investigações automaticamente. Cada modelo requer que você especifique um ARN para o parâmetro `AlarmActions`. Para obter informações sobre como criar o ARN, consulte [Formato do ARN e parâmetros](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 ]

Esta seção inclui trechos de código em Java que podem ser usados para configurar alarmes do CloudWatch para criar ou atualizar investigações automaticamente. Cada trecho requer que você especifique um ARN para o parâmetro `investigationGroupArn`. Para obter informações sobre como criar o ARN, consulte [Formato do ARN e parâmetros](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);
}
```

------