Application Load Balancer のアクセスログ - Elastic Load Balancing

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

Application Load Balancer のアクセスログ

Elastic Load Balancing は、ロードバランサーに送信されるリクエストについての詳細情報をキャプチャしたアクセスログを提供します。各ログには、リクエストを受け取った時刻、クライアントの IP アドレス、レイテンシー、リクエストのパス、サーバーレスポンスなどの情報が含まれます。これらのアクセスログを使用して、トラフィックパターンを分析し、問題のトラブルシューティングを行えます。

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

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

アクセスログファイル

Elastic Load Balancing は各ロードバランサーノードのログファイルを 5 分ごとに発行します。ログ配信には結果整合性があります。ロードバランサーでは、同じ期間について複数のログが発行されることがあります。これは通常、サイトに高トラフィックがある場合に発生します。

アクセスログのファイル名には次の形式を使用します。

bucket[/prefix]/AWSLogs/aws-account-id/elasticloadbalancing/region/yyyy/mm/dd/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://my-bucket/my-prefix/AWSLogs/123456789012/elasticloadbalancing/us-east-2/2022/05/01/123456789012_elasticloadbalancing_us-east-2_app.my-loadbalancer.1234567890abcdef_20220215T2340Z_172.160.001.192_20sg8hgm.log.gz

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

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

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

アクセスログのエントリ

Elastic Load Balancing は、ターゲットに到達しなかったリクエストを含め、ロードバランサーに送信されたリクエストを記録します。たとえば、クライアントが誤った形式のリクエストを送信した場合や、リクエストに応答できる正常に動作しているターゲットがない場合も、そのリクエストは記録されます。Elastic Load Balancing はヘルスチェックリクエストをログに記録しません。

各ログエントリには、ロードバランサーに対して行われた単一のリクエスト (または の場合は接続 WebSockets) の詳細が含まれます。の場合 WebSockets、エントリは接続が閉じられた後にのみ書き込まれます。アップグレードされた接続を確立できない場合、エントリは HTTPまたは HTTPSリクエストの場合と同じです。

重要

Elastic Load Balancing はベストエフォートベースでリクエストを記録します アクセスログは、すべてのリクエストを完全に報告するためのものではなく、リクエストの本質を把握するものとして使用することをお勧めします。

構文

次の表は、アクセスログのエントリのフィールドを順に示しています。すべてのフィールドはスペースで区切られています。新しいフィールドが導入されると、ログエントリの最後に追加されます。予期していなかったログエントリの最後のフィールドは無視する必要があります。

フィールド 説明

type

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

  • http — HTTP

  • https — HTTP経由 TLS

  • h2 — 経由の HTTP/2 TLS

  • grpcs— gRPC over TLS

  • ws — WebSockets

  • wss — WebSockets オーバー TLS

time

ロードバランサーがクライアントに 8601 ISO 形式のレスポンスを生成した時刻。の場合 WebSockets、これは接続が閉じられた時刻です。

elb

ロードバランサーのリソース ID。アクセスログエントリを解析する場合は、リソースにスラッシュ (/) を含めるIDsことができることに注意してください。

client:port

リクエストを送信したクライアントの IP アドレスとポート。ロードバランサーの前にプロキシがある場合、このフィールドにはプロキシの IP アドレスが含まれています。

target:port

このリクエストを処理したターゲットの IP アドレスとポート。

クライアントがリクエスト全体を送信しなかった場合、ロードバランサーはターゲットにリクエストをディスパッチできず、この値が - に設定されます。

ターゲットが Lambda 関数の場合、この値は - に設定されます。

リクエストが によってブロックされている場合 AWS WAF、この値は - に設定され、elb_status_code の値は 403 に設定されます。

request_processing_time

ロードバランサーがリクエストを受け取った時点からターゲットにリクエストを送信するまでの合計経過時間 (ミリ秒精度の秒単位)。

ロードバランサーがリクエストをターゲットにディスパッチできない場合、この値は -1 に設定されます。この状況が発生するのは、ターゲットがアイドルタイムアウト前に接続を閉じた場合か、クライアントが誤った形式のリクエストを送信した場合です。

この値は、10 秒TCPの接続タイムアウトに達する前にターゲットとTCPの接続を確立できない場合にも -1 に設定できます。

Application Load Balancer で AWS WAF が有効になっているか、ターゲットタイプが Lambda 関数の場合、クライアントがPOSTリクエストに必要なデータを送信するのにかかる時間は にカウントされますrequest_processing_time

