Classic Load Balancer (CLB) インスタンスで、リクエストタイムアウトやスロットリングなどのネットワーク接続の問題が発生した場合や、負荷やパフォーマンスを把握する必要がある場合は、Cloud Monitor を使用してインスタンスの動作状況とメトリクスを表示します。このデータは、コンソール、API、または SDK から表示できます。
前提条件
CLB インスタンスが作成されており、リスナーが少なくとも 1 つ設定されている必要があります。詳細については、次のトピックをご参照ください:
コンソールでのモニタリングデータの表示
CLB コンソールにログインします。
-
上部メニューで、CLB インスタンスのリージョンを選択します。
-
インスタンス ページで、対象のインスタンスを見つけて、次のいずれかの方法を使用してそのモニタリング情報を表示します。
-
方法 1: モニタ 列で
をクリックします。モニタリング情報 パネルで、インスタンス または リスナー タブをクリックします。 -
方法 2: インスタンス ID をクリックします。インスタンス詳細 タブで、モニタリング タブをクリックします。次に、インスタンス タブまたは リスナー タブをクリックします。
インスタンス タブで [帯域幅/トラフィック] サブタブをクリックし、CLB インスタンスのリクエストとレスポンスの [処理済みデータ] メトリックを表示します。
時間 を指定して、チャートの時間範囲を設定できます。 [自動更新] をオンにすると、モニタリングデータが 1 分ごとに更新されます。
-
次の表に、サポートされているモニタリングメトリックを示します。
|
メトリック |
説明 |
|
[受信/送信トラフィック] |
|
|
[着信/送信パケット] |
|
|
[同時接続数] |
|
|
[新規接続] |
クライアントからロードバランサーへの、統計期間あたりの新規接続の平均数。 |
|
[トラフィックロス] |
|
|
[パケットロス] |
|
|
[接続ロス] |
1 秒あたりにドロップされる接続数。 |
|
次のメトリックは、レイヤー 7 (HTTP/HTTPS) リスナーに固有のものです。 |
|
|
[QPS] |
1 秒あたりに処理される HTTP または HTTPS リクエストの数。 |
|
[応答時間] |
ロードバランサーの平均応答時間。 |
|
レイヤー 7 の 2xx/3xx/4xx/5xx/その他のステータスコード |
リスナーが返す HTTP レスポンスのステータスコード数。 |
|
レイヤー 7 アップストリームコード 4xx/5xx |
バックエンドサーバーが返す HTTP レスポンスのステータスコード数。 |
|
[UpstreamRt] |
バックエンドサーバーの平均応答時間。 |
CLB のモニタリングは、インスタンスレベルとリスナーレベルの 2 つのディメンションのデータを提供します。 インスタンスレベルのメトリックは CLB インスタンスの全体的なトラフィックと接続状況を反映し、リスナーレベルのメトリックは個々のリスナーポートのトラフィックと接続を反映します。 CLB のモニタリングでは、バックエンド ECS インスタンスやアプリケーションごとにトラフィックデータを分類することはできません。 CLB コンソールを使用して、どのバックエンドアプリケーションまたは ECS インスタンスが最も多くのトラフィックを消費しているかを特定することはできません。
バックエンドサーバーでの大量トラフィックの原因を特定する必要がある場合は、次のいずれかの代替手段を使用してください。
-
ECS コンソールで ECS インスタンスの詳細ページに移動し、モニタ タブでネットワーク帯域幅のモニタリングデータを表示します。
-
アプリケーションのアクセスログを分析して、トラフィックの多いソースを特定します。
-
バックエンドサーバーにログインし、
iftop -i eth0 -PnNを実行して、プロセスごとのトラフィック使用量を表示します。
CLB モニタリングデータのデフォルトの統計期間は 60 秒です。 これは、モニタリングチャートの各データポイントが 60 秒間隔の集計値であることを意味します。 Cloud Monitor API を介してモニタリングデータをクエリする場合、このデフォルトの粒度に合わせるには、Period パラメーターを 60 に設定してください。
API を使用したモニタリングデータの表示
Cloud Monitor API を使用して、CLB インスタンスの監視メトリクスと詳細データを表示できます。
API を使用してモニタリングデータを表示するには:
-
DescribeProjectMeta操作を呼び出して、Cloud Monitor の CLB の名前空間を照会します。 -
任意: 利用可能なメトリクスを表示します。
DescribeMetricMetaList操作を呼び出して、Cloud Monitor の利用可能な時系列メトリクスの説明をクエリします。詳細については、「CLB のモニタリング」をご参照ください。 -
特定のメトリクスのモニタリングデータをクエリします。
-
DescribeMetricLast操作を呼び出して、特定の CLB モニタリングオブジェクトの最新のモニタリングデータをクエリします。 -
DescribeMetricList操作を呼び出して、特定の時間範囲における CLB 監視オブジェクトの時系列データをクエリします。
-
DescribeProjectMeta
DescribeProjectMeta 操作を呼び出して、Cloud Monitor の CLB の名前空間を照会します。
-
[ラベル] パラメーターを
[{"name":"product","value":"SLB"}]に設定し、その他のパラメーターはデフォルト値のままにします。 [ラベル] パラメーターは製品タグでリソースを絞り込みます。 -
レスポンスから、Cloud Monitor の CLB インスタンスの [Namespace] パラメーターの値を取得します。その値は
acs_slb_dashboardです。
DescribeMetricMetaList
DescribeMetricMetaList API を呼び出して、Cloud Monitor で利用可能な時系列メトリクスの説明をクエリします。
-
Namespace パラメーターを acs_slb_dashboard に設定し、他のパラメーターはデフォルト値のままにします。
-
レスポンスで、ロードバランサーの時系列メトリックを探します。たとえば、QPS メトリックを確認します。
DescribeMetricLast
DescribeMetricLast API を呼び出して、ロードバランサーの特定の監視オブジェクトの最新のモニタリングデータをクエリします。 この例では、[QPS] メトリクスの最新データをクエリします。
-
パラメーターで、QPS をクエリするためのパラメーターを設定します。
次のパラメーターを設定し、他のパラメーターはデフォルト値のままにします。
-
MetricName:監視メトリクスの名前。 この例では、値を InstanceQps に設定します。
-
ディメンション: 特定のリソースの監視データをクエリするためのディメンションマップです。この例では、値を
[{"instanceId":"lb-bp1r92vzpemy099f******"}]に設定します。 -
Namespace:クラウドサービスの名前空間。 この例では、値を acs_slb_dashboard に設定します。
-
-
レスポンスから、QPS の最新のモニタリングデータを確認します。
DescribeMetricList
DescribeMetricList API を呼び出して、特定の時間範囲におけるロードバランサーのメトリクスの時系列データをクエリします。
-
パラメーターで、特定の時間範囲の QPS の監視データをクエリするように設定します。
次のパラメーターを設定し、他のパラメーターはデフォルト値のままにします。
-
MetricName:監視メトリクスの名前。 この例では、値を InstanceQps に設定します。
-
Namespace:クラウドサービスの名前空間。 この例では、値を acs_slb_dashboard に設定します。
-
ディメンション: 特定のリソースのモニタリングデータをクエリするためのディメンションマップです。この例では、値を
[{"instanceId":"lb-bp1r92vzpemy099f******"}]に設定します。 -
StartTime: クエリする時間範囲の開始時刻です。StartTime の値は EndTime の値以降に設定できません。この例では、値を
2020-03-28 00:10:00に設定します。サポートされているフォーマット:
-
UNIX タイムスタンプ:1970 年 1 月 1 日 00:00:00 UTC からのミリ秒数。
-
フォーマット:YYYY-MM-DDThh:mm:ssZ。
-
-
EndTime:クエリする時間範囲の終了時刻。形式は StartTime と同じです。この例では、値を
2020-03-28 00:11:00に設定します。
-
-
レスポンスから、指定された時間範囲の QPS の監視データを確認します。
SDK によるモニタリングデータの表示
このセクションでは、SDK を使用して CLB の監視メトリクスと詳細データを表示する方法について説明します。次の例では、DescribeMetricList API を呼び出して、CLB インスタンスの最大同時接続数をクエリする方法を示します。
-
OpenAPI Explorer にログインします。
-
次のパラメーターを設定し、その他のパラメーターはデフォルト値のままにします。
-
MetricName:監視メトリクスの名前。この例では、このパラメーターを InstanceMaxConnection に設定します。
-
Namespace:クラウドサービスの名前空間。この例では、このパラメーターを acs_slb_dashboard に設定します。
-
Dimensions:特定のリソースのモニタリングデータをクエリするためのディメンションマップ。この例では、このパラメーターを [{"instanceId":"lb-bp1r92vzpemy099f******"}] に設定します。
-
StartTime:クエリする時間範囲の開始時刻。値は EndTime の値と同じ、またはそれ以降にすることはできません。この例では、このパラメーターを
2022-10-13 20:45:03に設定します。サポートされているフォーマット:
-
UNIX タイムスタンプ:1970 年 1 月 1 日 00:00:00 UTC からのミリ秒数。
-
フォーマット:YYYY-MM-DDThh:mm:ssZ。
-
-
EndTime:クエリする時間範囲の終了時刻。サポートされているフォーマットは StartTime と同じです。この例では、このパラメーターを
2022-10-13 20:47:03に設定します。
-
-
SDK サンプルコード タブで、Python タブを選択し、Run Example をクリックします。
-
表示されるパネルで結果を確認します。
よくある質問
Classic Load Balancer (CLB) モニタリング:リクエストのない接続
インターネットスキャンツールが、CLB インスタンスのパブリック IP アドレスにアクセスする場合があります。これらのツールは、パブリック IP アドレスに対して TCP 接続を直接開始します。これらの接続は、接続数および帯域幅のメトリクスに計上されます。ただし、スキャンツールは有効な HTTP リクエストを送信しないため、レイヤー 7 のモニタリングにおけるリクエスト数は 0 のままになります。
これは、CLB モニタリングにおける統計上の想定どおりの動作です:
-
接続数と帯域幅のメトリクスは、スキャナーによって生成されたものを含め、すべての TCP レベルの接続をカウントします。
-
リクエスト数 (QPS) は、有効なレイヤー 7 の HTTP/HTTPS リクエストのみを測定し、HTTP リクエストを伴わない TCP 接続は含まれません。
サービスを CLB から Application Load Balancer (ALB) に移行した後、CLB インスタンスに接続数と帯域幅のデータは表示されるもののリクエストが表示されない場合、これは通常スキャンアクティビティによるもので、移行したサービスには影響しません。
CLB モニタリングの QPS を使用して、実際のリクエスト数を正確に見積もることはできますか?
いいえ。CLB モニタリングの QPS は分単位の粒度で集計された統計値であり、リクエストごとの正確なカウントとは乖離します。正確なリクエスト数として扱うことはできず、QPS と実際の値の比率に基づいてリクエスト数に換算したり、インスタンス間の比率推定を行ったりすることもできません。
CLB に到達するリクエスト数を見積もるには、レイヤー 7 の QPS メトリクスを使用してください。この目的でステータスコードのメトリクスを使用することは推奨されません。ステータスコードのメトリクスは、CLB がクライアントに返したステータスコードのみをカウントし、不完全な接続など、ステータスコードが生成されなかったリクエストは含まれないためです。
CLB モニタリングの同時接続数メトリクスは何を表しますか?
CLB モニタリングに表示される同時接続数は、アクティブな TCP/UDP セッションの接続数を表します。これはクライアントから CLB への接続数をカウントするものであり、CLB からバックエンドの ECS インスタンスへの接続数でも、サービスにアクセスしているユーザー数でもありません。
モニタリング値は、CLB インスタンスの仕様上限ではなく、実際の現在の接続数を反映します。上限に近づいているかどうかを判断するには、モニタリング値を「Performance specifications」に記載されている最大同時接続数と比較してください。
同時接続数が滑らかな曲線ではなく、規則的に高低を繰り返すパターンを示す場合、通常は一部のクライアントが定期的に接続操作を実行していることを示します。
CLB の TCP リスナーはレスポンスタイム (RT) のモニタリングをサポートしていますか?
いいえ。CLB の基本モニタリングでは、レイヤー 7 (HTTP/HTTPS) リスナーのみがレスポンスタイム (RT) メトリクスをサポートします。レイヤー 4 (TCP/UDP) リスナーは、アプリケーション層のレスポンスタイムのモニタリングをサポートしていません。TCP リスナーの遅延を分析するには、バックエンドサーバー上の Nginx ログなどのアクセスログを確認してください。
関連ドキュメント
CLB の監視メトリクスの詳細については、「CLB モニタリング」をご参照ください。