AWSFIS 的實驗記錄 - AWS 故障注入服務

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWSFIS 的實驗記錄

您可以使用實驗日誌記錄來捕獲有關實驗運行時的詳細信息。

系統會根據與每個記錄目標類型相關聯的費用向您收取實驗記錄的費用。如需詳細資訊,請參閱 Amazon CloudWatch 定價 (在付費方案日誌、付費日誌下) 和 Amazon S3 定價

許可

您必須授與 AWS FIS 權限,才能將記錄檔傳送至您設定的每個記錄目的地。如需詳細資訊,請參閱 Amazon CloudWatch 日誌使用者指南中的以下內容:

記錄檔結構

以下是在實驗日誌中使用的模式。目前的結構描述版本為 2。的欄位取details決於的值log_type。的欄位取resolved_targets決於的值target_type。如需詳細資訊,請參閱 記錄記錄範例

{ "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 } }
版本備註
  • 版本 2 介紹:

    • target_type字段,并將該resolved_targets字段從 ARN 列表變更為對象列表。resolved_targets物件的有效欄位取決於的值target_type,這是目標的資源類型

    • 新增account_id欄位的action-errortarget-resolution-detail事件類型。

  • 版本 1 是初始版本。

記錄目的地

AWSFIS 支援將記錄傳送至下列目的地:

  • Amazon S3 儲存貯體

  • Amazon CloudWatch 日誌日誌組

S3 日誌交付

記錄會傳送至下列位置。

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

記錄檔可能需要數分鐘才會傳送至儲存貯體。

CloudWatch 記錄檔傳送

記錄會傳送至名為 /aws/fis/ 實驗識別碼的記錄資料流。

記錄檔會在不到一分鐘的時間內傳送至記錄群組。

記錄記錄範例

以下是在隨機選取的 EC2 執行個體上執行aws:ec2:reboot-instances動作的實驗範例日誌記錄。

實驗開始

以下是事件的範例記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

以下是事件的範例記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

以下是事件的範例記target-resolution-detail錄。如果目標解析失敗,記錄也會包含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

如果目標解析失敗,記錄也會包含error_information欄位。如果大total_pages於 1,則已解決的目標數目超過一筆記錄的大小限制。還有其他target-resolution-end記錄包含剩餘的已解析目標。

以下是 EC2 動作target-resolution-end事件的範例記錄。

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

以下是 EKS 動作之target-resolution-end事件的範例記錄。

{ "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錄。如果實驗範本指定動作的參數,則記錄也會包含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錄。只有在動作失敗時才會傳回此事件。會針對動作失敗的每個帳戶傳回此動作。

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

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

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

啟用實驗記錄

默認情況下禁用實驗日誌記錄。要接收實驗的實驗日誌,您必須在啟用日誌記錄的情況下從實驗模板創建實驗。當您第一次執行設定為使用先前未使用過的目的地進行記錄的實驗時,我們會延遲實驗以設定至此目的地的記錄傳遞,這需要大約 15 秒的時間。

使用控制台啟用實驗記錄
  1. 開啟AWS金融資訊系統控制台,網址為 https://console.aws.amazon.com/fis/

  2. 在導覽窗格中,選擇 [實驗範本]。

  3. 選取實驗範本,然後選擇 [動作]、[更新實驗範本]。

  4. 對於記錄檔,設定目的地選項。若要將日誌傳送到 S3 儲存貯體,請選擇「傳送到 Amazon S3 儲存貯體」,然後輸入儲存貯體名稱和前置詞。如果要將記錄檔傳送至 CloudWatch 記錄檔,請選擇「傳送至 CloudWatch 記錄檔」並輸入記錄群組。

  5. 選擇更新實驗模板

若要啟用實驗記錄,請使用 AWS CLI

使用指update-experiment-template令並指定記錄組態。

停用實驗記錄

如果您不想再接收實驗的日誌,則可以禁用實驗日誌記錄。

若要使用主控台停用實驗記錄
  1. 開啟AWS金融資訊系統控制台,網址為 https://console.aws.amazon.com/fis/

  2. 在導覽窗格中,選擇 [實驗範本]。

  3. 選取實驗範本,然後選擇 [動作]、[更新實驗範本]。

  4. 對於日誌,請清除傳送到 Amazon S3 儲存貯體傳送到 CloudWatch 日誌

  5. 選擇更新實驗模板

若要停用實驗記錄,請使用 AWS CLI

使用命update-experiment-template令並指定空白記錄組態。