target_processing_time

ロードバランサーがターゲットにリクエストを送信した時点から、そのターゲットが応答ヘッダーの送信を開始した時点までの合計経過時間 (ミリ秒精度の秒単位)。

ロードバランサーがリクエストをターゲットにディスパッチできない場合、この値は -1 に設定されます。この状況が発生するのは、ターゲットがアイドルタイムアウト前に接続を閉じた場合か、クライアントが誤った形式のリクエストを送信した場合です。

登録済みターゲットからアイドルタイムアウトまで応答がない場合にも、この値は -1 に設定される場合があります。

AWS WAF が Application Load Balancer に対して有効になっていない場合、クライアントがPOSTリクエストに必要なデータを送信するのにかかる時間は にカウントされますtarget_processing_time

response_processing_time

ロードバランサーがターゲットから応答ヘッダーを受け取った時点から、クライアントへの応答の送信を開始した時点までの合計経過時間 (ミリ秒精度の秒単位)。これには、ロードバランサーでの待機時間と、ロードバランサーからクライアントへの接続の取得時間の両方が含まれます。

ロードバランサーがターゲットから応答を受け取らない場合、この値は -1 に設定されます。この状況が発生するのは、ターゲットがアイドルタイムアウト前に接続を閉じた場合か、クライアントが誤った形式のリクエストを送信した場合です。

elb_status_code

ロードバランサー、固定レスポンスルール、またはブロックアクションの AWS WAF カスタムレスポンスコードによって生成されたレスポンスのステータスコード。

target_status_code

ターゲットから応答のステータスコード。この値は、ターゲットへの接続が確立され、ターゲットが応答を送信した場合のみ記録されます。それ以外の場合は、- に設定されます。

received_bytes

クライアント (リクエスタ) から受け取ったリクエストのサイズ (バイト単位)。HTTP リクエストの場合、これには ヘッダーが含まれます。の場合 WebSockets、これは接続でクライアントから受信した合計バイト数です。

sent_bytes

クライアント (リクエスタ) に返される応答のサイズ (バイト単位)。HTTP リクエストの場合、これには ヘッダーが含まれます。の場合 WebSockets、これは接続でクライアントに送信された合計バイト数です。

"request"

クライアントからのリクエスト行。二重引用符で囲まれ、次の形式を使用してログに記録されます: HTTP method + protocol://host:port/uri + HTTP version。ロードバランサーは、リクエスト を記録するときに、クライアントからURL送信された をそのまま保持しますURI。アクセスログファイルのコンテンツタイプは設定されません。このフィールドを処理するときは、クライアントが をどのように送信したかを検討してくださいURL。

"user_agent"

リクエスト元のクライアントを特定する User-Agent 文字列 (二重引用符で囲まれます)。この文字列は、1 つ以上の製品 ID (製品[/バージョン]) から構成されます。文字列が 8 KB より長い場合は切り捨てられます。

ssl_cipher

〔HTTPS リスナー] SSL 暗号。リスナーがリスナーでない場合、この値は - に設定されますHTTPS。

ssl_protocol

〔HTTPS リスナー] SSLプロトコル。リスナーがリスナーでない場合、この値は - に設定されますHTTPS。

target_group_arn

ターゲットグループの Amazon リソースネーム (ARN)。

"trace_id"

X-Amzn-Trace-Id ヘッダーのコンテンツ (二重引用符で囲まれます)。

"domain_name"

〔HTTPSリスナー] TLSハンドシェイク中にクライアントによって提供され、二重引用符で囲まれたSNIドメイン。この値は に設定されます。クライアントが をサポートしていない場合、SNIまたはドメインが証明書と一致しない場合、デフォルトの証明書がクライアントに提示されます。

"chosen_cert_arn"

〔HTTPSリスナー] クライアントに提示された証明書ARNの で、二重引用符で囲まれています。セッションが再利用される場合、この値は session-reused に設定されます。リスナーがリスナーでない場合、この値は - に設定されますHTTPS。

matched_rule_priority

リクエストに一致したルールの優先度の値。ルールが一致した場合、この値は 1~50,000 になります。一致するルールがなく、デフォルトのアクションが実行された場合、この値は 0 に設定されます。ルールの評価中にエラーが発生した場合は、-1 に設定されます。その他のエラーの場合は、- に設定されます。

request_creation_time

