

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# FIS AWS の実験ログ記録
<a name="monitoring-logging"></a>

実験ロギングを使用すると、実験の実行時に実験に関する詳細情報を取得できます。

実験ロギングについては、各ログの宛先タイプに関連付けられたコストに基づいて経費が請求されます。詳細については、「[Amazon CloudWatch 料金表](https://aws.amazon.com/cloudwatch/pricing/)」(「**有料利用枠**」、「**ログ**」、「**ベンダーログ**」の下) および「[Amazon S3 料金表](https://aws.amazon.com/s3/pricing/)」を参照してください。

## アクセス許可
<a name="permissions-experiment-logging"></a>

設定した各ログ送信先にログを送信するには、 AWS FIS アクセス許可を付与する必要があります。詳細については、『*Amazon CloudWatch Logs ユーザーガイド*』の次のトピックを参照してください。
+ [CloudWatch Logs に送信されたログ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-CWL)
+ [Amazon S3 に送信されたログ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-S3)

## ログスキーマ
<a name="experiment-log-schema"></a>

以下は、実験ロギングで使用されるスキーマです。スキーマの現在のバージョンは 2 です。`details` のフィールドは `log_type` の値によって異なります。`resolved_targets` のフィールドは `target_type` の値によって異なります。詳細については、「[ログレコードの例](#example-log-records)」を参照してください。

```
{
    "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` オブジェクトの有効なフィールドは、ターゲットの[リソースタイプ](targets.md#resource-types)である `target_type` の値によって異なります。
  + `account_id` フィールドを追加する `action-error` および `target-resolution-detail` イベントタイプ。
+ バージョン 1 は初期リリースです。

## ログの宛先
<a name="experiment-log-destinations"></a>

AWS FIS は、次の宛先へのログ配信をサポートしています。
+ Amazon S3 バケット
+ Amazon CloudWatch Logs ロググループ

**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 Logs でのログの配信について**  
ログは /aws/fis/*experiment-id* という名前のログストリームに配信されます。

ログは 1 分以内にロググループに配信されます。

## ログレコードの例
<a name="example-log-records"></a>

以下は、ランダムに選択された EC2 インスタンスで **aws:ec2:reboot-instances** アクションを実行する実験のログレコードの例です。

**レコード**
+ [experiment-start](#experiment-start)
+ [target-resolution-start](#target-resolution-start)
+ [target-resolution-detail](#target-resolution-detail)
+ [target-resolution-end](#target-resolution-end)
+ [action-start](#action-start)
+ [action-end](#action-end)
+ [action-error](#action-error)
+ [experiment-end](#experiment-end)<a name="experiment-start"></a>

**experiment-start**  
以下に示したのは、`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"
    }
}
```<a name="target-resolution-start"></a>

**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"
    }
}
```<a name="target-resolution-detail"></a>

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

    }
}
```<a name="target-resolution-end"></a>

**target-resolution-end**  
ターゲットの解決に失敗した場合、レコードには `error_information` フィールドも含まれます。`total_pages` が 1 より大きい場合、解決されたターゲットの数が 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
    }
}
```<a name="action-start"></a>

**action-start**  
以下に示したのは、`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"}
    }
}
```<a name="action-error"></a>

**action-error**  
以下に示したのは、`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]:"
        }
    }
}
```<a name="action-end"></a>

**action-end**  
以下に示したのは、`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."
        }
    }
}
```<a name="experiment-end"></a>

**experiment-end**  
以下に示したのは、`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"
        }
    }
}
```

## 実験ロギングを有効にする
<a name="enable-experiment-logging"></a>

実験ロギングは、デフォルトで無効になっています。実験用に実験ログを受け取るには、ロギングを有効にした実験テンプレートから実験を作成する必要があります。過去にロギングに使用したことのない宛先を使用する設定のテストを初めて実行するときは、この宛先へのログ配信を設定するため、実験開始までに約 15 秒の遅延が生じます。

**コンソールで実験ロギングの作成を有効にするには**

1. [https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/) AWS で FIS コンソールを開きます。

1. ナビゲーションペインで、**[Experiment templates (実験テンプレート)]** を選択します。

1. 実験テンプレートを選択し、**[アクション]**、**[実験テンプレートを更新する]** を選択します。

1. **[ログ]** では、送信先オプションを設定します。S3 バケットにログを送信するには、**[Amazon S3 バケットに送信]** を選択し、バケット名とプレフィックスを入力します。CloudWatch ログにログを送信するには、**[CloudWatch Logs に送信]** を選択し、ロググループを入力します。

1. **[実験テンプレートの作成]** を選択します。

**を使用して実験ログ記録を有効にするには AWS CLI**  
[update-experiment-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/fis/update-experiment-template.html) コマンドを使用して、ログ設定を指定します。

## 実験ロギングの無効化
<a name="disable-experiment-logging"></a>

実験のログを受け取りたくない場合は、実験ロギングを無効にできます。

**コンソールを使用して実験ロギングの作成を無効にするには**

1. [https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/) AWS で FIS コンソールを開きます。

1. ナビゲーションペインで、**[Experiment templates (実験テンプレート)]** を選択します。

1. 実験テンプレートを選択し、**[アクション]**、**[実験テンプレートを更新する]** を選択します。

1. **[ログ]** については、**[Amazon S3 バケットに送信]** と **[CloudWatch Logs に送信]** をクリアします。

1. **[実験テンプレートの更新]** を選択します。

**を使用して実験ログ記録を無効にするには AWS CLI**  
[update-experiment-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/fis/update-experiment-template.html) コマンドを使用して、空のログ設定を指定します。