グローバル外部パススルー ネットワーク ロードバランサのロギングとモニタリング

このドキュメントでは、グローバル外部パススルー ネットワーク ロードバランサに Cloud LoggingCloud Monitoring を構成し、使用する方法について説明します。

ロギング

ログは、グローバル外部パススルー ネットワーク ロードバランサのトラブルシューティングとモニタリングに役立つ情報を提供します。ログは接続ごとに集約され、ほぼリアルタイムでエクスポートされます。ログは、ロードバランスされたインスタンスの TCP、UDP、ESP、GRE、ICMP、ICMPv6 の各フローについて、上り(内向き)トラフィックと下り(外向き)トラフィックの両方で生成されます。ログエントリに含まれるフィールドの詳細については、ログフィールドをご覧ください。

ログの使用に追加料金はかかりません。ログのインポート方法に基づいて、Cloud Logging、BigQuery、または Pub/Sub の標準料金が適用されます。ログを有効にしても、ロードバランサのパフォーマンスに影響はありません。

ロギングには次の利点があります。

  • グローバル外部パススルー ネットワーク ロードバランサのトラフィック モニタリング。接続ごとのロギングにより、各接続がサービスを提供するバックエンドにどのようにルーティングされるかについての分析情報が得られます。

  • ネットワークのトラブルシューティング。トラブルシューティングには、グローバル外部パススルー ネットワーク ロードバランサのログを利用できます。

外部クライアントから VM へのフローのサンプルログ形式

次の図は、外部クライアント(203.0.113.7)が、アベイラビリティ グループ 0(AG0)に割り当てられた 2 つのグローバル エニーキャスト IP アドレス 136.124.69.214 と、アベイラビリティ グループ 1(AG1)に割り当てられた 136.124.83.205 で構成されたグローバル外部パススルー ネットワーク ロードバランサと、バックエンド インスタンス(10.10.0.2 と 10.20.0.2)にアクセスする際のインバウンド トラフィックとアウトバウンド トラフィックを示しています。

外部クライアントからバックエンド VM サービスへのフロー
外部クライアントから VM へのインバウンド フローとアウトバウンド フロー。

クライアントからバックエンド インスタンスへの接続のグローバル外部パススルー ネットワーク ロードバランサのログの形式は次のとおりです。

  • connection.clientIp: 203.0.113.7
  • connection.serverIp: 136.124.69.214(AG0)または 136.124.83.205(AG1)
  • bytesSent: 1256
  • bytesReceived: 4521

ログのサンプリングと収集

Cloud de Confiance は、ロードバランサのバックエンド VM で送受信されたパケットをサンプリングします。サンプリングされたパケットは、ログを生成するために処理されます。

すべてのパケットがサンプリングされるわけではありません。 Cloud de Confiance は、物理ホスト上のトラフィック量に応じてパケットのサブセットをサンプリングします。最も低いサンプリング レートは、1,024 パケット中 1 パケットです。サンプリング レートは Cloud de Confianceによって動的に制御されます。サンプリング レートは調整できません。

パケット サンプリングは、ファイアウォール ルールと次のように相互作用します。

  • 下り(外向き)ファイアウォール ルールが適用される前にパケットがサンプリングされます。
  • 上り(内向き)ファイアウォール ルールが適用された後にパケットがサンプリングされます。

パケット サンプリングの後、 Cloud de Confiance はサンプリングされたパケットを次のように処理します。

  1. 集計: サンプリングされたパケットは 5 秒間隔で集計され、単一のフローエントリが生成されます。

  2. 構成可能な(セカンダリ)ログ サンプリング: 2 番目のサンプリング プロセスで、フローをサンプリングします。logConfig.sampleRate パラメータに従って、ログエントリとして出力されるフロー部分の割合を制御します。logConfig.sampleRate1.0(100%)の場合、サンプリングされたパケットがすべて処理されます。

  3. Logging への書き込み: ログエントリが Cloud Logging に書き込まれます。

任意の項目