ロードバランサーがクライアントからリクエストを 8601 ISO 形式で受信した時刻。

"actions_executed"

リクエストの処理時に実行されるアクション (二重引用符で囲まれます)。この値は、実行されるアクション で説明されている値を含めることができるカンマ区切りリストです。形式が正しくないリクエストなどでアクションが実行されない場合、この値は - に設定されます。

"redirect_url"

二重引用符で囲まれたHTTPレスポンスの場所ヘッダーのURLリダイレクトターゲットの 。リダイレクトアクションが実行されなかった場合、この値は - に設定されます。

"error_reason"

エラー理由コード (二重引用符で囲まれます)。リクエストが失敗した場合、これは エラー理由コード で説明されているいずれかのエラーコードになります。実行されたアクションが認証アクションを含まない、またはターゲットが Lambda 関数ではない場合、この値は - に設定されます。

"target:port_list"

このリクエストを処理したターゲットの IP アドレスとポートのスペース区切りのリスト (二重引用符で囲まれます)。現在、このリストには 1 つの項目を含めることができ、target:port フィールドと一致します。

クライアントがリクエスト全体を送信しなかった場合、ロードバランサーはターゲットにリクエストをディスパッチできず、この値が - に設定されます。

ターゲットが Lambda 関数の場合、この値は - に設定されます。

リクエストが によってブロックされている場合 AWS WAF、この値は - に設定され、elb_status_code の値は 403 に設定されます。

"target_status_code_list"

ターゲットの応答からのステータスコードのスペース区切りのリスト (二重引用符で囲まれます)。現在、このリストには 1 つの項目を含めることができ、target_status_code フィールドと一致します。

この値は、ターゲットへの接続が確立され、ターゲットが応答を送信した場合のみ記録されます。それ以外の場合は、- に設定されます。

"classification"

desync 緩和の分類 (二重引用符で囲まれます)。リクエストが 7230 RFC に準拠していない場合、指定できる値は Acceptable、Ambiguous、Severe です。

リクエストが 7230 RFC に準拠している場合、この値は - に設定されます。

"classification_reason"

分類理由コード (二重引用符で囲まれます)。リクエストが 7230 RFC に準拠していない場合、これは で説明されている分類コードの 1 つです分類の理由。リクエストが 7230 RFC に準拠している場合、この値は - に設定されます。

conn_trace_id

接続のトレーサビリティ ID は、各接続を識別するために使用される一意の不透明な ID です。クライアントとの接続が確立されると、このクライアントからの後続のリクエストには、それぞれのアクセスログエントリにこの ID が含まれます。この ID は、接続ログとアクセスログ間のリンクを作成するための外部キーとして機能します。

実行されるアクション

ロードバランサーは、実行されたアクションをアクセスログの actions_executed フィールドに格納します。

  • authenticate — ロードバランサーは、ルール設定で指定されているように、セッションを検証し、ユーザーを認証し、ユーザー情報をリクエストヘッダーに追加しました。

  • fixed-response — ロードバランサーは、ルール設定で指定された固定レスポンスを発行しました。

  • forward — ロードバランサーは、ルール設定で指定されているように、リクエストをターゲットに転送しました。

  • redirect — ロードバランサーはURL、ルール設定で指定された別の にリクエストをリダイレクトしました。

  • waf — ロードバランサーは、リクエストをターゲットに転送する必要があるかどうかを判別するために、リクエストを AWS WAF に転送しました。これが最後のアクションである場合、 はリクエストを拒否する必要がある AWS WAF と判断しました。デフォルトでは、 によって拒否されたリクエスト AWS WAF は elb_status_codeフィールドに「403」として記録されます。 AWS WAF がカスタムレスポンスコードでリクエストを拒否するように設定されている場合、 elb_status_codeフィールドには設定されたレスポンスコードが反映されます。

  • waf-failed — ロードバランサーはリクエストを に転送しようとしましたが AWS WAF、このプロセスは失敗しました。

分類の理由

リクエストが 7230 RFC に準拠していない場合、ロードバランサーはアクセスログの classification_reason フィールドに次のいずれかのコードを保存します。詳細については、「Desync 軽減モード」を参照してください。

コード 説明 分類

AmbiguousUri

リクエストURIにはコントロール文字が含まれています。

Ambiguous

BadContentLength

Content-Length ヘッダーに解析できない値または無効な数値が含まれています。

Severe

BadHeader

ヘッダーに NULL 文字またはキャリッジリターンが含まれています。

