View a markdown version of this page

ヘルスチェックログ - Elastic Load Balancing

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

ヘルスチェックログ

Elastic Load Balancing は、ヘルスチェックが失敗した場合の失敗の理由など、登録されたターゲットのヘルスチェックステータスに関する詳細情報をキャプチャするヘルスチェックログを提供します。ヘルスチェックログは、EC2 インスタンス、IP アドレス、Lambda 関数ターゲットでサポートされています。各ログエントリには、ヘルスチェックのリクエストタイプまたは接続、タイムスタンプ、ターゲットアドレス、ターゲットグループ ID、ヘルスステータス、理由コードなどの情報が含まれます。これらのヘルスチェックログを使用して、ターゲットのヘルスパターンの分析、ヘルス遷移のモニタリング、問題のトラブルシューティングを行うことができます。

ヘルスチェックログは、デフォルトで無効になっているオプション機能です。ロードバランサーのヘルスチェックログを有効にすると、Elastic Load Balancing はログをキャプチャし、指定した Amazon S3 バケットに圧縮ファイルとして保存します。ヘルスチェックログはいつでも無効にできます。

Amazon S3 のストレージコストは発生しますが、Amazon S3 にログファイルを送信するために Elastic Load Balancing が使用する帯域については料金は発生しません。ストレージコストの詳細については、Amazon S3 の料金を参照してください。

ヘルスチェックログファイル

Elastic Load Balancing は各ロードバランサーノードのログファイルを 5 分ごとに発行します。ロードバランサーは、多数のターゲットがロードバランサーにアタッチされているか、小さなヘルスチェック間隔が設定されている場合 (5 秒ごとなど)、同じ期間に複数のログを配信できます。

ヘルスチェックログのファイル名は、次の形式を使用します。

bucket[/prefix]/AWSLogs/aws-account-id/elasticloadbalancing/region/yyyy/mm/dd/health_check_log_aws-account-id_elasticloadbalancing_region_app.load-balancer-id_end-time_ip-address_random-string.log.gz
bucket (バケット)

S3 バケットの名前。

prefix

(オプション)バケットのプレフィックス (論理階層)。指定するプレフィックスに文字列 AWSLogs を含めることはできません。詳細については、「プレフィックスを使用してオブジェクトを整理する」を参照してください。

AWSLogs

指定したバケット名とオプションのプレフィックスの後に、AWSLogs で始まるファイル名部分が追加されます。

aws-account-id

所有者の AWS アカウント ID。

region

ロードバランサーおよび S3 バケットのリージョン。

yyyy/mm/dd

ログが配信された日付。

load-balancer-id

ロードバランサーのリソース ID。リソース ID にスラッシュ (/) が含まれている場合、ピリオド (.) に置換されます。

end-time

ログ作成の間隔が終了した日時。たとえば、終了時間 20140215T2340Z には、UTC または Zulu 時間の 23:35~23:40 に行われたリクエストのエントリが含まれます。

ip-address

リクエストを処理したロードバランサーノードの IP アドレス。内部ロードバランサーの場合、プライベート IP アドレスです。

random-string

システムによって生成されたランダム文字列。

「」をプレフィックスとするログファイル名の例を次に示します。

s3://amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/elasticloadbalancing/us-east-2/2022/05/01/health_check_log_123456789012_elasticloadbalancing_us-east-2_app.my-loadbalancer.1234567890abcdef_20220215T2340Z_172.160.001.192_20sg8hgm.log.gz

プレフィックスが付いていないログファイル名の例は次のようになります。

s3://amzn-s3-demo-logging-bucket/AWSLogs/123456789012/elasticloadbalancing/us-east-2/2022/05/01/health_check_log_123456789012_elasticloadbalancing_us-east-2_app.my-loadbalancer.1234567890abcdef_20220215T2340Z_172.160.001.192_20sg8hgm.log.gz

必要な場合はログファイルを自身のバケットに保管できますが、ログファイルを自動的にアーカイブまたは削除するにように Amazon S3 ライフサイクルルールを定義することもできます。詳細については、「Amazon S3 ユーザーガイド」の「オブジェクトのライフサイクル管理」を参照してください。

ヘルスチェックログエントリ

Elastic Load Balancing は、そのロードバランサーのすべての登録済みターゲットの失敗理由など、ターゲットのヘルスチェック結果をログに記録します。各ログエントリには、登録されたターゲットに対して行われた単一のヘルスチェック結果の詳細が含まれます。

構文