ログレコードには必須フィールドとオプション フィールドがあります。ログフィールド セクションには、オプション フィールドと必須フィールドが表示されます。すべての必須フィールドは常に含まれます。保持するオプション フィールドはカスタマイズできます。

  • [すべてのオプションのフィールドを含める] を選択すると、ログレコード形式のすべてのオプションのフィールドがフローログに含まれます。新しいオプション フィールドがレコード形式に追加されると、フローログに新しいフィールドが自動的に含まれます。

  • [すべてのオプションを除外する] を選択すると、すべてのオプションのフィールドが省略されます。

  • [カスタム] を選択する場合は、親フィールドに含めるオプション フィールド(例: serverInstance)またはフルネーム(例: serverInstance.vm)を指定できます。

新しいオプション フィールドがレコード形式に追加された場合、これらのフィールドが指定した親フィールド内の新しいフィールドである場合を除き、これらのフィールドはログに含まれません。

親フィールドを使用してカスタムのオプション フィールドを指定した場合、その親フィールド内のレコード形式に新しいオプション フィールドが追加されると、ログには新しいフィールドが自動的に含まれます。たとえば、optionalFieldA を含めると、optionalFieldA.subField1 という名前で新しいログがフィールドに自動的に追加されます。

オプション フィールドをカスタマイズする手順については、新しいバックエンド サービスでロギングを有効にするをご覧ください。

レスポンス パケットの送信元 IP アドレスの要件

ロギングは、これらのパケットの送信元 IP アドレスがロードバランサの転送ルールの IP アドレスと一致する場合にのみ、バックエンド VM からのレスポンス パケットをサンプリングします。TCP 接続の場合、レスポンス パケットの送信元は常にリクエスト パケットの宛先と一致している必要があります。ただし、他のプロトコルでは、レスポンス パケットが異なる送信元 IP アドレスを使用する場合があります。詳細については、リクエスト パケットと戻りパケットの IP アドレスをご覧ください。

グローバル外部パススルー ネットワーク ロードバランサのロギングで使用されるパケット サンプリング プロセスでは、バックエンド VM からのレスポンス パケットのソースがグローバル外部パススルー ネットワーク ロードバランサの転送ルールの IP アドレスと一致しない場合、それらのレスポンス パケットは省略されます。

新しいバックエンド サービスでロギングを有効にする

gcloud

ロギングを有効にするには、gcloud compute backend-services create コマンドでバックエンド サービスを作成します。

    gcloud compute backend-services create BACKEND_SERVICE \
        --global \
        --load-balancing-scheme=EXTERNAL_PASSTHROUGH \
        --enable-logging \
        --logging-sample-rate=SAMPLE_RATE \
        --logging-optional=LOGGING_OPTIONAL \
        --logging-optional-fields=OPTIONAL_FIELDS
    

次のように置き換えます。

  • BACKEND_SERVICE: バックエンド サービスの名前。
  • SAMPLE_RATE: このフィールドは、このバックエンド サービスでロギングが有効になっている場合にのみ指定できます。

    フィールドの値は 0.0 to 1.0 の範囲である必要があります。ここで、0.0 はログが生成されないことを意味し、1.0サンプリングされたすべてのパケットについて接続がログに記録されることを意味します。ロギングを有効にしても、サンプリング レートが 0.0 であれば、ロギングが無効の場合と同じ結果になります。デフォルト値は 1.0 です。

  • LOGGING_OPTIONAL: ログに含めるオプション フィールド:
    • INCLUDE_ALL_OPTIONAL: すべてのオプション フィールドを含めます。
    • EXCLUDE_ALL_OPTIONAL(デフォルト): すべてのオプション フィールドを除外します。
    • CUSTOM: OPTIONAL_FIELDS で指定するオプション フィールドのカスタムリストを含めます。
  • OPTIONAL_FIELDS: ログに含めるオプション フィールドのカンマ区切りのリスト。

    (例: serverInstance.vm,serverGkeDetails)。LOGGING_OPTIONALCUSTOM に設定されている場合にのみ設定できます。

API

backendServices.insert メソッドに POST リクエストを送信します。

    POST https://compute.s3nsapis.fr/compute/v1/projects/`PROJECT_ID`/global/backendServices
    

すべてのオプションのフィールドを除外する

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL_PASSTHROUGH",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE
      }
    }
    

