Experimentprotokollierung 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.

Experimentprotokollierung für AWS FIS

Sie können die Experimentprotokollierung verwenden, um während der Ausführung detaillierte Informationen zu Ihrem Experiment zu erfassen.

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

Berechtigungen

Sie müssen AWS FIS-Berechtigungen erteilen, um Protokolle an jedes von Ihnen konfigurierte Protokollziel zu senden. Weitere Informationen finden Sie im Amazon- CloudWatch Logs-Benutzerhandbuch:

Protokollschema

Im Folgenden finden Sie das Schema, das bei der Experimentprotokollierung verwendet wird. Die aktuelle Schemaversion ist 2. Die Felder für detailshängen vom Wert von ablog_type. Die Felder für resolved_targetshängen vom Wert von abtarget_type. Weitere Informationen finden Sie unter Beispielprotokolldatensä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 Folgendes ein:

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

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

  • Version 1 ist die erste Version.

Protokollziele

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

  • Ein Amazon-S3-Bucket

  • Eine Amazon- CloudWatch Logs-Protokollgruppe

S3-Protokollbereitstellung

Die Protokolle werden an den folgenden Speicherort geliefert.

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 einige Minuten dauern, bis die Protokolle an den Bucket übermittelt werden.

CloudWatch Protokollzustellung

Die Protokolle werden an einen Protokollstream mit dem Namen /aws/fis/experiment-id übermittelt.

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

Beispielprotokolldatensätze

Im Folgenden finden Sie Beispielprotokolldatensätze für ein Experiment, das die aws:ec2:reboot-instances Aktion auf einer zufällig ausgewählten EC2-Instance ausführt.

Experimentstart

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 größer als 1 total_pages 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 für eine 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 } }
action-start

Im Folgenden finden Sie einen Beispieldatensatz für das action-start Ereignis. Wenn die Experimentvorlage Parameter für die Aktion angibt, 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"} } }
action-error

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, in 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]:" } } }
Aktionsendpunkt

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

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 der Experimentprotokollierung

Die Experimentprotokollierung ist standardmäßig deaktiviert. Um Experimentprotokolle für ein Experiment zu erhalten, müssen Sie das Experiment aus einer Experimentvorlage mit aktivierter Protokollierung erstellen. Wenn Sie zum ersten Mal ein Experiment ausführen, das für die Verwendung eines Ziels konfiguriert ist, 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.

So aktivieren Sie die Experimentprotokollierung mithilfe der Konsole
  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 auf Aktionen, Experimentvorlage aktualisieren.

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

  5. Wählen Sie Experimentvorlage aktualisieren aus.

So aktivieren Sie die Experimentprotokollierung mit der AWS CLI

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

Deaktivieren der Experimentprotokollierung

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

So deaktivieren Sie die Experimentprotokollierung mithilfe der Konsole
  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 auf Aktionen, Experimentvorlage aktualisieren.

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

  5. Wählen Sie Experimentvorlage aktualisieren aus.

So deaktivieren Sie die Experimentprotokollierung mithilfe der AWS CLI

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