Severe

BadTransferEncoding

Transfer-Encoding ヘッダーに不正な値が含まれています。

Severe

BadUri

リクエストに null 文字またはキャリッジリターンURIが含まれています。

Severe

BadMethod

リクエストメソッドの形式が正しくありません。

Severe

BadVersion

リクエストバージョンの形式が正しくありません。

Severe

BothTeClPresent

リクエストに Transfer-Encoding ヘッダーと Content-Length ヘッダーの両方が含まれています。

Ambiguous

DuplicateContentLength

同じ値を持つ複数の Content-Length ヘッダーがあります。

Ambiguous

EmptyHeader

ヘッダーが空であるか、スペースのみを含む行があります。

Ambiguous

GetHeadZeroContentLength

GET または HEADリクエストの値が 0 の Content-Length ヘッダーがあります。

Acceptable

MultipleContentLength

異なる値を持つ複数の Content-Length ヘッダーがあります。

Severe

MultipleTransferEncodingChunked

複数の Transfer-Encoding: chunked ヘッダーがあります。

Severe

NonCompliantHeader

ヘッダーには、 または ASCII以外のコントロール文字が含まれます。

Acceptable

NonCompliantVersion

リクエストバージョンに不正な値が含まれています。

Acceptable

SpaceInUri

リクエストには、URLエンコードされていないスペースURIが含まれています。

Acceptable

SuspiciousHeader

一般的なテキスト正規化技術を使用して、Transfer-Encoding または Content-Length に正規化できるヘッダーがあります。

Ambiguous

UndefinedContentLengthSemantics

GET または HEADリクエストに Content-Length ヘッダーが定義されています。

Ambiguous

UndefinedTransferEncodingSemantics

Transfer-Encoding ヘッダーは、 GETまたは HEADリクエストに対して定義されています。

Ambiguous

エラー理由コード

ロードバランサーが認証アクションを完了できない場合、ロードバランサーはアクセスログの error_reason フィールドに次のいずれかの理由コードを保存します。ロードバランサーは、対応する CloudWatch メトリクスもインクリメントします。詳細については、「Application Load Balancer を使用してユーザーを認証する」を参照してください。

コード 説明 メトリクス

AuthInvalidCookie

認証 Cookie が無効です。

ELBAuthFailure

AuthInvalidGrantError

トークンエンドポイントからの認証付与コードが無効です。

ELBAuthFailure

AuthInvalidIdToken

ID トークンが無効です。

ELBAuthFailure

AuthInvalidStateParam

状態パラメータが無効です。

ELBAuthFailure

AuthInvalidTokenResponse

トークンエンドポイントからのレスポンスが無効です。

ELBAuthFailure

AuthInvalidUserinfoResponse

ユーザー情報エンドポイントからのレスポンスが無効です。

ELBAuthFailure

AuthMissingCodeParam

認証エンドポイントからの認証レスポンスに、「code」という名前のクエリパラメータがありません。

ELBAuthFailure

AuthMissingHostHeader

認証エンドポイントからの認証レスポンスに、ホストヘッダーフィールドがありません。

ELBAuthError

AuthMissingStateParam

認証エンドポイントからの認証レスポンスに、「state」という名前のクエリパラメータがありません。

ELBAuthFailure

AuthTokenEpRequestFailed

トークンエンドポイントからエラーレスポンス (2XX 以外) があります。

ELBAuthError

AuthTokenEpRequestTimeout

ロードバランサーは、トークンエンドポイントと通信できません。

ELBAuthError

AuthUnhandledException

ロードバランサーで処理されない例外が発生しました。

ELBAuthError

AuthUserinfoEpRequestFailed

IdP ユーザー情報エンドポイントからエラーレスポンス (2XX 以外) があります。

ELBAuthError

AuthUserinfoEpRequestTimeout

ロードバランサーは、IdP ユーザー情報エンドポイントと通信できません。

ELBAuthError

AuthUserinfoResponseSizeExceeded

IdP から返されたクレームのサイズが 11K バイトを超えました。

ELBAuthUserClaimsSizeExceeded

加重ターゲットグループへのリクエストが失敗した場合、ロードバランサーはアクセスログの error_reason フィールドに次のいずれかのエラーコードを保存します。

コード 説明

AWSALBTGCookieInvalid

加重ターゲットグループで使用される AWSALBTG Cookie は無効です。例えば、Cookie 値がURLエンコードされると、ロードバランサーはこのエラーを返します。