すべてのオプションのフィールドを含める

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL_PASSTHROUGH",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "INCLUDE_ALL_OPTIONAL"
      }
    }
    

オプション フィールドのカスタムリストを含める

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL_PASSTHROUGH",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "CUSTOM",
       "optionalFields": ["field1","field2",...]
      }
    }
    

既存のバックエンド サービスでロギングを有効にする

gcloud

gcloud compute backend-services update コマンドを使用して、既存のバックエンド サービスでロギングを有効にします。

    gcloud compute backend-services update BACKEND_SERVICE \
        --global \
        --enable-logging \
        --logging-sample-rate=SAMPLE_RATE \
        --logging-optional=LOGGING_OPTIONAL \
        --logging-optional-fields=OPTIONAL_FIELDS
    

次のように置き換えます。

  • BACKEND_SERVICE: バックエンド サービスの名前。
  • SAMPLE_RATE: このフィールドは、このバックエンド サービスでロギングが有効になっている場合にのみ指定できます。

    フィールドの値は 0.0 to 1.0 の範囲である必要があります。ここで、0.0 はログが報告されないことを意味し、1.0サンプリングされたすべてのパケットについて接続がログに記録されることを意味します。ロギングを有効にしても、サンプリング レートが 0.0 であれば、ロギングが無効の場合と同じ結果になります。デフォルト値は 1.0 です。

  • LOGGING_OPTIONAL: ログに含めるオプション フィールド:
    • INCLUDE_ALL_OPTIONAL: すべてのオプション フィールドを含めます。
    • EXCLUDE_ALL_OPTIONAL(デフォルト): すべてのオプション フィールドを除外します。
    • CUSTOM: OPTIONAL_FIELDS で指定するオプション フィールドのカスタムリストを含めます。
  • OPTIONAL_FIELDS: ログに含めるオプション フィールドのカンマ区切りのリスト。

    例: serverInstance.vm,serverGkeDetailsLOGGING_OPTIONALCUSTOM に設定されている場合のみ設定できます。

API

backendServices/patch メソッドに PATCH リクエストを送信します。

      PATCH https://compute.s3nsapis.fr/compute/v1/projects/`PROJECT_ID`/global/backendServices/`BACKEND_SERVICE`
     

すべてのオプションのフィールドを除外する

     "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "EXCLUDE_ALL_OPTIONAL"
      }
     

すべてのオプションのフィールドを含める

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL_PASSTHROUGH",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "INCLUDE_ALL_OPTIONAL"
      }
    }
    

オプション フィールドのカスタムリストを含める

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL_PASSTHROUGH",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "CUSTOM",
       "optionalFields": ["field1","field2",...]
      }
    }
    

既存のバックエンド サービスでロギングを無効にする

gcloud

gcloud compute backend-services update コマンドを使用して、バックエンド サービスのロギングを無効にします。

    gcloud compute backend-services update BACKEND_SERVICE \
        --global \
        --no-enable-logging

次のように置き換えます。

  • BACKEND_SERVICE: バックエンド サービスの名前。

API

backendServices/patch メソッドに PATCH リクエストを送信します。

    PATCH https://compute.s3nsapis.fr/compute/v1/projects/`PROJECT_ID`/global/backendServices/`BACKEND_SERVICE`

    {
    "logConfig": {
      "enable": false
     }
    }

ログを表示

ログが Cloud Logging に取り込まれ、ログルーター シンクで除外されていない場合、Cloud Logging APIGoogle Cloud CLI でログを確認できます。

すべてのグローバル外部パススルー ネットワーク ロードバランサのログを表示するには:

コンソール

  1. Cloud de Confiance コンソールで、[ログ エクスプローラ] ページに移動します。

    [ログ エクスプローラ] に移動

  2. [外部パススルー ネットワーク ロードバランサのルール] リソースタイプを選択します。

  3. loadbalancing.googleapis.com/flows ログ名を選択します。

コンソール クエリ

  1. Cloud de Confiance コンソールで、[ログ エクスプローラ] ページに移動します。

    [ログ エクスプローラ] に移動

  2. [クエリを表示] をクリックします。

  3. または、[クエリ] フィールドに次の内容を貼り付けます。ここで、PROJECT_ID は実際のプロジェクト ID に置き換えます。

    resource.type="loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows"
    
  4. [クエリを実行] をクリックします。

