Registro de experimentos de AWS FIS - AWS Servicio de inyección de averías

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 de AWS FIS

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 (en Paid Tier, Logs, Vended Logs) y los precios de Amazon S3.

Permisos

Debe conceder permisos a 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:

Esquema de registro

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.

{ "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 campo target_type y cambia el campo resolved_targets de una lista de ARN 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 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

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 entregan a un flujo de registro denominado /aws/fis/experiment-id.

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

Ejemplos de entradas de registro

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

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

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

{ "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 } }
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"} } }
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]:" } } }
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." } } }
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

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 de AWS FIS en https://console.aws.amazon.com/fis/.

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

  3. Seleccione la plantilla de experimento y elija Acciones, Actualizar plantilla de experimento.

  4. 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 los registros a CloudWatch los registros, elija Enviar a CloudWatch los registros e introduzca el grupo de registros.

  5. Elija Actualizar plantilla de experimento.

Para habilitar el registro de experimentos con la AWS CLI

Use el update-experiment-templatecomando y especifique una configuración de registro.

Deshabilitación del registro de experimentos

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 de AWS FIS en https://console.aws.amazon.com/fis/.

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

  3. Seleccione la plantilla de experimento y elija Acciones, Actualizar plantilla de experimento.

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

  5. Elija Actualizar plantilla de experimento.

Para deshabilitar el registro de experimentos con la AWS CLI

Use el update-experiment-templatecomando y especifique una configuración de registro vacía.