

# Configuración de alarmas para crear investigaciones
<a name="Investigations-configure-alarms"></a>

Puede configurar una alarma de CloudWatch existente para crear investigaciones automáticamente en Investigaciones de CloudWatch. Cuando la alarma pasa al estado ALARM, CloudWatch crea automáticamente una nueva investigación o la agrega a una investigación existente en función de la cadena de deduplicación.

Al configurar una alarma para crear investigaciones automáticamente, tendrá que especificar un nombre de recurso de Amazon (ARN) en actionArns de la alarma. Este ARN identifica el grupo de investigación en el que se crearán las investigaciones activadas por alarmas. Si lo desea, puede incluir una cadena de deduplicación en el ARN para agrupar alarmas relacionadas.

## Formato y parámetros del ARN
<a name="Investigations-arn-format"></a>

El patrón del ARN para las acciones de alarma de los grupos de investigación sigue este formato:

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

En la tabla siguiente se describe cada componente del ARN:


| Parámetro | Descripción | 
| --- | --- | 
| region (obligatorio) | Región de AWS en la que se encuentra el grupo de investigación. Por ejemplo: us-east-1. | 
| account-id (obligatorio) | ID de cuenta de AWS de 12 dígitos. Por ejemplo: 123456789012. | 
| investigation-group-identifier (obligatorio) | Identificador único del grupo de investigación. Por ejemplo, sMwwg1IogXdvL7UZ. | 
| DEDUPE\$1STRING=value (opcional) | Cadena de deduplicación que agrupa alarmas relacionadas en la misma investigación. Cuando varias alarmas utilizan la misma cadena de deduplicación, contribuyen a una sola investigación en lugar de crear investigaciones independientes. | 

**Ejemplo sin cadena de deduplicación:**

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

**Ejemplo con cadena de deduplicación:**

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

### Beneficios de las cadenas de deduplicación
<a name="Investigations-deduplication-benefits"></a>

Las cadenas de deduplicación ayudan a organizar las alarmas relacionadas y a reducir la fragmentación de la investigación. Utilice cadenas de deduplicación cuando:
+ **Varias alarmas supervisen el mismo sistema**: las alarmas de CPU, memoria y disco de la misma instancia de EC2 pueden compartir una cadena de deduplicación para generar una investigación exhaustiva.
+ **Se produzcan errores en cascada**: cuando un problema desencadene varias alarmas relacionadas, la misma cadena de deduplicación impide que se lleven a cabo investigaciones independientes para cada síntoma.
+ **Desee clasificar las alarmas por tipo de problema**: utilice cadenas descriptivas como “rendimiento”, “conectividad” o “seguridad” para agrupar las alarmas por categoría de problema.

Ejemplos de cadenas de deduplicación eficaces:
+ `DEDUPE_STRING=webserver-performance`: agrupa las alarmas relacionadas con el rendimiento para los servidores web.
+ `DEDUPE_STRING=database-connectivity`: agrupa los problemas de conexión de la base de datos.
+ `DEDUPE_STRING=instance-i-1234567890abcdef0`: agrupa todas las alarmas de una instancia de EC2 específica.

**nota**  
Si no se especifica ninguna cadena de deduplicación, el sistema utiliza una combinación predeterminada de nombre de alarma, ID de cuenta y región para agrupar las investigaciones.

Para obtener más información sobre los grupos de investigación, consulte [Configuración de un grupo de investigación](Investigations-GetStarted-Group.md).

# Configuración de una alarma para crear investigaciones
<a name="Investigations-configure-alarm-procedures"></a>

Después de configurar un grupo de investigación en su cuenta, podrá configurar las alarmas de CloudWatch existentes para que creen investigaciones automáticamente cuando pasen al estado ALARM. De este modo, se elimina la necesidad de iniciar las investigaciones manualmente y garantiza una respuesta coherente a los problemas operativos. Puede configurar las alarmas mediante la Consola de administración de AWS, la AWS CLI, CloudFormation o los AWS SDK.

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

1. Abra la consola de CloudWatch en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. En el panel de navegación, elija **Alarmas** y seleccione una alarma existente.

1. Seleccione **Acciones**, **Editar**.

1. En la sección **Acciones de alarma**, elija **Agregar acción de alarma**.

1. En la sección **Configurar acciones**, **Acción de investigación**, elija el ARN del grupo de investigación.

1. (Opcional) Agregue una cadena de deduplicación para agrupar alarmas relacionadas.

1. Elija **Update alarm** (Actualizar alarma).

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

Este comando requiere que especifique un ARN para el parámetro `alarm-actions`. Para obtener más información acerca de cómo crear el ARN, consulte [Formato y parámetros del ARN](Investigations-configure-alarms.md#Investigations-arn-format).

**Configuración de una alarma de CloudWatch con la acción InvestigationGroup (AWS CLI)**

1. Si aún no lo ha hecho, instale y configure AWS CLI. Para obtener más información, consulte [Instalación o actualización de la última versión de AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Ejecute el siguiente comando a fin de recopilar información sobre la alarma que desea configurar.

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

1. Ejecute el siguiente comando para actualizar una alarma. Reemplace cada *example resource placeholder* con su propia información.

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

   A continuación se muestra un ejemplo.

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

En esta sección, se incluyen plantillas de CloudFormation que puede utilizar para configurar alarmas de CloudWatch a fin de crear o actualizar investigaciones de manera automática. Cada plantilla requiere que especifique un ARN para el parámetro `AlarmActions`. Para obtener más información acerca de cómo crear el ARN, consulte [Formato y parámetros del 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 ]

En esta sección, se incluyen fragmentos de código Java que puede usar para configurar alarmas de CloudWatch a fin de crear o actualizar investigaciones de manera automática. Cada fragmento requiere que especifique un ARN para el parámetro `investigationGroupArn`. Para obtener más información acerca de cómo crear el ARN, consulte [Formato y parámetros del 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);
}
```

------