特定のバックエンド サービスのログを表示する

特定のバックエンド サービスのグローバル外部パススルー ネットワーク ロードバランサのログを表示するには:

コンソール クエリ

  1. Cloud de Confiance コンソールで、[ログ エクスプローラ] ページに移動します。

    [ログ エクスプローラ] に移動

  2. [クエリを表示] をクリックします。

  3. または、[クエリ] フィールドに次の内容を貼り付けます。PROJECT_ID はプロジェクト ID、BACKEND_SERVICE_NAME はバックエンド サービスの名前に置き換えます。

    resource.type="loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows"
    resource.labels.backend_service_name="BACKEND_SERVICE_NAME"
    
  4. [クエリを実行] をクリックします。

バックエンド インスタンス グループのログを表示する

特定のバックエンド インスタンス グループのグローバル外部パススルー ネットワーク ロードバランサのログを表示するには:

コンソール クエリ

  1. Cloud de Confiance コンソールで、[ログ エクスプローラ] ページに移動します。

    [ログ エクスプローラ] に移動

  2. [クエリを表示] をクリックします。

  3. または、[クエリ] フィールドに次の内容を貼り付けます。PROJECT_ID はプロジェクト ID に置き換え、BACKEND_GROUP_NAME はインスタンス グループの名前に置き換えます。

    resource.type="loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows"
    resource.labels.backend_group_name="BACKEND_GROUP_NAME"
    
  4. [クエリを実行] をクリックします。

ログのフィールド

ログレコードには、すべてのログレコードのデフォルト フィールドである必須フィールドと、詳細情報を追加するオプションのフィールドが含まれています。オプション フィールドは、ストレージ コストを節約するために省略できます。

一部のログフィールドはマルチ フィールド形式であり、所定のフィールドに複数のデータが含まれます。たとえば、connection フィールドは IpConnection 形式で、送信元と宛先の IP アドレスとポート、およびプロトコルが 1 つのフィールドに格納されます。これらのマルチ フィールドのフィールドについては、次のレコード形式の表で説明します。

モニタリング対象リソースは loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule です。

フィールド フィールドの形式 フィールドのタイプ: 必須または省略可 説明
乗り継ぎ IpConnection 必須 この接続を説明する 5 タプル。
startTime 文字列 必須 集計対象である時間間隔で最初に観測されるパケットのタイムスタンプ(RFC 3339 の日付文字列形式)。
endTime 文字列 必須 集計対象である時間間隔で最後に観測されるパケットのタイムスタンプ(RFC 3339 の日付文字列形式)。
bytesSent int64 必須 サーバーからクライアントに送信されるバイト数。
bytesReceived int64 必須 サーバーがクライアントから受信したバイト数。
packetsSent int64 必須 サーバーからクライアントに送信されたパケット数。
packetsReceived int64 必須 サーバーがクライアントから受信したパケット数。
rtt 文字列 必須

レイテンシは、TCP 接続でのみ測定されます。レイテンシは、ネットワークのラウンドトリップ時間(RTT)の推定値と、クライアントのオペレーティング システム内でパケットを処理するために費やした時間の合計です。

サンプリングされたパケットの場合、RTT はロードバランスされたバックエンドの観点から計算されます。TCP セグメントを送信したバックエンドと、送信されたセグメントのシーケンス番号の TCP 確認応答を受信したバックエンドとの時間差を測定することで計算されます。

レイテンシは、秒数で始まり、秒を示す文字列(s)で終わる形式で示されます。ナノ秒単位は小数点以下の秒数で表されます。たとえば、250 ミリ秒のレイテンシは 0.250000000s として示されます。

serverInstance InstanceDetails オプション バックエンド VM インスタンスの詳細。
clientLocation GeographicDetails オプション クライアントで使用可能な位置情報メタデータ。
serverGkeDetails GkeDetails オプション サーバー バックエンドの GKE メタデータ。バックエンドが GKE エンドポイントの場合にのみ使用できます。
networkTier NetworkTierDetails 省略可 外部接続のネットワーク ティア。クライアントが Cloud de Confiance by S3NS内にない場合にのみ設定されます。