WeightedTargetGroupsUnhandledException

ロードバランサーで処理されない例外が発生しました。

Lambda 関数へのリクエストが失敗した場合、ロードバランサーはアクセスログの error_reason フィールドに次のいずれかの理由コードを保存します。ロードバランサーは、対応する CloudWatch メトリクスもインクリメントします。詳細については、Lambda 呼び出しアクションを参照してください。

コード 説明 メトリクス

LambdaAccessDenied

ロードバランサーに、Lambda 関数を呼び出すアクセス権限がありませんでした。

LambdaUserError

LambdaBadRequest

クライアントリクエストヘッダーまたは本文に UTF-8 文字のみが含まれていなかったため、Lambda 呼び出しに失敗しました。

LambdaUserError

LambdaConnectionError

ロードバランサーが Lambda に接続できません。

LambdaInternalError

LambdaConnectionTimeout

Lambda への接続がタイムアウトしました。

LambdaInternalError

LambdaEC2AccessDeniedException

Amazon は、関数の初期化中に Lambda へのアクセスEC2を拒否しました。

LambdaUserError

LambdaEC2ThrottledException

Amazon は関数の初期化中に Lambda EC2をスロットリングしました。

LambdaUserError

LambdaEC2UnexpectedException

Amazon で関数の初期化中に予期しない例外EC2が発生しました。

LambdaUserError

LambdaENILimitReachedException

ネットワークインターフェイスの制限を超えたため、Lambda は Lambda 関数の設定でVPC指定された にネットワークインターフェイスを作成できませんでした。

LambdaUserError

LambdaInvalidResponse

Lambda 関数からのレスポンスの形式が間違っているか、必須フィールドが含まれていません。

LambdaUserError

LambdaInvalidRuntimeException

指定されたバージョンの Lambda ランタイムはサポートされていません。

LambdaUserError

LambdaInvalidSecurityGroupIDException

Lambda 関数の設定で指定されたセキュリティグループ ID が無効です。

LambdaUserError

LambdaInvalidSubnetIDException

Lambda 関数の設定で指定されたサブネット ID が無効です。

LambdaUserError

LambdaInvalidZipFileException

Lambda は指定された関数の zip ファイルを解凍できませんでした。

LambdaUserError

LambdaKMSAccessDeniedException

KMS キーへのアクセスが拒否されたため、Lambda は環境変数を復号できませんでした。Lambda 関数のKMSアクセス許可を確認します。

LambdaUserError

LambdaKMSDisabledException

指定されたKMSキーが無効になっているため、Lambda は環境変数を復号できませんでした。Lambda 関数のKMSキー設定を確認します。

LambdaUserError

LambdaKMSInvalidStateException

KMS キーの状態が無効であるため、Lambda は環境変数を復号できませんでした。Lambda 関数のKMSキー設定を確認します。

LambdaUserError

LambdaKMSNotFoundException

KMS キーが見つからなかったため、Lambda は環境変数を復号できませんでした。Lambda 関数のKMSキー設定を確認します。

LambdaUserError

LambdaRequestTooLarge

リクエストボディのサイズは 1 MB を超えています。

LambdaUserError

LambdaResourceNotFound

Lambda 関数は見つかりませんでした。

LambdaUserError

LambdaResponseTooLarge

レスポンスのサイズは 1 MB を超えています。

LambdaUserError

LambdaServiceException

Lambda 内部エラーが発生しました。

LambdaInternalError

LambdaSubnetIPAddressLimitReachedException

1 つ以上のサブネットに使用可能な IP アドレスがないため、Lambda は Lambda 関数VPCへのアクセスを設定できませんでした。

LambdaUserError

LambdaThrottling

リクエストが多すぎるため、Lambda 関数が調整されました。

LambdaUserError

LambdaUnhandled

Lambda 関数で処理されない例外が発生しました。

LambdaUserError

LambdaUnhandledException

ロードバランサーで処理されない例外が発生しました。

LambdaInternalError

LambdaWebsocketNotSupported

WebSockets は Lambda ではサポートされていません。

LambdaUserError

ロードバランサーは、 へのリクエストの転送時にエラーが発生した場合 AWS WAF、次のいずれかのエラーコードをアクセスログの error_reason フィールドに保存します。

コード 説明

WAFConnectionError

ロードバランサーは に接続できません AWS WAF。

WAFConnectionTimeout

への接続がタイムアウト AWS WAF しました。

