アクセスログの設定
https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/classic/access-log-collection.html?icmpid=docs_elb_console
ロードバランサーのアクセスログをS3バケットに出力することが可能
出力頻度と出力先のバケットを指定します
「この場所を作成」にチェックを入れると自動でELBポリシーが設定されたバケットが作成されます
{
"Version": "2012-10-17",
"Id": "AWSConsole-AccessLogs-Policy-*******",
"Statement": [
{
"Sid": "AWSConsoleStmt-******",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::******:root"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::**********/AWSLogs/********/*"
}
]
}
間隔を 5 分に設定すると、ログは、1:05、1:10、1:15、のように発行されます。
ログの配信開始は、間隔が 5 分に設定されている場合は最大 5 分の遅延があり、間隔が 60 分に設定されている場合は最大 15 分の遅延があります。
発行間隔はいつでも変更できます。
ロードバランサーでは、同じ期間について複数のログが発行されることがあります。
これは通常、サイトのトラフィックが大量である場合、ロードバランサーノードが複数ある場合、およびログ発行間隔が短い場合に発生します。
アクセスログのファイル名には次の形式を使用
bucket[/prefix]/AWSLogs/aws-account-id/elasticloadbalancing/region/yyyy/mm/dd/aws-account-id_elasticloadbalancing_region_load-balancer-name_end-time_ip-address_random-string.log
- ucket
S3 バケットの名前。 - プレフィックス
バケットのプレフィックス (論理階層)。プレフィックスを指定しない場合、ログはバケットのルートレベルに配置されます。 - aws-account-id
所有者の AWS アカウント ID - リージョン
ロードバランサーおよび S3 バケットのリージョン - yyyy/mm/dd
ログが配信された日付 - load-balancer-name
ロードバランサーの名前 - end-time
ログ作成の間隔が終了した日時。
たとえば、発行間隔が 5 分の場合、終了時刻が 20140215T2340Z であれば 23:35 から 23:40 の間に作成されたリクエストに関するエントリが含まれています。 - ip-address
リクエストを処理したロードバランサーノードの IP アドレス。
内部ロードバランサーの場合、プライベート IP アドレスです。 - random-string
システムによって生成されたランダム文字列。
ログフォーマット
timestamp elb client:port backend:port request_processing_time backend_processing_time response_processing_time elb_status_code backend_status_code received_bytes sent_bytes "request" "user_agent" ssl_cipher ssl_protocol
- timestamp
ロードバランサーがクライアントからリクエストを受け取った時刻 - elb
ロードバランサーの名前 - client:port
リクエストを送信したクライアントの IP アドレスとポート - backend:port
このリクエストを処理した登録済みインスタンスの IP アドレスとポート
ロードバランサーが登録されたインスタンスにリクエストを送信できない場合、または応答が送信される前にインスタンスが接続を閉じた場合、この値は - に設定されます。
登録済みインスタンスからアイドルタイムアウトまで応答がない場合にも、この値は - に設定される場合があります。 - request_processing_time
[HTTP リスナー] ロードバランサーがリクエストを受け取った時点から登録済みインスタンスに送信するまでの合計経過時間 (秒単位)。
[TCPリスナー] ロードバランサーがクライアントから TCP/SSL 接続を受け入れた時点から、ロードバランサーがデータの最初のバイトを登録されたインスタンスに送信するまでの合計経過時間 (秒単位)
ロードバランサーがリクエストを登録済みインスタンスにディスパッチできない場合、この値は -1 に設定されます。この状況が発生するのは、登録済みインスタンスがアイドルタイムアウト前に接続を閉じた場合か、クライアントが誤った形式のリクエストを送信した場合です。
さらに、TCP リスナーの場合、クライアントがロードバランサーと接続を確立するが、データを送信しない場合にもこの状況が発生する可能性があります。
登録済みインスタンスからアイドルタイムアウトまで応答がない場合にも、この値は -1 に設定される場合があります。 - backend_processing_time
(HTTP リスナーの場合) ロードバランサーが登録済みインスタンスにリクエストを送信した時点から、そのインスタンスが応答ヘッダーの送信を開始した時点までの合計経過時間 (秒単位)。
[TCP リスナー] ロードバランサーが、登録済みインスタンスへの接続を正常に確立するまでの合計経過時間 (秒)。
ロードバランサーがリクエストを登録済みインスタンスにディスパッチできない場合、この値は -1 に設定されます。
この状況が発生するのは、登録済みインスタンスがアイドルタイムアウト前に接続を閉じた場合か、クライアントが誤った形式のリクエストを送信した場合です。
登録済みインスタンスからアイドルタイムアウトまで応答がない場合にも、この値は -1 に設定される場合があります。
ロードバランサーがリクエストを登録済みインスタンスにディスパッチできない場合、この値は -1 に設定されます。
この状況が発生するのは、登録済みインスタンスがアイドルタイムアウト前に接続を閉じた場合か、クライアントが誤った形式のリクエストを送信した場合です。
さらに、TCP リスナーの場合、クライアントがロードバランサーと接続を確立するが、データを送信しない場合にもこの状況が発生する可能性があります。
登録済みインスタンスからアイドルタイムアウトまで応答がない場合にも、この値は -1 に設定される場合があります。 - response_processing_time
(HTTP リスナーの場合) ロードバランサーが登録済みインスタンスから応答ヘッダーを受け取った時点から、クライアントへの応答の送信を開始した時点までの合計経過時間 (秒単位)。
これには、ロードバランサーでの待機時間と、ロードバランサーからバックエンドへの接続の取得時間の両方が含まれます。
(TCP リスナーの場合) ロードバランサーが登録済みインスタンスから最初のバイトを受け取った時点から、クライアントへの応答の送信を開始した時点までの合計経過時間 (秒単位)。
ロードバランサーがリクエストを登録済みインスタンスにディスパッチできない場合、この値は -1 に設定されます。
この状況が発生するのは、登録済みインスタンスがアイドルタイムアウト前に接続を閉じた場合か、クライアントが誤った形式のリクエストを送信した場合です。
登録済みインスタンスからアイドルタイムアウトまで応答がない場合にも、この値は -1 に設定される場合があります。 - response_processing_time
(HTTP リスナーの場合) ロードバランサーが登録済みインスタンスから応答ヘッダーを受け取った時点から、クライアントへの応答の送信を開始した時点までの合計経過時間 (秒単位)。
これには、ロードバランサーでの待機時間と、ロードバランサーからバックエンドへの接続の取得時間の両方が含まれます。
(TCP リスナーの場合) ロードバランサーが登録済みインスタンスから最初のバイトを受け取った時点から、クライアントへの応答の送信を開始した時点までの合計経過時間 (秒単位)。
ロードバランサーがリクエストを登録済みインスタンスにディスパッチできない場合、この値は -1 に設定されます。
この状況が発生するのは、登録済みインスタンスがアイドルタイムアウト前に接続を閉じた場合か、クライアントが誤った形式のリクエストを送信した場合です。
登録済みインスタンスからアイドルタイムアウトまで応答がない場合にも、この値は -1 に設定される場合があります。 - elb_status_code
(HTTP リスナーの場合) ロードバランサーからの応答のステータスコード。 - backend_status_code
(HTTP リスナーの場合) 登録済みインスタンスからの応答のステータスコード。 - received_bytes
クライアント (リクエスタ) から受け取ったリクエストのサイズ (バイト単位)。
(HTTP リスナーの場合) この値にはリクエストの本文が含まれますがヘッダーは含まれません。
(TCP リスナーの場合) この値にはリクエストの本文とヘッダーが含まれます。 - sent_bytes
クライアント (リクエスタ) に返される応答のサイズ (バイト単位)。
(HTTP リスナーの場合) この値には応答の本文が含まれますがヘッダーは含まれません。
(TCP リスナーの場合) この値にはリクエストの本文とヘッダーが含まれます。 - リクエスト
クライアントからのリクエスト行は二重引用符で囲まれており、次の形式でログに記録されます。
HTTP メソッド + プロトコル://ホストヘッダー:ポート + パス + HTTP バージョン。
(TCP リスナーの場合) URL は、3 個のダッシュをそれぞれスペース 1 個で区切り、末尾がスペースになります ("- - - ")。 - user_agent
[HTTP/HTTPS リスナー] リクエスト元のクライアントを特定する User-Agent 文字列。
この文字列は、1 つ以上の製品 ID (製品[/バージョン]) から構成されます。文字列が 8 KB より長い場合は切り捨てられます。 - ssl_cipher
[HTTPS/SSL リスナー] SSL 暗号。
正常なネゴシエーションの後に受信 SSL/TLS 接続が確立した場合にのみ、この値が記録されます。
それ以外の場合、値は - に設定されます。 - ssl_protocol
[HTTPS/SSL リスナー] SSL プロトコル。
正常なネゴシエーションの後に受信 SSL/TLS 接続が確立した場合にのみ、この値が記録されます。
それ以外の場合、値は - に設定されます。