IpConnection フィールドの形式

フィールド タイプ 説明
clientIp 文字列 クライアント IP アドレス
clientPort int32 クライアント ポート。TCP 接続と UDP 接続に対してのみ設定します。
serverIp 文字列 サーバーの IP アドレス(転送ルールの IP)
serverPort int32 サーバーポート。TCP 接続と UDP 接続に対してのみ設定します。
protocol int32 IANA プロトコル番号

InstanceDetails フィールドの形式

フィールド タイプ 説明
projectId 文字列 VM を含むプロジェクトの ID
vm 文字列 VM のインスタンス名
region string VM のリージョン
zone string VM のゾーン
vmIp 文字列 接続を処理したネットワーク インターフェースのプライマリ内部 IPv4 アドレス

GeographicDetails フィールドの形式

フィールド タイプ 説明
continent 文字列 大陸の名前
regionCode 文字列 Unicode の CLDR リージョン コード(USFR など)。ほとんどの国では、このコードが ISO-3166-2 コードに直接対応しています。
subRegion 文字列 Unicode CLDR サブディビジョン ID(国の州や都道府県、USCACAON など)。この Unicode コードは、ISO-3166-2 標準で定義されている下位地域区分から派生しています。
city 文字列 都市の名前。たとえば、カリフォルニア州の Mountain View は Mountain View です。この変数について有効な値の正規リストはありません。都市名には、US-ASCII 文字、数字、スペース、!#$%&'*+-.^_`|~ を含めることができます。
asn int32 このエンドポイントが属する外部ネットワークの自律システム番号(ASN)

GkeDetails フィールドの形式

フィールド タイプ 説明
クラスタ ClusterDetails GKE クラスタ メタデータ
pod PodDetails トラフィックの送信元または宛先が Pod である場合に入力される GKE Pod のメタデータ
service ServiceDetails Service エンドポイントにのみ入力される GKE Service メタデータ。レコードには最大 2 つの Service が含まれます。関連する Service が 3 つ以上ある場合、このフィールドには特別な MANY_SERVICES マーカーを持つ 1 つの Service が含まれます。

ClusterDetails フィールドの形式

フィールド タイプ 説明
クラスタ 文字列 GKE クラスタ名
clusterLocation 文字列 クラスタのロケーション。クラスタのロケーションは、ゾーンまたはリージョンのいずれかです。

PodDetails フィールドの形式

フィールド タイプ 説明
pod 文字列 Pod の名前
podNamespace 文字列 Pod の名前空間

ServiceDetails フィールドの形式

フィールド タイプ 説明
service 文字列 Service の名前。関連するサービスが 3 つ以上ある場合、フィールドは特別な MANY_SERVICES マーカーに設定されます。
serviceNamespace 文字列 Service の Namespace

NetworkTierDetails フィールドの形式

フィールド タイプ 説明
networkTier 文字列 接続で使用されている NetworkTier。[PREMIUM、STANDARD、FIXED_STANDARD、UNKNOWN] のいずれか。

モニタリング

グローバル外部パススルー ネットワーク ロードバランサは、主要な指標を Cloud Monitoring にエクスポートします。

モニタリング指標は次の目的で使用します。

  • ロードバランサの構成、使用状況、パフォーマンスを評価する
  • 問題のトラブルシューティングを行う
  • リソースの使用率とユーザー エクスペリエンスを改善する

Monitoring の事前定義されたダッシュボードに加えて、カスタム ダッシュボードを作成して、アラートをセットアップし、Monitoring API を使用して指標をクエリできます。

親のグローバル転送ルールを使用して、モニタリング指標をクエリまたはフィルタすることはできません。これは、可用性グループ内の各子転送ルールが、ロードバランスされたトラフィック、データプレーン ルーティング、ヘルスチェックを実装するためです。したがって、各可用性グループに対して Cloud de Confiance が生成する子転送ルールを使用して、指標をクエリしてフィルタする必要があります。 Cloud de Confianceこれらの子ルールには、親転送ルール名と -ag0 および -ag1 を連結した名前が付けられます。この子転送ルールの粒度でモニタリングすると、可用性グループごとに指標を表示できます。詳細については、転送ルールをご覧ください。

