このトピックでは、Classic Load Balancer(CLB)のアクセスログについて説明します。CLB レイヤー 7 リスナーを使用する場合、アクセスログデータを使用して、エラーのデバッグ、問題の特定、ユーザーの行動の分析を行うことができます。 CLB と連携する Simple Log Service は、CLB からのアクセスログを記録および保存し、ログデータの効率的な分析とエラーの特定に役立ちます。
概要
アクセスログとは
CLB アクセスログは、CLB に送信されるすべてのリクエストに関する詳細情報を記録するために使用されます。これには、リクエストが送信された時刻、クライアント IP アドレス、ネットワーク遅延、リクエスト URL、サーバー応答などが含まれます。インターネットアクセスのためのイングレスとして、CLB は多くのアクセスリクエストを配信します。アクセスログを使用して、クライアントユーザーのアクティビティと地理的分布を分析し、エラーをトラブルシューティングできます。
CLB インスタンスのアクセスログ機能を有効にすると、アクセスログデータが収集され、ログ分析のために Simple Log Service のログストアに保存されます。アクセスログ機能はいつでも無効にできます。
CLB のアクセスログ機能は無料です。Simple Log Service に対してのみ課金されます。 Simple Log Service の料金と請求の詳細については、「請求の概要」をご参照ください。
レイヤー 7 CLB リスナーのみがアクセスログをサポートしています。
HTTP ヘッダー値に
||
が含まれていないことを確認してください。含まれている場合、エクスポートされたログが誤って配置される可能性があります。
メリット
CLB のアクセスログ機能には、次のメリットがあります。
使いやすさ
この機能により、開発者と O&M エンジニアはログ管理に費やす時間を減らし、ビジネス開発と技術的探求に集中できます。
大容量ストレージ
CLB は大量のアクセスログデータを生成するため、高いログ処理パフォーマンスとコストが必要になります。 Simple Log Service は、オープンソースのログサービスよりも低いコストでより高いパフォーマンスをサポートします。
リアルタイム処理
DevOps、監視、アラートなどのシナリオでは、リアルタイムのログデータが必要です。 Simple Log Service の機能を搭載した CLB のアクセスログ機能は、リアルタイムのログデータを数秒以内に分析および処理できます。
柔軟性
CLB では、CLB インスタンスのアクセスログ機能を有効または無効にすることができます。 Simple Log Service は、サービスレベルで CLB とインターフェースされています。 Simple Log Service を手動で保守する必要はありません。
制限事項
HTTP リスナーと HTTPS リスナーを含む、レイヤー 7 CLB リスナーのみがアクセスログをサポートしています。
前提条件
CLB インスタンスが作成されていること。詳細については、「CLB インスタンスの作成と管理」をご参照ください。
vServer グループが作成されていること。詳細については、「vServer グループの作成と管理」をご参照ください。バックエンドサーバーが vServer グループに追加され、アプリケーションがバックエンドサーバーにデプロイされています。
CLB インスタンス用に HTTP または HTTPS リスナーが作成されていること。詳細については、「HTTP リスナーを追加する」および「HTTPS リスナーを追加する」をご参照ください。
Simple Log Service がアクティブ化されていること。詳細については、「はじめに」をご参照ください。
アクセスログを設定する
- CLB コンソール にログオンします。
左側のナビゲーションウィンドウで、
を選択します。上部のナビゲーションバーで、CLB インスタンスがデプロイされているリージョンを選択します。
アクセスログ機能を初めて使用する場合は、必要な権限をアカウントに付与する必要があります。 [承認] をクリックします。 [クラウド リソースアクセス承認] ページで、[承認ポリシーの確認] をクリックします。この承認は一度だけ必要です。
Resource Access Management(RAM)ユーザーの場合は、Alibaba Cloud アカウントによって必要な権限が付与されている必要があります。詳細については、「RAM ユーザーにアクセスログ機能の使用を承認する」をご参照ください。
[アクセスログ(レイヤー 7)] ページで、目的の CLB インスタンスを見つけ、[アクション] 列の [設定] をクリックします。
[ログ設定] パネルで、[プロジェクト] パラメーターと [ログストア] パラメーターを設定し、[OK] をクリックします。
プロジェクト: Simple Log Service でリソースを分離、管理、および制御するための単位。異なるアプリケーション、製品、またはプログラムのデータを管理するには、異なるプロジェクトを使用することをお勧めします。
ログストア: Simple Log Service でログデータを収集、保存、およびクエリするための単位。単一のアプリケーションの異なるタイプのログデータを管理するには、異なるログストアを使用することをお勧めします。
[ログストアを選択]: このオプションを選択すると、選択したログストア用に事前設定されたダッシュボードが自動的に作成されます。このログストアのインデックスをすでに設定している場合、設定は上書きされます。
説明プロジェクトを作成することを選択した場合は、プロジェクト名が Alibaba Cloud 内で一意であることを確認してください。一意でない場合、プロジェクトを作成できません。
既存のプロジェクトを選択することを選択した場合は、選択するプロジェクトが CLB インスタンスと同じリージョンにあることを確認してください。
アクセスログ機能が有効になったら、次の表にリストされているフィールドを使用してログデータをクエリおよび取得できます。
フィールド
説明
body_bytes_sent
HTTP レスポンスボディのサイズ。単位:バイト。
client_ip
リクエストを送信する最後のホップの IP アドレス。
client_port
リクエストを送信する最後のホップのポート番号。
host
デフォルトでは、このフィールドの値はリクエストパラメーターから取得されます。リクエストパラメーターにホスト情報が含まれていない場合は、Host ヘッダーから値が取得されます。いずれからもこの値を取得できない場合は、リクエストを処理するバックエンドサーバーの IP アドレスが使用されます。
http_host
CLB が受信した HTTP リクエストの Host ヘッダー。
http_referer
CLB が受信した HTTP リクエストの Referer ヘッダー。
http_user_agent
CLB が受信した HTTP リクエストの Http_User_Agent ヘッダー。
http_x_forwarded_for
CLB が受信した HTTP リクエストの X-Forwarded-For ヘッダー。
http_x_real_ip
CLB が受信した HTTP リクエストの X-Real-IP ヘッダー。実際のクライアント IP アドレスを示します。
read_request_time
CLB がリクエストを処理するのにかかる時間。単位:ミリ秒。
request_length
リクエストの長さ。リクエスト行、リクエストヘッダー、リクエストボディで構成されます。
request_method
リクエストメソッド。
request_time
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
クライアントと CLB の間で確立された TCP 接続の往復レイテンシ(RTT)。単位:マイクロ秒。
time
ログエントリが生成された時刻。
upstream_addr
リクエストを処理するバックエンドサーバーの IP アドレスとポート。
upstream_response_time
CLB とバックエンドサーバーの間で接続が確立されてから接続が閉じられるまでの時間。単位:秒。
upstream_status
バックエンドサーバーから CLB に送信される HTTP ステータスコード。
vip_addr
リクエストの送信先となる仮想 IP アドレス。
write_response_time
CLB が書き込みリクエストを処理するのにかかる時間。単位:ミリ秒。
アクセスログデータをクエリする
アクセスログ機能を有効にすると、Simple Log Service コンソールでログデータをクエリできます。
- CLB コンソール にログオンします。
左側のナビゲーションウィンドウで、
を選択します。上部のナビゲーションバーで、CLB インスタンスがデプロイされているリージョンを選択します。
[アクセスログ(レイヤー 7)] ページで、目的の CLB インスタンスを見つけ、[アクション] 列の [ログを表示] をクリックします。
アクセスログ機能を有効にした後、クライアントが CLB にアクセスすると、ログエントリが生成され、Simple Log Service コンソールでログデータを表示できます。
特定のログデータをクエリするための SQL 文を入力します。
たとえば、最もアクティブな上位 20 クライアントをクエリするには、次の SQL 文を入力します。
* | select http_user_agent, count(*) as pv group by http_user_agent order by pv desc limit 20 // 最もアクティブな上位20クライアントをクエリするためのSQL文
この分析は、リクエストソースの特定に役立ち、ビジネス上の意思決定に役立ちます。
アクセスログデータを分析する
Simple Log Service が提供するダッシュボードを使用してアクセスログデータを分析できます。これにより、包括的なデータインサイトが得られます。
Simple Log Service コンソールで、CLB インスタンスが使用するプロジェクトのページで、左側のナビゲーションウィンドウの
アイコンにポインターを移動し、[ダッシュボード] をクリックします。
slb_layer7_access_center_en などのアクセスログの名前をクリックして、ログデータを表示します。
アクセスログを無効にする
CLB インスタンスのアクセスデータの収集が不要になった場合は、アクセスログを無効にできます。
CLB インスタンスのアクセスログを無効にしても、ログプロジェクト、ログストア、および履歴ログは削除されません。Simple Log Service のログデータには引き続きアクセスできます。
- CLB コンソール にログオンします。
左側のナビゲーションウィンドウで、
を選択します。上部のナビゲーションバーで、CLB インスタンスがデプロイされているリージョンを選択します。
[アクセスログ(レイヤー 7)] ページで、目的の CLB インスタンスを見つけ、[アクション] 列の [ロギングを無効にする] をクリックします。
表示されるメッセージで、[OK] をクリックします。
関連情報
Simple Log Service の詳細については、「Simple Log Service とは」をご参照ください。
CLB レイヤー 7 リスナー(HTTP リスナーと HTTPS リスナー)を使用していて、バックエンドサーバーのエラーをトラブルシューティングする場合は、アクセスログデータを分析してエラーを特定できます。詳細については、「CLB アクセスログを使用して異常なバックエンドサーバーを特定する」をご参照ください。