次の表は、ヘルスチェックログエントリのフィールドを順番にまとめたものです。すべてのフィールドはスペースで区切られています。新しいフィールドを追加すると、ログエントリの末尾に追加されます。新しいフィールドをリリースする準備をすると、フィールドがリリースされる前に、末尾に追加の「-」が表示されることがあります。最後に文書化されたフィールドの後に停止するようにログ解析を設定し、新しいフィールドをリリースした後にログ解析を更新してください。

フィールド (位置) 説明

タイプ (1)

ヘルスチェックリクエストまたは接続のタイプ。有効な値は次のとおりです (その他の値は無視してください)。

  • http -- HTTP

  • https -- TLS 経由の HTTP

  • h2 -- TLS 経由の HTTP/2

  • grpc -- gRPC

  • lambda -- Lambda 関数

時間 (2)

ターゲットでヘルスチェックが開始された時刻の ISO 8601 形式のタイムスタンプ。

レイテンシー (3)

現在のヘルスチェックを完了するまでの合計経過時間 (秒単位)。

target_addr (4)

IP:Port 形式のターゲットの IP アドレスとポート。ターゲットが Lambda 関数である場合の Lambda の ARN。

target_group_id (5)

ターゲットが関連付けられているターゲットグループの名前。

ステータス (6)

ヘルスチェックのステータス。この値は、 PASS ヘルスチェックが成功した場合です。ヘルスチェックが失敗した場合、値は です。 FAIL

status_code (7)

ヘルスチェックリクエストのターゲットから受信したレスポンスコード。

reason_code (8)

ヘルスチェックが失敗した場合の失敗の理由。「エラー理由コード」を参照してください。

エラー理由コード

ターゲットヘルスチェックが失敗した場合、ロードバランサーはヘルスチェックログに次のいずれかの理由コードを記録します。

コード 説明

RequestTimedOut

レスポンスの待機中にヘルスチェックリクエストがタイムアウトしました

ConnectionTimedOut

TCP 接続の試行がタイムアウトしたため、ヘルスチェックに失敗しました

ConnectionReset

接続のリセットによりヘルスチェックに失敗しました

ResponseCodeMismatch

ヘルスチェックリクエストに対するターゲットのレスポンスの HTTP ステータスコードが、設定されたステータスコードと一致しませんでした

ResponseStringMismatch

ターゲットから返されたレスポンス本文に、ターゲットグループのヘルスチェック設定で設定された文字列が含まれていませんでした

InternalError

内部ロードバランサーエラー

TargetError

ターゲットは、ヘルスチェックリクエストに応答して 5xx エラーコードを返す

GRPCStatusHeaderEmpty

GRPC ターゲットレスポンスに値のない grpc-status ヘッダーがある

GRPCUnexpectedStatus

GRPC ターゲットが予期しない grpc-status で応答する

ログエントリの例

ヘルスチェックログエントリの例を次に示します。読みやすくするためだけの目的で、サンプルテキストは複数の行に表示されています。

以下は、正常なヘルスチェックのログエントリの例です。

http 2025-10-31T12:44:59.875678Z 0.019584011 172.31.20.97:80 HCLogsTestIPs PASS 200 -

以下は、失敗したヘルスチェックのログエントリの例です。

http 2025-10-31T12:44:58.901409Z 1.121980746 172.31.31.9:80 HCLogsTestIPs FAIL 502 TargetError

ログ配信通知を設定する

Elastic Load Balancing が S3 バケットにログを配信するときに通知を受け取るには、Amazon S3 イベント通知を使用します。Elastic Load Balancing は、PutObjectCreateMultipartUpload、および POST Object を使用して Amazon S3 にログを配信します。すべてのログ配信通知を確実に受信するには、これらのオブジェクト作成イベントをすべて設定に含めます。

詳細については、「Amazon Simple Storage Service ユーザーガイド」の「Amazon S3 イベント通知」を参照してください。

ヘルスチェックログファイルの処理

ヘルスチェックログファイルは圧縮されます。ファイルをダウンロードする場合、情報を表示するには解凍する必要があります。

ウェブサイトの需要が大きい場合は、ロードバランサーによって数 GB のデータ量のログファイルが生成されることがあります。このような大容量のデータは、行単位で処理できない場合があります。このため、場合によっては、並列処理ソリューションを提供する分析ツールを使用する必要があります。たとえば、次の分析ツールを使用してヘルスチェックログを分析および処理できます。

  • 「Amazon Athena」は、Amazon S3 内のデータを標準 SQL を使用して簡単に分析できるインタラクティブなクエリサービスです。

  • Loggly

  • Splunk

  • Sumo logic