Monitoring ダッシュボードを表示する

コンソール

  1. Cloud de Confiance コンソールで、[Monitoring] ページに移動します。

    [モニタリング] に移動

  2. ナビゲーション パネルで [ダッシュボード] を選択します。

  3. [Google Cloud Load Balancers] ダッシュボードを選択します。すべてのロードバランサが表示されます。

  4. ロードバランサのリストからロードバランサ名を選択します。

[グローバル外部パススルー ネットワーク ロードバランサの詳細] ペインで、選択したロードバランサのさまざまな詳細を確認できます。このペインには、現在の構成が表示されます。

[KEY METRICS] ペインには、主な指標のグラフが表示されます。特定の内訳を確認するには、[Breakdowns] をクリックしてください。このペインには過去の構成に基づくデータが表示されますが、[グローバル外部パススルー ネットワーク ロードバランサの詳細] ペインには現在の構成のみが表示されます。詳細については、ダッシュボードとグラフをご覧ください。

Monitoring カスタム ダッシュボードを定義する

グローバル外部パススルー ネットワーク ロードバランサの指標に関しては、カスタムの Monitoring ダッシュボードを作成できます。

収集された指標のリストについては、指標とリソースタイプをご覧ください。結果のフィルタリングに使用できる属性のリストについては、フィルタをご覧ください。

コンソール

  1. Cloud de Confiance コンソールで、[Monitoring] ページに移動します。

    [モニタリング] に移動

  2. [ダッシュボード] > [CREATE DASHBOARD] を選択します。

  3. [Add chart] をクリックします。

  4. グラフにタイトルを付けます。

  5. 指標とフィルタを選択します。

    グローバル外部パススルー ネットワーク ロードバランサの指標を見つけるには、loadbalancing.googleapis.com/l3/external 接頭辞を検索します。

  6. [保存] をクリックします。

Monitoring アラートを定義する

さまざまなグローバル外部パススルー ネットワーク ロードバランサの指標に Monitoring アラートを定義できます。

コンソール

  1. Cloud de Confiance コンソールで、[Monitoring] ページに移動します。

    [モニタリング] に移動

  2. [アラート] > [CREATE POLICY] を選択します。

  3. リソースタイプと指標を選択します。

    グローバル外部パススルー ネットワーク ロードバランサのリソースタイプと指標を見つけるには、[リソースタイプと指標の検索] フィールドで loadbalancing.googleapis.com/l3/external を検索します。

  4. アラートをトリガーするタイミングを設定するには、[構成] を指定します。

  5. 必要に応じて、フィルタを追加します。

  6. [保存] をクリックします。

指標報告の頻度と保持

グローバル外部パススルー ネットワーク ロードバランサの指標は、1 分単位のバッチで Monitoring にエクスポートされます。モニタリング データは 6 週間保持されます。指標はサンプリングされたトラフィックに基づいています(サンプリング レートは動的で、調整できません)。ダッシュボードでは、1 時間(1H)、6 時間(6H)、1 日(1D)、1 週間(1W)、6 週間(6W)のデフォルト間隔でデータ分析の結果を確認できます。6 週間から 60 秒までの任意の間隔を指定して、手動で分析を行うこともできます。

指標とリソースタイプ

このセクションでは、グローバル外部パススルー ネットワーク ロードバランサの指標とリソースタイプについて説明します。

指標

グローバル外部パススルー ネットワーク ロードバランサの次の指標が、Monitoring に報告されます。これらの指標名は、API リクエストの作成時に使用できます。

metric_name タイプ 説明
loadbalancing.googleapis.com/l3/external/ingress_bytes_count カウンタ クライアントからグローバル外部パススルー ネットワーク ロードバランサのバックエンドに送信されるバイト数。TCP フローの場合、アプリケーション ストリーム内のバイトのみがカウントされます。
loadbalancing.googleapis.com/l3/external/ingress_packets_count カウンタ クライアントからグローバル外部パススルー ネットワーク ロードバランサのバックエンドに送信されるパケット数。
loadbalancing.googleapis.com/l3/external/egress_bytes_count カウンタ グローバル外部パススルー ネットワーク ロードバランサのバックエンドからクライアントに送信されるバイト数。TCP フローの場合、アプリケーション ストリーム内のバイトのみがカウントされます。
loadbalancing.googleapis.com/l3/external/egress_packets_count カウンタ グローバル外部パススルー ネットワーク ロードバランサのバックエンドからクライアントに送信されるパケット数。
loadbalancing.googleapis.com/l3/external/rtt_latencies 分布

