Protokollierung von Experimenten für AWS FIS - AWS Fehlerinjektionsservice

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Protokollierung von Experimenten für AWS FIS

Sie können die Protokollierung von Experimenten verwenden, um während der Durchführung detaillierte Informationen über Ihr Experiment zu erfassen.

Die Protokollierung von Experimenten wird auf der Grundlage der Kosten berechnet, die mit den einzelnen Protokollzieltypen verbunden sind. Weitere Informationen finden Sie unter CloudWatch Amazon-Preise (unter Bezahltes Kontingent, Logs, Vended Logs) und Amazon S3-Preise.

Berechtigungen

Sie müssen AWS FIS-Berechtigungen zum Senden von Protokollen an jedes von Ihnen konfigurierte Protokollziel gewähren. Weitere Informationen finden Sie im Amazon CloudWatch Logs-Benutzerhandbuch im Folgenden:

Protokollschema

Das Folgende ist das Schema, das bei der Protokollierung von Experimenten verwendet wird. Die aktuelle Schemaversion ist 2. Die Felder für details hängen vom Wert von ablog_type. Die Felder für resolved_targets hängen vom Wert von abtarget_type. Weitere Informationen finden Sie unter Beispiel für Protokolldatensätze.

{ "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 } }
Versionshinweise
  • Version 2 führt ein:

    • Das target_type Feld und ändert das resolved_targets Feld von einer Liste von ARNs zu einer Liste von Objekten. Die gültigen Felder für das resolved_targets Objekt hängen vom Wert von abtarget_type, der dem Ressourcentyp der Ziele entspricht.

    • Die target-resolution-detail Ereignistypen action-error und die Ereignistypen, die das account_id Feld hinzufügen.

  • Version 1 ist die erste Version.

Ziele protokollieren

AWS FIS unterstützt die Protokollzustellung an die folgenden Ziele:

  • Ein Amazon-S3-Bucket

  • Eine Amazon CloudWatch Logs-Protokollgruppe

Lieferung von S3-Protokollen

Die Protokolle werden an den folgenden Speicherort übermittelt.

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

Es kann mehrere Minuten dauern, bis die Protokolle an den Bucket geliefert werden.

CloudWatch Logs, Protokollzustellung

Die Protokolle werden in einen Protokollstreamnamed /aws/fis/übertragenexperiment-id.

Protokolle werden in weniger als einer Minute an die Protokollgruppe übermittelt.

Beispiel für Protokolldatensätze

Im Folgenden finden Sie Beispielprotokolldatensätze für ein Experiment, bei dem die aws:ec2:reboot-instances Aktion auf einer zufällig ausgewählten EC2 Instanz ausgeführt wird.

Experiment-Start

Im Folgenden finden Sie einen Beispieldatensatz für das experiment-start Ereignis.

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

Im Folgenden finden Sie einen Beispieldatensatz für das target-resolution-start Ereignis.

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

Im Folgenden finden Sie einen Beispieldatensatz für das target-resolution-detail Ereignis. Wenn die Zielauflösung fehlschlägt, enthält der Datensatz auch das error_information Feld.

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

Wenn die Zielauflösung fehlschlägt, enthält der Datensatz auch das error_information Feld. Wenn total_pages es größer als 1 ist, hat die Anzahl der aufgelösten Ziele die Größenbeschränkung für einen Datensatz überschritten. Es gibt zusätzliche target-resolution-end Datensätze, die die verbleibenden aufgelösten Ziele enthalten.

Im Folgenden finden Sie einen Beispieldatensatz für das target-resolution-end Ereignis einer EC2 Aktion.

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

Im Folgenden finden Sie einen Beispieldatensatz für das target-resolution-end Ereignis für eine EKS-Aktion.

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

Im Folgenden finden Sie einen Beispieldatensatz für das action-start Ereignis. Wenn in der Versuchsvorlage Parameter für die Aktion angegeben sind, enthält der Datensatz auch das parameters Feld.

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

Im Folgenden finden Sie einen Beispieldatensatz für das action-error Ereignis. Dieses Ereignis wird nur zurückgegeben, wenn eine Aktion fehlschlägt. Es wird für jedes Konto zurückgegeben, bei dem die Aktion fehlschlägt.

{ "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]:" } } }
Ende der Aktion

Im Folgenden finden Sie einen Beispieldatensatz für das action-end Ereignis.

{ "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." } } }
Ende des Experiments

Im Folgenden finden Sie einen Beispieldatensatz für das experiment-end Ereignis.

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

Aktivieren Sie die Protokollierung der Experimente

Die Protokollierung von Experimenten ist standardmäßig deaktiviert. Um Versuchsprotokolle für ein Experiment zu erhalten, müssen Sie das Experiment anhand einer Experimentvorlage mit aktivierter Protokollierung erstellen. Wenn Sie zum ersten Mal ein Experiment ausführen, das so konfiguriert ist, dass es ein Ziel verwendet, das zuvor nicht für die Protokollierung verwendet wurde, verzögern wir das Experiment, um die Protokollzustellung an dieses Ziel zu konfigurieren, was etwa 15 Sekunden dauert.

Um die Protokollierung von Experimenten über die Konsole zu aktivieren
  1. Öffnen Sie die AWS FIS-Konsole unter https://console.aws.amazon.com/fis/.

  2. Wählen Sie im Navigationsbereich Experimentvorlagen aus.

  3. Wählen Sie die Experimentvorlage aus und klicken Sie dann auf Aktionen, Experimentvorlage aktualisieren.

  4. Konfigurieren Sie für Logs die Zieloptionen. Um Logs an einen S3-Bucket zu senden, wählen Sie An einen Amazon S3 S3-Bucket senden und geben Sie den Bucket-Namen und das Präfix ein. Um Logs an Logs zu CloudWatch senden, wählen Sie Send to CloudWatch Logs und geben Sie die Log-Gruppe ein.

  5. Wählen Sie „Experimentvorlage aktualisieren“.

Um die Protokollierung von Experimenten zu aktivieren, verwenden Sie AWS CLI

Verwenden Sie den update-experiment-templateBefehl und geben Sie eine Protokollkonfiguration an.

Deaktivieren Sie die Protokollierung der Experimente

Wenn Sie keine Protokolle für Ihre Experimente mehr erhalten möchten, können Sie die Protokollierung der Experimente deaktivieren.

Um die Protokollierung von Experimenten über die Konsole zu deaktivieren
  1. Öffnen Sie die AWS FIS-Konsole unter https://console.aws.amazon.com/fis/.

  2. Wählen Sie im Navigationsbereich Experimentvorlagen aus.

  3. Wählen Sie die Experimentvorlage aus und klicken Sie dann auf Aktionen, Experimentvorlage aktualisieren.

  4. Deaktivieren Sie für Logs die Optionen An einen Amazon S3 S3-Bucket senden und An CloudWatch Logs senden.

  5. Wählen Sie Experimentvorlage aktualisieren.

Um die Protokollierung von Experimenten zu deaktivieren, verwenden Sie AWS CLI

Verwenden Sie den update-experiment-templateBefehl und geben Sie eine leere Protokollkonfiguration an.