WAFResponseReadTimeout

へのリクエストがタイムアウト AWS WAF しました。

WAFServiceError

AWS WAF は 5XX エラーを返しました。

WAFUnhandledException

ロードバランサーで処理されない例外が発生しました。

ログエントリの例

以下にログエントリの例を示します。読みやすくするためだけの目的で、テキストは複数の行に表示されています。

HTTP エントリの例

以下は、HTTPリスナー (ポート 80 からポート 80) のログエントリの例です。

http 2018-07-02T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 192.168.131.39:2817 10.0.0.1:80 0.000 0.001 0.000 200 200 34 366 "GET http://www.example.com:80/ HTTP/1.1" "curl/7.46.0" - - arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337262-36d228ad5d99923122bbe354" "-" "-" 0 2018-07-02T22:22:48.364000Z "forward" "-" "-" "10.0.0.1:80" "200" "-" "-"
HTTPS エントリの例

HTTPS リスナー (ポート 443 からポート 80) のログエントリの例を次に示します。

https 2018-07-02T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 192.168.131.39:2817 10.0.0.1:80 0.086 0.048 0.037 200 200 0 57 "GET https://www.example.com:443/ HTTP/1.1" "curl/7.46.0" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337281-1d84f3d73c47ec4e58577259" "www.example.com" "arn:aws:acm:us-east-2:123456789012:certificate/12345678-1234-1234-1234-123456789012" 1 2018-07-02T22:22:48.364000Z "authenticate,forward" "-" "-" "10.0.0.1:80" "200" "-" "-" TID_123456
例 HTTP/2 エントリ

以下は、HTTP/2 ストリームのログエントリの例です。

h2 2018-07-02T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 10.0.1.252:48160 10.0.0.66:9000 0.000 0.002 0.000 200 200 5 257 "GET https://10.0.2.105:773/ HTTP/2.0" "curl/7.46.0" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337327-72bd00b0343d75b906739c42" "-" "-" 1 2018-07-02T22:22:48.364000Z "redirect" "https://example.com:80/" "-" "10.0.0.66:9000" "200" "-" "-"
WebSockets エントリの例

WebSockets 接続のログエントリの例を次に示します。

ws 2018-07-02T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 10.0.0.140:40914 10.0.1.192:8010 0.001 0.003 0.000 101 101 218 587 "GET http://10.0.0.30:80/ HTTP/1.1" "-" - - arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337364-23a8c76965a2ef7629b185e3" "-" "-" 1 2018-07-02T22:22:48.364000Z "forward" "-" "-" "10.0.1.192:8010" "101" "-" "-"
セキュア WebSockets エントリの例

以下は、セキュリティで保護された WebSockets接続のログエントリの例です。

wss 2018-07-02T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 10.0.0.140:44244 10.0.0.171:8010 0.000 0.001 0.000 101 101 218 786 "GET https://10.0.0.30:443/ HTTP/1.1" "-" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337364-23a8c76965a2ef7629b185e3" "-" "-" 1 2018-07-02T22:22:48.364000Z "forward" "-" "-" "10.0.0.171:8010" "101" "-" "-"
Lambda の関数のエントリの例。

成功した Lambda 関数へのリクエストのログエントリ例を次に示します。

http 2018-11-30T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 192.168.131.39:2817 - 0.000 0.001 0.000 200 200 34 366 "GET http://www.example.com:80/ HTTP/1.1" "curl/7.46.0" - - arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337364-23a8c76965a2ef7629b185e3" "-" "-" 0 2018-11-30T22:22:48.364000Z "forward" "-" "-" "-" "-" "-" "-"

失敗した Lambda 関数へのリクエストのログエントリ例を次に示します。

http 2018-11-30T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 192.168.131.39:2817 - 0.000 0.001 0.000 502 - 34 366 "GET http://www.example.com:80/ HTTP/1.1" "curl/7.46.0" - - arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337364-23a8c76965a2ef7629b185e3" "-" "-" 0 2018-11-30T22:22:48.364000Z "forward" "-" "LambdaInvalidResponse" "-" "-" "-" "-"

アクセスログファイルの処理

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

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

  • Amazon Athena は、標準 を使用して Amazon S3 内のデータを簡単に分析できるインタラクティブなクエリサービスですSQL。詳細については、Amazon Athena ユーザーガイドQuerying Application Load Balancer logs を参照してください。

  • Loggly

  • Splunk

  • Sumo logic