

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Registro de experimentos para AWS FIS
<a name="monitoring-logging"></a>

Puede usar el registro de experimentos para capturar información detallada sobre su experimento a medida que se ejecuta.

Se le cobrará por el registro de los experimentos en función de los costes asociados a cada tipo de destino de registro. Para obtener más información, consulte [ CloudWatch los precios de Amazon](https://aws.amazon.com/cloudwatch/pricing/) (en **Paid Tier**, **Logs**, **Vended Logs**) y los [precios de Amazon S3](https://aws.amazon.com/s3/pricing/).

## Permisos
<a name="permissions-experiment-logging"></a>

Debe conceder permisos a la AWS FIS para enviar registros a cada destino de registro que configure. Para obtener más información, consulte lo siguiente en la *Guía del usuario de Amazon CloudWatch Logs*:
+ [Registros enviados a CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-CWL)
+ [Registros enviados a Amazon S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-S3)

## Esquema de registro
<a name="experiment-log-schema"></a>

El siguiente esquema es el utilizado en el registro de experimentos. La versión actual es la 2. Los campos de `details` dependen del valor de `log_type`. Los campos de `resolved_targets` dependen del valor de `target_type`. Para obtener más información, consulte [Ejemplos de entradas de registro](#example-log-records).

```
{
    "id": "EXP123abc456def789",
    "log_type": "experiment-start | target-resolution-start | target-resolution-detail | target-resolution-end | action-start | action-error | action-end | experiment-end",
    "event_timestamp": "yyyy-mm-ddThh:mm:ssZ",
    "version": "2",
    "details": {
        "account_id":"123456789012",
        "action_end_time": "yyyy-mm-ddThh:mm:ssZ",
        "action_id": "String",
        "action_name": "String",
        "action_start_time": "yyyy-mm-ddThh:mm:ssZ",
        "action_state": {
            "status": "pending | initiating | running | completed | cancelled | stopping | stopped | failed",
            "reason": "String"
        },
        "action_targets": "String to string map",
        "error_information": "String",
        "experiment_end_time": "yyyy-mm-ddThh:mm:ssZ",
        "experiment_state": {
            "status": "pending | initiating | running | completed | stopping | stopped | failed",
            "reason": "String"
        },
        "experiment_start_time": "yyyy-mm-ddThh:mm:ssZ",
        "experiment_template_id": "String",
        "page": Number,
        "parameters": "String to string map",
        "resolved_targets": [
            {
               "field": "value"
            }
        ],
        "resolved_targets_count": Number,
        "status": "failed | completed",
        "target_name": "String",
        "target_resolution_end_time": "yyyy-mm-ddThh:mm:ssZ",
        "target_resolution_start_time": "yyyy-mm-ddThh:mm:ssZ",
        "target_type": "String",
        "total_pages": Number,
        "total_resolved_targets_count": Number

    }
}
```

**Notas de la versión**
+ La versión 2 presenta:
  + El `target_type` campo y cambia el `resolved_targets` campo de una lista de objetos ARNs a una lista de objetos. Los campos válidos del objeto `resolved_targets` dependen del valor de `target_type`, que es el [tipo de recurso](targets.md#resource-types) de los destinos.
  + Los tipos de eventos `action-error` y `target-resolution-detail` que agregan el campo `account_id`.
+ La versión 1 es la inicial.

## Registro de destinos
<a name="experiment-log-destinations"></a>

AWS FIS admite la entrega de registros a los siguientes destinos:
+ Un bucket de Amazon S3.
+ Un grupo de CloudWatch registros de Amazon Logs

**Entrega de registros de S3**  
Los registros se entregan en la siguiente ubicación.

```
bucket-and-optional-prefix/AWSLogs/account-id/fis/region/experiment-id/YYYY/MM/DD/account-id_awsfislogs_region_experiment-id_YYYYMMDDHHMMZ_hash.log
```

Los registros pueden tardar varios minutos en entregarse en el bucket.

**CloudWatch Entrega de registros**  
Los registros se envían a un flujo de registrosnamed /aws/fis/*experiment-id*.

Los registros se entregan al grupo de registro en menos de un minuto.

## Ejemplos de entradas de registro
<a name="example-log-records"></a>

A continuación se muestran ejemplos de registros de un experimento que ejecuta la **aws:ec2:reboot-instances** acción en una EC2 instancia seleccionada al azar.

**Registros**
+ [experiment-start](#experiment-start)
+ [target-resolution-start](#target-resolution-start)
+ [target-resolution-detail](#target-resolution-detail)
+ [target-resolution-end](#target-resolution-end)
+ [action-start](#action-start)
+ [action-end](#action-end)
+ [action-error](#action-error)
+ [experiment-end](#experiment-end)<a name="experiment-start"></a>

**experiment-start**  
A continuación, se ve un ejemplo de registro del evento `experiment-start`.

```
{
    "id": "EXPhjAXCGY78HV2a4A",
    "log_type": "experiment-start",
    "event_timestamp": "2023-05-31T18:50:45Z",
    "version": "2",
    "details": {
        "experiment_template_id": "EXTCDh1M8HHkhxoaQ",
        "experiment_start_time": "2023-05-31T18:50:43Z"
    }
}
```<a name="target-resolution-start"></a>

**target-resolution-start**  
A continuación, se ve un ejemplo de registro del evento `target-resolution-start`.

```
{
    "id": "EXPhjAXCGY78HV2a4A",
    "log_type": "target-resolution-start",
    "event_timestamp": "2023-05-31T18:50:45Z",
    "version": "2",
    "details": {
        "target_resolution_start_time": "2023-05-31T18:50:45Z",
        "target_name": "EC2InstancesToReboot"
    }
}
```<a name="target-resolution-detail"></a>

**target-resolution-detail**  
A continuación, se ve un ejemplo de registro del evento `target-resolution-detail`. Si la resolución de destino falla, el registro también incluye el campo `error_information`.

```
{
    "id": "EXPhjAXCGY78HV2a4A",
    "log_type": "target-resolution-detail",
    "event_timestamp": "2023-05-31T18:50:45Z",
    "version": "2",
    "details": {
        "target_resolution_end_time": "2023-05-31T18:50:45Z",
        "target_name": "EC2InstancesToReboot",
        "target_type": "aws:ec2:instance",
        "account_id": "123456789012",
        "resolved_targets_count": 2,
        "status": "completed"

    }
}
```<a name="target-resolution-end"></a>

**target-resolution-end**  
Si la resolución de destino falla, el registro también incluye el campo `error_information`. Si `total_pages` es mayor que 1, el número de destinos resueltos ha superado el límite de tamaño de un registro. Hay registros de `target-resolution-end` adicionales que contienen el resto de los destinos resueltos.

El siguiente es un ejemplo de registro del `target-resolution-end` evento de una EC2 acción.

```
{
    "id": "EXPhjAXCGY78HV2a4A",
    "log_type": "target-resolution-end",
    "event_timestamp": "2023-05-31T18:50:45Z",
    "version": "2",
    "details": {
        "target_resolution_end_time": "2023-05-31T18:50:46Z",
        "target_name": "EC2InstanceToReboot",
        "target_type": "aws:ec2:instance",
        "resolved_targets": [
            {
                "arn": "arn:aws:ec2:us-east-1:123456789012:instance/i-0f7ee2abffc330de5"
            }
        ],
        "page": 1,
        "total_pages": 1
    }
}
```

A continuación, se ve un ejemplo de registro del evento `target-resolution-end` para una acción de EKS.

```
{
    "id": "EXP24YfiucfyVPJpEJn",
    "log_type": "target-resolution-end",
    "event_timestamp": "2023-05-31T18:50:45Z",
    "version": "2",
    "details": {
        "target_resolution_end_time": "2023-05-31T18:50:46Z",
        "target_name": "myPods",
        "target_type": "aws:eks:pod",
        "resolved_targets": [
            {
                "pod_name": "example-696fb6498b-sxhw5",
                "namespace": "default",
                "cluster_arn": "arn:aws:eks:us-east-1:123456789012:cluster/fis-demo-cluster",
                "target_container_name": "example"
            }
        ],
        "page": 1,
        "total_pages": 1
    }
}
```<a name="action-start"></a>

**action-start**  
A continuación, se ve un ejemplo de registro del evento `action-start`. Si la plantilla de experimento especifica los parámetros de la acción, el registro también incluye el campo `parameters`.

```
{
    "id": "EXPhjAXCGY78HV2a4A",
    "log_type": "action-start",
    "event_timestamp": "2023-05-31T18:50:56Z",
    "version": "2",
    "details": {
        "action_name": "Reboot",
        "action_id": "aws:ec2:reboot-instances",
        "action_start_time": "2023-05-31T18:50:56Z",
        "action_targets": {"Instances":"EC2InstancesToReboot"}
    }
}
```<a name="action-error"></a>

**action-error**  
A continuación, se ve un ejemplo de registro del evento `action-error`. Este evento solo se devuelve cuando se produce un error en una acción. Se devuelve para cada cuenta en la que se produce un error en la acción. 

```
{
    "id": "EXPhjAXCGY78HV2a4A",
    "log_type": "action-error",
    "event_timestamp": "2023-05-31T18:50:56Z",
    "version": "2",
    "details": {
        "action_name": "pause-io",
        "action_id": "aws:ebs:pause-volume-io",
        "account_id": "123456789012",
        "action_state": {
            "status": "failed",
            "reason":"Unable to start Pause Volume IO. Target volumes must be attached to an instance type based on the Nitro system. VolumeId(s): [vol-1234567890abcdef0]:"
        }
    }
}
```<a name="action-end"></a>

**action-end**  
A continuación, se ve un ejemplo de registro del evento `action-end`.

```
{
    "id": "EXPhjAXCGY78HV2a4A",
    "log_type": "action-end",
    "event_timestamp": "2023-05-31T18:50:56Z",
    "version": "2",
    "details": {
        "action_name": "Reboot",
        "action_id": "aws:ec2:reboot-instances",
        "action_end_time": "2023-05-31T18:50:56Z",
        "action_state": {
            "status": "completed",
            "reason": "Action was completed."
        }
    }
}
```<a name="experiment-end"></a>

**experiment-end**  
A continuación, se ve un ejemplo de registro del evento `experiment-end`.

```
{
    "id": "EXPhjAXCGY78HV2a4A",
    "log_type": "experiment-end",
    "event_timestamp": "2023-05-31T18:50:57Z",
    "version": "2",
    "details": {
        "experiment_end_time": "2023-05-31T18:50:57Z",
        "experiment_state": {
            "status": "completed",
            "reason": "Experiment completed"
        }
    }
}
```

## Habilitación del registro de experimentos
<a name="enable-experiment-logging"></a>

El registro de experimentos está deshabilitado de forma predeterminada. Para recibir registros de un experimento, debe crear el experimento a partir de una plantilla de experimento con el registro habilitado. La primera vez que ejecute un experimento que esté configurado para usar un destino que no se haya utilizado anteriormente para el registro, se retrasará el experimento para configurar la entrega de registros a este destino, lo que tarda unos 15 segundos.

**Para habilitar el registro de experimentos con la consola**

1. Abra la consola AWS FIS en [https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/).

1. En el panel de navegación, elija **Plantillas de experimento**.

1. Seleccione la plantilla de experimento y elija **Acciones**, **Actualizar plantilla de experimento**.

1. En **Registros**, configure las opciones de destino. Para enviar registros a un bucket de S3, seleccione **Enviar a un bucket de Amazon S3** y escriba el nombre y el prefijo del bucket. Para enviar registros a CloudWatch registros, elija **Enviar a CloudWatch registros** e introduzca el grupo de registros.

1. Elija **Actualizar plantilla de experimento**.

**Para habilitar el registro de experimentos mediante el AWS CLI**  
Utilice el [update-experiment-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/fis/update-experiment-template.html)comando y especifique una configuración de registro.

## Deshabilitación del registro de experimentos
<a name="disable-experiment-logging"></a>

Si ya no quiere recibir registros para los experimentos, puede deshabilitar el registro de experimentos.

**Para deshabilitar el registro de experimentos con la consola**

1. Abra la consola AWS FIS en [https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/).

1. En el panel de navegación, elija **Plantillas de experimento**.

1. Seleccione la plantilla de experimento y elija **Acciones**, **Actualizar plantilla de experimento**.

1. Para **Logs**, desactive **Send to an Amazon S3 bucket** y **Send to CloudWatch Logs**.

1. Elija **Actualizar plantilla de experimento**.

**Para deshabilitar el registro de experimentos, utilice la AWS CLI**  
Utilice el [update-experiment-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/fis/update-experiment-template.html)comando y especifique una configuración de registro vacía.