このトピックでは、Classic Load Balancer (CLB) インスタンスのアクセスログを設定する方法について説明します。 CLBレイヤー7リスナーを使用する場合、アクセスログデータを使用して、エラーのデバッグ、問題の特定、ユーザーの動作の分析を行うことができます。 CLBはSimple Log Serviceと連携しており、CLBのアクセスログを記録および保存して、ログデータを効率的に分析してエラーを特定できるようにします。
制限事項
HTTPおよびHTTPSリスナーを含むレイヤー7 CLBリスナーのみがアクセスログをサポートしています。
前提条件
CLBインスタンスが作成されます。 詳細については、「CLBインスタンスの作成と管理」をご参照ください。
vServerグループが作成されます。 詳細については、「vServerグループの作成と管理」をご参照ください。 バックエンドサーバーがvServerグループに追加され、アプリケーションがバックエンドサーバーにデプロイされます。
CLBインスタンス用にHTTPまたはHTTPSリスナーが作成されます。 詳細については、「HTTPリスナーの追加」および「HTTPSリスナーの追加」をご参照ください。
Simple Log Serviceが有効化されています。 詳細については、「Simple Log Serviceの有効化」をご参照ください。
アクセスログの設定
CLBコンソールにログインします。
左側のナビゲーションウィンドウで、
を選択します。上部のナビゲーションバーで、CLBインスタンスがデプロイされているリージョンを選択します。
アクセスログ機能を初めて使用するときは、アカウントに必要な権限を付与する必要があります。 [今すぐ権限を付与] をクリックします。 [クラウドリソースアクセス権限付与] ページで、[権限付与ポリシーの確認] をクリックします。
説明承認は1回だけ実行する必要があります。
RAM (Resource Access Management) ユーザーを使用する場合は、Alibaba Cloudアカウントから権限を取得する必要があります。 詳細については、「RAMユーザーにアクセスログ機能の使用許可」をご参照ください。
[アクセスログ (レイヤー7)] ページで、管理するCLBインスタンスを見つけ、[操作] 列の [設定] をクリックします。
[ログ設定] パネルで、[プロジェクト] および [ログストア] パラメーターを設定し、[OK] をクリックします。
Project: Simple Log Serviceでリソースを分離および管理するために使用されます。
Logstore: Simple log Serviceでログデータを収集、保存、クエリするために使用されます。
説明プロジェクトの名前が一意であり、プロジェクトのリージョンがCLBインスタンスのリージョンと同じであることを確認してください。
アクセスログを有効にすると、次の表に示すフィールドを使用してログデータを照会および検索できます。
項目
説明
body_bytes_sent
HTTPレスポンスボディのサイズ。 単位はバイトです。
client_ip
クライアント側の IP アドレス。
client_port
リクエストを送信するクライアントのポート番号。
host
デフォルトでは、値はリクエストパラメータから取得されます。 リクエストパラメーターでホストが指定されていない場合、システムはhostヘッダーから値を取得します。 この値をリクエストパラメーターまたはHostヘッダーから取得できない場合は、バックエンドサーバーのIPアドレスが使用されます。
http_host
HTTPリクエストのHostヘッダー。
http_referer
CLBが受信したHTTPリクエストのRefererヘッダー。
http_user_agent
HTTPリクエストのHttp_User_Agentヘッダー。
http_x_forwarded_for
HTTPリクエストのX-Forwarded-Forヘッダー。
http_x_real_ip
実際のクライアントIPアドレス。
read_request_time
CLBがリクエストを処理するのにかかる時間。 単位:ミリ秒。
request_length
開始行、リクエストヘッダー、およびリクエスト本文を含む、リクエストの長さ。
request_method
リクエスト方式。
request_time
CLBが最初のリクエストを受信してからCLBがレスポンスを返すまでの時間。 単位は秒です。
request_uri
CLBが受信したリクエストのURI。
scheme
リクエストのスキーム。 有効な値: HTTPおよびHTTPS。
server_protocol
CLBが受信するHTTPプロトコルのバージョン。 (例: HTTP/1.0 または HTTP/1.1)
slb_vport
CLBインスタンスのリスナーポート。
slbid
CLBインスタンスのID。
ssl_cipher
SSL接続を確立するために使用される暗号スイート。 例: ECDHE-RSA-AES128-GCM-SHA256。
ssl_protocol
SSL接続を確立するために使用されるプロトコル (TLS 1.2など) 。
status
CLBによって返されるレスポンスのステータス。
tcpinfo_rtt
TCP接続を確立するのにかかる時間。 単位:ミリ秒。
time
ログエントリが作成された時間。
upstream_addr
バックエンドサーバーの IP アドレスおよびポート
upstream_response_time
接続が確立されてから接続が閉じられるまでの時間。 単位は秒です。
upstream_status
バックエンドサーバーからCLBに送信されるHTTPステータスコード。
vip_addr
仮想IPアドレス。
write_response_time
書き込み要求に応答するのにかかる時間。 単位:ミリ秒。
アクセスログデータの照会
アクセスログ機能を有効にすると、CLBコンソールまたはlog Serviceコンソールでアクセスログデータを照会できます。
CLBコンソールにログインします。
左側のナビゲーションウィンドウで、
を選択します。上部のナビゲーションバーで、CLBインスタンスがデプロイされているリージョンを選択します。
[アクセスログ (レイヤー7)] ページで、管理するCLBインスタンスを見つけ、[操作] 列の [ログの表示] をクリックします。
クライアントがCLBにアクセスすると、ログエントリが生成されます。 Simple log Serviceでログデータを表示できます。
指定したログデータを照会するSQL文を入力します。
たとえば、次のSQL文を入力して、上位20の最もアクティブなクライアントを照会できます。 リクエストソースを分析し、情報に基づいたビジネス上の意思決定を行うことができます。
* | select http_user_agent, count(*) as pv group by http_user_agent order by pv desc limit 20
アクセスログデータの分析
Simple Log Serviceダッシュボードには、ログデータが複数のディメンションで表示されます。 ダッシュボードを使用して、アクセスログデータを分析できます。
CLBインスタンスが使用するプロジェクトのページで、左側のナビゲーションウィンドウのアイコンの上にポインターを移動し、[ダッシュボード] をクリックします。
などのアクセスログの名前をクリックします。
slb_layer7_access_center_enを使用して、ログデータを表示します。
アクセスログの無効化
CLBインスタンスのアクセスデータを収集する必要がなくなった場合は、アクセスログを無効にできます。
CLBインスタンスのアクセスログを無効にしても、ログプロジェクトとLogstore、および履歴ログは削除されません。 Simple Log Serviceのデータに引き続きアクセスできます。
CLBコンソールにログインします。
左側のナビゲーションウィンドウで、
を選択します。上部のナビゲーションバーで、CLBインスタンスがデプロイされているリージョンを選択します。
[アクセスログ (レイヤー7)] ページで、管理するインスタンスを見つけ、[操作] 列の [ログの無効化] をクリックします。
表示されたメッセージボックスで、[OK] をクリックします。
関連ドキュメント
Simple Log Serviceの詳細については、Simple Log Serviceとはをご参照ください。
CLBアクセスログの詳細については、「CLBアクセスログの概要」をご参照ください。
CLBレイヤー7リスナーを使用し、バックエンドサーバーのエラーをトラブルシューティングする場合は、アクセスログデータを分析してエラーを特定できます。 CLBはSimple Log Serviceと連携しており、CLBのアクセスログを記録および保存して、ログデータを効率的に分析してエラーを特定できるようにします。 詳細については、「CLBアクセスログを使用して異常なバックエンドサーバーを特定する」をご参照ください。