Amazon CloudWatch Logs への Elastic Beanstalk 環境ヘルス情報のストリーミング - AWS Elastic Beanstalk

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

Amazon CloudWatch Logs への Elastic Beanstalk 環境ヘルス情報のストリーミング

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

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

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

CloudWatch Logs への環境ヘルスストリーミングの前提条件

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 への環境ヘルスログのストリーミング

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

Elastic Beanstalk コンソールを使用した環境ヘルスログのストリーミング

環境ヘルスログを CloudWatch Logs にストリーミングするには
  1. Elastic Beanstalk コンソールを開き、[Regions] (リージョン) リストで AWS リージョンを選択します。

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

    注記

    環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。

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

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

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

  6. [Health event streaming to CloudWatch Logs] の下で

    • [Log streaming] を有効にします。

    • [Retention] でログを保存する日数を指定します。

    • 環境が終了した後にログを保存するかどうかを決定する [Lifecycle] 設定を選択します。

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

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

EB CLI を使用した環境ヘルスログのストリーミング

EB CLI を使用して環境ヘルスログストリーミングを CloudWatch Logs に有効にするには、eb logs コマンドを使用します。

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

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

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

設定ファイルを使用した環境ヘルスログのストリーミング

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

ヘルスストリーミング設定ファイル
############################################################################ ## 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 を参照してください。