

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

# Amazon CloudWatch Logs への Elastic Beanstalk 環境ヘルス情報のストリーミング
<a name="AWSHowTo.cloudwatchlogs.envhealth"></a>

環境の[拡張ヘルス](health-enhanced.md)レポートを有効にすると、CloudWatch Logs にヘルス情報をストリーミングするように環境を設定できます。このストリーミングは、Amazon EC2 インスタンスログのストリーミングとは独立しています。このトピックでは、環境ヘルス情報のストリーミングについて説明します。インスタンスログのストリーミングの詳細については、「[Amazon CloudWatch Logs で Elastic Beanstalk を使用する](AWSHowTo.cloudwatchlogs.md)」を参照してください。

環境のヘルスステータスのストリーミングを設定すると、Elastic Beanstalk は環境ヘルスの CloudWatch Logs ロググループを作成します。ロググループの名前名は `/aws/elasticbeanstalk/environment-name/environment-health.log` と呼ばれます。このロググループ内で、Elastic Beanstalk は `YYYY-MM-DD#<hash-suffix>` という名前のログストリームを作成します (日付ごとに複数のログストリームが存在する可能性があります)。

環境の状態が変化すると、Elastic Beanstalk はヘルスログストリームにレコードを追加します。このレコードは、ヘルス状態の変化、つまり新しい状態と変化の原因の説明を表します。たとえば、ロードバランサに障害が発生しているため、環境のステータスが Severe (重大) に変わることがあります。拡張ヘルスステータスの説明については、「[状態の色とステータス](health-enhanced-status.md)」を参照してください。

## CloudWatch Logs への環境ヘルスストリーミングの前提条件
<a name="AWSHowTo.cloudwatchlogs.envhealth.prereqs"></a>

CloudWatch Logs への環境ヘルスストリーミングを有効にするには、次の条件を満たす必要があります。
+ *プラットフォーム* - 拡張ヘルスレポートをサポートするプラットフォームのバージョンを使用している必要があります。
+ *アクセス権限* - お使いの環境のヘルス情報をストリーミングするには、特定のログ記録に関連するアクセス許可を Elastic Beanstalk に付与する必要があります。Elastic Beanstalk が環境用に作成したサービスロール、`aws-elasticbeanstalk-service-role`、またはアカウントのサービスにリンクされたロール、`AWSServiceRoleForElasticBeanstalk` を使用していない環境では、カスタムサービスロールに次のアクセス権限を必ず追加してください。

  ```
  {
        "Effect": "Allow",
        "Action": [
          "logs:DescribeLogStreams",
          "logs:CreateLogStream",
          "logs:PutLogEvents"
        ],
        "Resource": "arn:aws:logs:*:*:log-group:/aws/elasticbeanstalk/*:log-stream:*"
  }
  ```

## CloudWatch Logs への環境ヘルスログのストリーミング
<a name="AWSHowTo.cloudwatchlogs.envhealth.streaming"></a>

Elastic Beanstalk コンソール、EB CLI、または設定オプションを使用して、CloudWatch Logs への環境ヘルスのストリーミングを使用可能にすることができます。

### Elastic Beanstalk コンソールを使用した環境ヘルスログのストリーミング
<a name="AWSHowTo.cloudwatchlogs.envhealth.streaming.console"></a>

**環境ヘルスログを CloudWatch Logs にストリーミングするには**

1. [Elastic Beanstalk コンソール](https://console.aws.amazon.com/elasticbeanstalk)を開き、**リージョン**リストで を選択します AWS リージョン。

1. ナビゲーションペインで、[**環境**] を選択し、リストから環境の名前を選択します。

1. ナビゲーションペインで、[**設定**] を選択します。

1. [**モニタリング**] 設定カテゴリで、[**編集**] を選択します。

1. [**ヘルスレポート**] で、[**システム**] が [**Enhanced (拡張)**] に設定されていることを確認してください。

1. [**Health event streaming to CloudWatch Logs**] の下で
   + [**Log streaming**] を有効にします。
   + [**Retention**] でログを保存する日数を指定します。
   + 環境が終了した後にログを保存するかどうかを決定する [**Lifecycle**] 設定を選択します。

1. ページの最下部で **[適用]** を選択し変更を保存します。

ログストリーミングが有効になったら、[**モニタリング**] カテゴリまたはページに戻り、[**ロググループ**] のリンクを検索します。CloudWatch コンソールで環境ヘルスログを表示するには、このリンクをクリックします。

### EB CLI を使用した環境ヘルスログのストリーミング
<a name="AWSHowTo.cloudwatchlogs.envhealth.streaming.ebcli"></a>

EB CLI を使用して環境ヘルスログストリーミングを CloudWatch Logs に有効にするには、[**eb logs**](eb3-logs.md) コマンドを使用します。

```
$ eb logs --cloudwatch-logs enable --cloudwatch-log-source environment-health
```

また、**eb logs** を使用して、CloudWatch Logs からログを取得することもできます。たとえば、次のコマンドは、環境のすべてのヘルスログを取得し、`.elasticbeanstalk/logs` ディレクトリに保存します。

```
$ eb logs --all --cloudwatch-log-source environment-health
```

### 設定ファイルを使用した環境ヘルスログのストリーミング
<a name="AWSHowTo.cloudwatchlogs.envhealth.files"></a>

環境を作成または更新する場合は、設定ファイルを使用して、CloudWatch Logs に環境ヘルスストリーミングをセットアップして設定することができます。以下の例を使用するには、アプリケーションソースバンドルの最上位にある `.config` ディレクトリに、`.ebextensions` 拡張子を持つファイルにテキストをコピーします。この例では、環境ヘルスログストリーミングを有効にし、環境終了後にログを保存し、30 日間保存するように Elastic Beanstalk を構成しています。

**Example [ヘルスストリーミング設定ファイル](samples/aws_eb_cloudwatchlogs-envhealth.zip)**  

```
############################################################################
##  Sets up Elastic Beanstalk to stream environment health information
##  to Amazon CloudWatch Logs.
##  Works only for environments that have enhanced health reporting enabled.
############################################################################

option_settings:
  aws:elasticbeanstalk:cloudwatch:logs:health:
    HealthStreamingEnabled: true
    ### Settings below this line are optional.
    # DeleteOnTerminate: Delete the log group when the environment is
    # terminated. Default is false. If false, the health data is kept
    # RetentionInDays days.
    DeleteOnTerminate: false
    # RetentionInDays: The number of days to keep the archived health data
    # before it expires, if DeleteOnTerminate isn't set. Default is 7 days.
    RetentionInDays: 30
```

オプションのデフォルト値と有効な値については、[`aws:elasticbeanstalk:cloudwatch:logs:health`](command-options-general.md#command-options-general-cloudwatchlogs-health) を参照してください。