Classic Load Balancer (CLB) のレイヤー 7 ロードバランシングを使用する場合、アクセスログ機能を使用して、アプリケーション開発、テスト、トラブルシューティング、またはユーザーの動作分析を行うことができます。アクセスログ機能は Simple Log Service (SLS) と統合されており、ログデータの分析とトラブルシューティングの効率を大幅に向上させます。
機能概要
CLB アクセスログとは
CLB のアクセスログ機能は、CLB インスタンスに送信されたすべてのリクエストに関する詳細情報を収集します。これには、リクエスト時間、クライアント IP アドレス、レイテンシー、リクエストパス、サーバー応答が含まれます。CLB はパブリックネットワークアクセスのエントリーポイントであるため、大量のアクセスリクエストを処理します。アクセスログを使用して、ユーザーの動作を分析し、地理的分布を理解し、問題をトラブルシューティングできます。
アクセスログ機能を有効にすると、アクセスログは Simple Log Service (SLS) の Logstore に保存され、収集と分析が行われます。アクセスログの設定はいつでも削除できます。
CLB アクセスログ機能は無料です。課金されるのは SLS の使用に対してのみです。課金の詳細については、「Simple Log Service の課金概要」をご参照ください。
レイヤー 7 の CLB インスタンスのみがアクセスログ機能をサポートします。
HTTP ヘッダーの値に
||が含まれていないことを確認してください。含まれている場合、ログ分割が失敗する可能性があります。
CLB アクセスログの利点
CLB アクセスログには、次の利点があります。
シンプル
開発者と O&M エンジニアの時間を解放し、ビジネス開発とイノベーションに集中できるようにします。
大容量
大量のログデータを処理できます。自己管理ソリューションと比較して、SLS はより優れたパフォーマンスを提供し、より費用対効果が高くなります。
リアルタイム
DevOps、モニタリング、アラートなどのシナリオのリアルタイム要件を満たします。SLS と統合すると、数秒でログを分析および処理できます。
柔軟
各 CLB インスタンスのログ機能を有効または無効にできます。バックエンドサービスは自動的に作成および接続されるため、手動でのメンテナンスは不要です。
制限
CLB のレイヤー 7 ロードバランシング (HTTP および HTTPS リスナー) のみがアクセスログ機能をサポートします。
アクセスログは主にレイヤー 7 のリクエスト情報を記録します。したがって、レイヤー 4 リスナー (TCP および UDP) はアクセスログをサポートしません。
前提条件
vServer グループが作成されている。バックエンドサーバーが vServer グループに追加され、アプリケーションサービスがバックエンドサーバーにデプロイされている。
CLB インスタンス用に HTTP リスナーまたは HTTPS リスナーが構成されている。
Simple Log Service が有効化されている。
アクセスログの設定
CLB コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
上部のナビゲーションバーで、CLB インスタンスがデプロイされているリージョンを選択します。
この機能を初めて使用する場合は、必要な権限を付与する必要があります。[今すぐ承認] をクリックします。[クラウドリソースアクセス承認] ページで、[承認に同意] をクリックします。
説明この操作は、最初の設定時にのみ必要です。
Resource Access Management (RAM) ユーザーを使用している場合は、親の Alibaba Cloud アカウントから必要な権限を付与される必要があります。詳細については、「RAM ユーザーに CLB アクセスログ機能の使用を承認する」をご参照ください。
[アクセスログ (レイヤー 7)] ページで、ターゲットの CLB インスタンスを見つけ、[アクション] 列の [設定] をクリックします。
[ログ設定] パネルで、[プロジェクト] と [Logstore] を設定し、[OK] をクリックします。
プロジェクト: プロジェクトは Simple Log Service のリソース管理単位です。リソースの隔離と制御に使用されます。異なるプロジェクトを使用して、異なるアプリケーション、プロダクト、またはプロジェクトからのデータを管理できます。
Logstore: Logstore は、Simple Log Service におけるログデータの収集、ストレージ、クエリの単位です。同じアプリケーション内の異なるタイプのログに対して、個別の Logstore を作成できます。
既存の Logstore を選択: この機能は、選択した Logstore の分析ダッシュボードをデフォルトで有効にします。Logstore にすでにインデックスが設定されている場合、その設定は上書きされます。
説明プロジェクト名がグローバルに一意であり、プロジェクトが SLB インスタンスと同じリージョンにあることを確認してください。
Server Load Balancer のアクセスログを設定した後、Simple Log Service で次のフィールドのログ情報をクエリおよび取得できます。
フィールド
説明
body_bytes_sent
クライアントに送信された HTTP 本文のバイト数。
client_ip
リクエストを送信したクライアントの IP アドレス。
client_port
リクエストを送信したクライアントのポート。
host
値はまずリクエストパラメーターから取得されます。値を取得できない場合は、Host ヘッダーから取得されます。それでも値を取得できない場合は、リクエストを処理するバックエンドサーバーの IP アドレスがホストとして使用されます。
http_host
リクエストメッセージの Host ヘッダーの内容。
http_referer
SLB インスタンスが受信した HTTP リクエストメッセージの Referer ヘッダーの内容。
http_user_agent
SLB インスタンスが受信したリクエストメッセージの http_user_agent ヘッダーの内容。
http_x_forwarded_for
SLB インスタンスが受信したリクエストメッセージの x-forwarded-for ヘッダーの内容。
http_x_real_ip
SLB インスタンスが受信した HTTP リクエストメッセージの x-real-ip ヘッダーの内容。
read_request_time
SLB インスタンスがリクエストを読み取るのにかかる時間。単位: ミリ秒。
request_length
開始行、HTTP ヘッダー、HTTP 本文を含むリクエストメッセージの長さ。
request_method
リクエストメッセージのメソッド。
request_time
SLB インスタンスが最初のリクエストメッセージを受信してから SLB が応答を返すまでの間隔。単位: 秒。
request_uri
SLB インスタンスが受信したリクエストメッセージの URI。
scheme
http や https などのリクエストのスキーム。
server_protocol
SLB インスタンスが受信した HTTP プロトコルのバージョン (HTTP/1.0 や HTTP/1.1 など)。
slb_vport
SLB インスタンスのリスナーポート。
slbid
SLB インスタンスの ID。
ssl_cipher
SSL 接続の確立に使用される暗号スイート (ECDHE-RSA-AES128-GCM-SHA256 など)。
ssl_protocol
SSL 接続の確立に使用されるプロトコル (TLSv1.2 など)。
status
SLB インスタンスからの応答メッセージのステータス。
tcpinfo_rtt
クライアントの TCP 接続時間。単位: マイクロ秒。
time
ログが記録された時間。
upstream_addr
バックエンドサーバーの IP アドレスとポート。
upstream_response_time
バックエンドサーバーとの接続が確立されてから、すべてのデータが受信され、接続が閉じられるまでの時間。単位: 秒。
upstream_status
SLB インスタンスがバックエンドサーバーから受信する応答状態コード。
vip_addr
仮想 IP アドレス。
write_response_time
SLB インスタンスが応答を書き込むのにかかる時間。単位: ミリ秒。
アクセスログのクエリ
アクセスログを設定した後、Simple Log Service コンソールでログをクエリできます。
CLB コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
上部のナビゲーションバーで、CLB インスタンスがデプロイされているリージョンを選択します。
[アクセスログ (レイヤー 7)] ページで、ターゲットインスタンスを見つけ、[アクション] 列の [ログの表示] をクリックします。これにより、Simple Log Service ページにリダイレクトされます。
アクセスログ機能が有効になった後、クライアントが CLB インスタンスにアクセスすると、対応するログ情報を表示できます。
SQL 文を入力して、特定のアクセスログをクエリできます。
たとえば、次の SQL 文を入力して上位 20 のクライアントをクエリできます。これは、リクエストソースを分析し、ビジネス上の意思決定を行うのに役立ちます。
* | select http_user_agent, count(*) as pv group by http_user_agent order by pv desc limit 20
アクセスログの分析
Simple Log Service のダッシュボードを使用してアクセスログを分析できます。ダッシュボードは、より豊富なデータインサイトを提供します。
Simple Log Service ページで、左側のナビゲーションウィンドウで
を選択し、[ダッシュボードリスト] をクリックします。CLB のアクセスログの名前 (例: slb_layer7_access_center_en) をクリックして、分析レポートを表示します。
アクセスログの無効化
アクセスログを無効にして、CLB インスタンスのアクセスログの収集を停止できます。
CLB インスタンスのロギングを無効にしても、対応するログプロジェクトと Logstore は削除されません。履歴ログデータは保持されます。SLS で履歴ログを引き続き管理できます。
CLB コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
上部のナビゲーションバーで、CLB インスタンスがデプロイされているリージョンを選択します。
[アクセスログ (レイヤー 7)] ページで、ターゲットインスタンスを見つけ、[アクション] 列の [ロギングの無効化] をクリックします。
表示されるダイアログボックスで、[OK] をクリックして、インスタンスのアクセスログを無効にします。
参考資料
Simple Log Service プロダクトの詳細については、「Simple Log Service とは」をご参照ください。
CLB のレイヤー 7 ロードバランシング (HTTP/HTTPS リスナー) を使用していて、バックエンドサーバーの問題が原因であると疑われるビジネス上の障害や例外が発生した場合、CLB アクセスログを使用して異常なバックエンドサーバーをすばやく特定することができます。