グローバル外部パススルー ネットワーク ロードバランサ フローの TCP 接続で測定された RTT の分布。

TCP トラフィックに対してのみ使用できます。

リソースタイプ

グローバル外部パススルー ネットワーク ロードバランサは、次のリソースタイプを使用します。

  • tcp_lb_rule
  • udp_lb_rule
  • loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule

グローバル外部パススルー ネットワーク ロードバランサは、TCP、UDP、ESP、GRE、ICMP、ICMPv6 トラフィックをサポートします。

リソースタイプを tcp_lb_rule または udp_lb_rule として指定すると、モニタリング対象データを TCP または UDP プロトコルのいずれかに限定できます。リソースタイプを loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule として指定すると、TCP、UDP、ESP、GRE、ICMP、ICMPv6 など、サポートされているすべてのプロトコルをモニタリングできます。

フィルタ

指標は、グローバル外部パススルー ネットワーク ロードバランサごとに集計されます。集計された指標は、次のディメンションでフィルタ処理できます。

tcp_lb_rule または udp_lb_rule のリソースラベル

クエリはリソースによって制限できます。また、これらの値で結果をグループ化することもできます。

resource.label.<var>LABEL_KEY</var>:
label_key タイプ 説明
project 文字列 このリソースに関連付けられた Cloud de Confiance プロジェクトの ID。
load_balancer_name 文字列 ロードバランサの名前。
region 文字列 ロードバランサのバックエンドがあるリージョン(例: us-central1europe-west1asia-east1)。
network_name 文字列 ロードバランサのバックエンドが存在する VPC ネットワーク。
backend_target_type 文字列 接続を処理したバックエンド ターゲットのタイプ。有効な値は BACKEND_SERVICE です。
backend_target_name 文字列 バックエンド サービスの名前。
forwarding_rule_name 文字列

転送ルールの名前。

これは、 Cloud de Confianceによって生成された子転送ルールの名前の 1 つです(接尾辞 -ag0 または -ag1 が付いています)。

forwarding_rule_network_tier 文字列 転送ルールのネットワーク階層
backend_name 文字列

接続を処理したバックエンドの名前。

値は、接続を処理したバックエンド インスタンス グループまたはネットワーク エンドポイント グループ(NEG)の名前です。

backend_type 文字列

接続を処理したバックエンドのタイプ。

値は INSTANCE_GROUP または NETWORK_ENDPOINT_GROUP のいずれかです。

backend_scope 文字列

バックエンド インスタンス グループまたは NEG のゾーンまたはリージョン。

backend_scope_type 文字列

接続を処理したバックエンド グループのスコープのタイプ。有効な値は ZONE または REGION です。

backend_subnetwork_name 文字列 接続を受信したバックエンドのサブネットワークの名前。
endpoint_zone 文字列 接続を処理したバックエンド VM のゾーン。

loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule のリソースラベル

クエリはリソースによって制限できます。また、これらの値で結果をグループ化することもできます。

resource.label.<var>LABEL_KEY</var>:
label_key タイプ 説明
project 文字列 このリソースに関連付けられた Cloud de Confiance プロジェクトの ID。
region 文字列 ロードバランサのバックエンドがあるリージョン(例: us-central1europe-west1asia-east1)。
backend_network_name 文字列 ロードバランサのバックエンドが存在する VPC ネットワーク。
backend_target_type 文字列 接続を処理したバックエンド ターゲットのタイプ。有効な値は BACKEND_SERVICE です。
backend_service_name 文字列 接続を処理したバックエンド サービスの名前。
forwarding_rule_name 文字列

転送ルールの名前。

これは、 Cloud de Confianceで生成された子転送ルールのいずれかの名前です(接尾辞 -ag0 または -ag1 が付いています)。

