Enregistrement des expériences pour AWS FIS - AWS Service d'injection de défauts

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Enregistrement des expériences pour AWS FIS

Vous pouvez utiliser la journalisation des expériences pour saisir des informations détaillées sur votre expérience au fur et à mesure de son exécution.

La journalisation des expériences vous est facturée en fonction des coûts associés à chaque type de destination de journal. Pour plus d'informations, consultez les CloudWatch tarifs Amazon (sous Paid Tier, Logs, Vended Logs) et Amazon S3 Pricing.

Autorisations

Vous devez accorder des autorisations AWS FIS pour envoyer des journaux à chaque destination de journal que vous configurez. Pour plus d'informations, consultez les informations suivantes dans le guide de l'utilisateur d'Amazon CloudWatch Logs :

Schéma du journal

Le schéma utilisé pour la journalisation des expériences est le suivant. La version actuelle du schéma est 2. Les champs pour details dépendent de la valeur delog_type. Les champs pour resolved_targets dépendent de la valeur detarget_type. Pour plus d’informations, consultez Exemples d'enregistrements de journal.

{ "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 } }
Notes de mise à jour
  • La version 2 introduit :

    • Le target_type champ et transforme le resolved_targets champ d'une liste d'ARN en une liste d'objets. Les champs valides pour l'resolved_targetsobjet dépendent de la valeur detarget_type, qui est le type de ressource des cibles.

    • Les types target-resolution-detail d'événements action-error et qui ajoutent le account_id champ.

  • La version 1 est la version initiale.

Enregistrer les destinations

AWSLe FIS prend en charge la livraison de journaux vers les destinations suivantes :

  • Un compartiment Amazon S3

  • Un groupe de CloudWatch journaux Amazon Logs

Livraison du journal S3

Les journaux sont livrés à l'emplacement suivant.

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

Plusieurs minutes peuvent s'écouler avant que les journaux ne soient livrés au bucket.

CloudWatch Logs et livraison de journaux

Les journaux sont transmis à un flux de journaux nommé /aws/fis/ experiment-id.

Les journaux sont envoyés au groupe de journaux en moins d'une minute.

Exemples d'enregistrements de journal

Voici des exemples d'enregistrements de journal pour une expérience qui exécute l'aws:ec2:reboot-instancesaction sur une instance EC2 sélectionnée au hasard.

démarrage de l'expérience

Voici un exemple d'enregistrement pour l'experiment-startévénement.

{ "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

Voici un exemple d'enregistrement pour l'target-resolution-startévénement.

{ "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

Voici un exemple d'enregistrement pour l'target-resolution-detailévénement. Si la résolution cible échoue, l'enregistrement inclut également le error_information champ.

{ "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 résolution cible échoue, l'enregistrement inclut également le error_information champ. S'il total_pages est supérieur à 1, le nombre de cibles résolues a dépassé la limite de taille pour un enregistrement. Des target-resolution-end enregistrements supplémentaires contiennent les cibles résolues restantes.

Voici un exemple d'enregistrement de l'target-resolution-endévénement pour une action 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 } }

Voici un exemple d'enregistrement de l'target-resolution-endévénement associé à une action 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

Voici un exemple d'enregistrement pour l'action-startévénement. Si le modèle d'expérience spécifie les paramètres de l'action, l'enregistrement inclut également le parameters champ.

{ "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-erreur

Voici un exemple d'enregistrement pour l'action-errorévénement. Cet événement n'est renvoyé qu'en cas d'échec d'une action. Il est renvoyé pour chaque compte sur lequel l'action échoue.

{ "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]:" } } }
fin de l'action

Voici un exemple d'enregistrement pour l'action-endévénement.

{ "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." } } }
fin de l'expérience

Voici un exemple d'enregistrement pour l'experiment-endévénement.

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

Activer la journalisation des expériences

La journalisation des expériences est désactivée par défaut. Pour recevoir des journaux d'expériences pour une expérience, vous devez créer l'expérience à partir d'un modèle d'expérience avec la journalisation activée. La première fois que vous exécutez un test configuré pour utiliser une destination qui n'a pas été utilisée auparavant pour la journalisation, nous retardons le test pour configurer la livraison du journal vers cette destination, ce qui prend environ 15 secondes.

Pour activer la journalisation des expériences à l'aide de la console
  1. Ouvrez la console AWS FIS à l'adresse https://console.aws.amazon.com/fis/.

  2. Dans le volet de navigation, sélectionnez Modèles d'expériences.

  3. Sélectionnez le modèle d'expérience, puis choisissez Actions, Mettre à jour le modèle d'expérience.

  4. Pour les journaux, configurez les options de destination. Pour envoyer des journaux vers un compartiment S3, choisissez Envoyer vers un compartiment Amazon S3 et entrez le nom et le préfixe du compartiment. Pour envoyer des CloudWatch journaux à Logs, choisissez Send to CloudWatch Logs et entrez le groupe de journaux.

  5. Choisissez Mettre à jour le modèle d'expérience.

Pour activer la journalisation des expériences à l'aide du AWS CLI

Utilisez la update-experiment-templatecommande et spécifiez une configuration de journal.

Désactiver la journalisation des expériences

Si vous ne souhaitez plus recevoir les journaux de vos expériences, vous pouvez désactiver la journalisation des expériences.

Pour désactiver la journalisation des expériences à l'aide de la console
  1. Ouvrez la console AWS FIS à l'adresse https://console.aws.amazon.com/fis/.

  2. Dans le volet de navigation, sélectionnez Modèles d'expériences.

  3. Sélectionnez le modèle d'expérience, puis choisissez Actions, Mettre à jour le modèle d'expérience.

  4. Pour les journaux, décochez Envoyer vers un compartiment Amazon S3 et Envoyer vers CloudWatch les journaux.

  5. Choisissez Mettre à jour le modèle d'expérience.

Pour désactiver la journalisation des expériences à l'aide du AWS CLI

Utilisez la update-experiment-templatecommande et spécifiez une configuration de journal vide.