backend_group_name 文字列 接続を処理したバックエンド グループの名前。
backend_group_type 文字列

接続を処理したバックエンド グループのタイプ。

backend_target_typeBACKEND_SERVICE の場合、値は INSTANCE_GROUP または NETWORK_ENDPOINT_GROUP です。

backend_group_scope 文字列 接続を処理したバックエンド グループ(ゾーンまたはリージョンの名前)のスコープ。
backend_subnetwork_name 文字列 接続を受信したバックエンドのサブネットワークの名前。
backend_zone 文字列 接続を処理したバックエンド VM のゾーン。

指標ラベル

クエリは指標ラベルで制限できます。また、これらの値で結果をグループ化することもできます。

metric.label.<var>LABEL_KEY</var>:
label_key タイプ 説明
client_country 文字列 グローバル外部パススルー ネットワーク ロードバランサへの接続を開始したクライアントの国。
client_continent 文字列 グローバル外部パススルー ネットワーク ロードバランサへの接続を開始したクライアントの大陸。
protocol 文字列

loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule リソースの接続のプロトコル。

tcp_lb_rule リソースと udp_lb_rule リソースでは、このフィールドは空白のままにします。

API リクエストのモニタリング

Monitoring API の v3 projects.timeSeries.list リクエストを使用して、グローバル外部パススルー ネットワーク ロードバランサに関する任意のクエリを構築できます。さまざまな定義の正確な構造は、一般的なモニタリング フィルタのセマンティクスに従います。

API リクエストの例

  • 2019 年 7 月 1 日の UTC 午後 12 時 00 分から午後 12 時 02 分に、プロジェクト内のすべてのグローバル外部パススルー ネットワーク ロードバランサから送信された合計バイト数を 1 分の集計で取得します。

    timeSeries.list のパラメータ:

    • name: projects/PROJECT_ID
    • Filter: resource.type = "tcp_lb_rule" AND metric.name="loadbalancing.googleapis.com/l3/external/egress_bytes_count"
    • interval.start_time: 2019-07-01T12:00:00Z
    • interval.end_time: 2019-07-01T12:02:00Z
    • aggregation.alignmentPeriod: 60s
    • aggregation.crossSeriesReducer: REDUCE_SUM
    • aggregation.perSeriesAligner: ALIGN_SUM
  • 2019 年 7 月 1 日の UTC 午後 12 時 19 分から 12 時 20 分の間のプロジェクトでのグローバル外部パススルー ネットワーク ロードバランサ全体の RTT 測定値の中央値を、クライアントの国別に取得します。

    timeSeries.list のパラメータ:

    • name: projects/PROJECT_ID
    • Filter: resource.type = "tcp_lb_rule" AND metric.name="loadbalancing.googleapis.com/l3/external/rtt_latencies"
    • interval.start_time: 2019-07-01T12:19:00Z
    • interval.end_time: 2019-07-01T12:20:00Z
    • aggregation.alignmentPeriod: 60s
    • aggregation.crossSeriesReducer: REDUCE_SUM
    • aggregation.groupByFields: metric.label.client_country
    • aggregation.perSeriesAligner: ALIGN_PERCENTILE_50
  • 2019 年 7 月 1 日の UTC 午後 12 時 19 分から 12 時 20 分の間の特定のグローバル外部パススルー ネットワーク ロードバランサからのバイト数の合計を、エンドポイント ゾーンとクライアントの大陸別に取得します。

    timeSeries.list のパラメータ:

    • name: projects/PROJECT_ID
    • Filter: resource.type = "tcp_lb_rule" AND resource.label.load_balancer_name = "netlb-bs-1" AND metric.name="loadbalancing.googleapis.com/l3/external/ingress_bytes_count"
    • interval.start_time: 2019-07-01T12:19:00Z
    • interval.end_time: 2019-07-01T12:20:00Z
    • aggregation.alignmentPeriod: 60s
    • aggregation.crossSeriesReducer: REDUCE_SUM
    • aggregation.groupByFields: metric.label.client_continent
    • aggregation.groupByFields: resource.label.endpoint_zone
    • aggregation.perSeriesAligner: ALIGN_SUM

次のステップ