このドキュメントでは、外部パススルー ネットワーク ロードバランサに Cloud Logging と Cloud Monitoring を構成し、使用する方法について説明します。
ロギング
ログは、外部パススルー ネットワーク ロードバランサのトラブルシューティングとモニタリングに役立つ情報を提供します。ログは接続ごとに集約され、ほぼリアルタイムでエクスポートされます。ログは、ロードバランスされたインスタンスの TCP、UDP、ESP、GRE、ICMP、ICMPv6 の各フローについて、上り(内向き)トラフィックと下り(外向き)トラフィックの両方で生成されます。ログエントリに含まれるフィールドの詳細については、ログフィールドをご覧ください。
ログの使用に追加料金はかかりません。ログのインポート方法に基づいて、Cloud Logging、BigQuery、または Pub/Sub の標準料金が適用されます。ログを有効にしても、ロードバランサのパフォーマンスに影響はありません。
ロギングには次の利点があります。
外部パススルー ネットワーク ロードバランサのトラフィック モニタリング。接続ごとのロギングにより、各接続がサービスを提供するバックエンドにどのようにルーティングされるかについての分析情報が得られます。
ネットワークのトラブルシューティング。トラブルシューティングには、外部パススルー ネットワーク ロードバランサのログを利用できます。詳細については、外部パススルー ネットワーク ロードバランサのトラブルシューティングをご覧ください。
外部クライアントから VM へのフローのサンプルログ形式
次の図は、外部クライアント(203.0.113.7)、外部パススルー ネットワーク ロードバランサ(198.51.100.99)、バックエンド インスタンス(10.240.0.2)のインバウンド トラフィックとアウトバウンド トラフィックを示しています。
クライアントからバックエンド インスタンスへの接続の外部パススルー ネットワーク ロードバランサのログの形式は次のとおりです。
connection.clientIp
: 203.0.113.7connection.serverIp
: 198.51.100.99bytesSent
: 1256bytesReceived
: 4521
ログのサンプリングと収集
Google Cloud は、ロードバランサのバックエンド VM で送受信されたパケットをサンプリングします。サンプリングされたパケットは、ログを生成するために処理されます。
すべてのパケットがサンプリングされるわけではありません。Google Cloud は、物理ホスト上のトラフィック量に応じてパケットのサブセットをサンプリングします。最も低いサンプリング レートは、1,024 パケット中 1 パケットです。サンプリング レートは Google Cloud によって動的に制御されます。サンプリング レートは調整できません。
パケット サンプリングは、ファイアウォール ルールと次のように相互作用します。
- 下り(外向き)ファイアウォール ルールが適用される前にパケットがサンプリングされます。
- 上り(内向き)ファイアウォール ルールが適用された後にパケットがサンプリングされます。
パケット サンプリングの後、Google Cloud はサンプリングされたパケットを次のように処理します。
集計: サンプリングされたパケットは 5 秒間隔で集計され、単一のフローエントリが生成されます。
構成可能な(セカンダリ)ログ サンプリング: 2 番目のサンプリング プロセスで、フローをサンプリングします。logConfig.sampleRate パラメータに従って、ログエントリとして出力されるフロー部分の割合を制御します。
logConfig.sampleRate
が1.0
(100%)の場合、サンプリングされたパケットがすべて処理されます。Logging への書き込み: ログエントリが Cloud Logging に書き込まれます。
オプション フィールド
ログレコードには必須フィールドとオプション フィールドがあります。ログフィールド セクションには、オプション フィールドと必須フィールドが表示されます。すべての必須フィールドは常に含まれます。保持するオプション フィールドはカスタマイズできます。
[すべてのオプションのフィールドを含める] を選択すると、ログレコード形式のすべてのオプションのフィールドがフローログに含まれます。新しいオプション フィールドがレコード形式に追加されると、フローログに新しいフィールドが自動的に含まれます。
[すべてのオプションのフィールドを除外する] を選択した場合、オプション フィールドはすべて省略されます。
[カスタム] を選択する場合は、親フィールドに含めるオプション フィールド(例:
serverInstance
)またはフルネーム(例:serverInstance.vm
)を指定できます。
新しいオプション フィールドがレコード形式に追加された場合、これらのフィールドが指定した親フィールド内の新しいフィールドである場合を除き、これらのフィールドはログに含まれません。
親フィールドを使用してカスタムのオプション フィールドを指定した場合、その親フィールド内のレコード形式に新しいオプション フィールドが追加されると、ログには新しいフィールドが自動的に含まれます。たとえば、optionalFieldA
を含めると、optionalFieldA.subField1
という名前で新しいログがフィールドに自動的に追加されます。
オプション フィールドをカスタマイズする手順については、新しいバックエンド サービスでロギングを有効にするをご覧ください。
レスポンス パケットの送信元 IP アドレスの要件
ロギングは、これらのパケットの送信元 IP アドレスがロードバランサの転送ルールの IP アドレスと一致する場合にのみ、バックエンド VM からのレスポンス パケットをサンプリングします。TCP 接続の場合、レスポンス パケットの送信元は常にリクエスト パケットの宛先と一致している必要があります。ただし、他のプロトコルでは、レスポンス パケットが異なる送信元 IP アドレスを使用する場合があります。詳細については、リクエスト パケットと戻りパケットの IP アドレスをご覧ください。
外部パススルー ネットワーク ロードバランサのロギングで使用されるパケット サンプリング プロセスでは、バックエンド VM からのレスポンス パケットのソースが外部パススルー ネットワーク ロードバランサの転送ルールの IP アドレスと一致しない場合、それらのレスポンス パケットは省略されます。
新しいバックエンド サービスでロギングを有効にする
コンソール
Google Cloud コンソールの [ロード バランシング] ページに移動します。
- ロードバランサの名前をクリックします。
- [ 編集] をクリックしてから、[バックエンドの構成] をクリックします。
- [バックエンド サービスを作成] を選択し、必須のバックエンド サービス フィールドに入力します。
- [ロギング] セクションで、[ロギングを有効にする] チェックボックスをオンにします。
- [サンプルレート] の値を選択します。レートは
0.0
~1.0
(デフォルト)に設定できます。 - 省略可: ログにすべてのオプション フィールドをすべて含めるには、[任意項目] セクションで [すべてのオプションのフィールドを含める] をクリックします。
- バックエンド サービスの編集を終了するには、[更新] をクリックします。
- ロードバランサの編集を終了するには、[更新] をクリックします。
gcloud
ロギングを有効にするには、gcloud compute backend-services create
コマンドでバックエンド サービスを作成します。
gcloud compute backend-services create BACKEND_SERVICE \ --region=REGION \ --enable-logging \ --logging-sample-rate=SAMPLE_RATE \ --logging-optional=LOGGING_OPTIONAL \ --logging-optional-fields=OPTIONAL_FIELDS
次のように置き換えます。
BACKEND_SERVICE
: バックエンド サービスの名前。REGION
: 作成するバックエンド サービスのリージョン。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_OPTIONAL
がCUSTOM
に設定されている場合のみ設定できます。
API
regionBackendServices.insert
メソッドに POST
リクエストを送信します。
POST https://compute.googleapis.com/compute/v1/projects/`PROJECT_ID`/regions/`REGION`/backendServices
すべてのオプション フィールドを除外する
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "EXTERNAL", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
すべてのオプション フィールドを含める
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "EXTERNAL", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE, "optionalMode": "INCLUDE_ALL_OPTIONAL" } }
オプション フィールドのカスタムリストを含める
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "EXTERNAL", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE, "optionalMode": "CUSTOM", "optionalFields": ["field1","field2",...] } }
既存のバックエンド サービスでロギングを有効にする
コンソール
Google Cloud コンソールの [ロード バランシング] ページに移動します。
- ロードバランサの名前をクリックします。
- [ 編集] をクリックしてから、[バックエンドの構成] をクリックします。
- バックエンド サービスの横にある [ 編集] をクリックします。
- [ロギング] セクションで、[ロギングを有効にする] チェックボックスをオンにします。
- [サンプルレート] の値を選択します。レートは
0.0
~1.0
(デフォルト)に設定できます。 - 省略可: ログにすべてのオプション フィールドをすべて含めるには、[任意項目] セクションで [すべてのオプションのフィールドを含める] をクリックします。
- バックエンド サービスの編集を終了するには、[更新] をクリックします。
- ロードバランサの編集を終了するには、[更新] をクリックします。
gcloud
gcloud compute backend-services update
コマンドを使用して、既存のバックエンド サービスでロギングを有効にします。
gcloud compute backend-services update BACKEND_SERVICE \ --region=REGION \ --enable-logging \ --logging-sample-rate=SAMPLE_RATE \ --logging-optional=LOGGING_OPTIONAL \ --logging-optional-fields=OPTIONAL_FIELDS
次のように置き換えます。
BACKEND_SERVICE
: バックエンド サービスの名前。REGION
: 作成するバックエンド サービスのリージョン。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_OPTIONAL
がCUSTOM
に設定されている場合のみ設定できます。
API
regionBackendServices/patch
メソッドに PATCH
リクエストを送信します。
PATCH https://compute.googleapis.com/compute/v1/projects/`PROJECT_ID`/regions/`REGION`/backendServices/`BACKEND_SERVICE`
すべてのオプション フィールドを除外する
"logConfig": { "enable": true, "sampleRate": SAMPLE_RATE, "optionalMode": "EXCLUDE_ALL_OPTIONAL" }
すべてのオプション フィールドを含める
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "EXTERNAL", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE, "optionalMode": "INCLUDE_ALL_OPTIONAL" } }
オプション フィールドのカスタムリストを含める
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "EXTERNAL", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE, "optionalMode": "CUSTOM", "optionalFields": ["field1","field2",...] } }
既存のバックエンド サービスでロギングを無効にする
コンソール
Google Cloud コンソールで、[ロード バランシング] ページに移動します。
ロードバランサの名前をクリックします。
[
編集] をクリックしてから、[バックエンドの構成] をクリックします。ロギングを完全に無効にするには、[ロギング] セクションで [ロギングを有効にする] チェックボックスをオフにします。
ロギングを有効にした場合、[サンプルレート] に異なる値を設定できます。レートは
0.0
~1.0
(デフォルト)に設定できます。サンプリングされたパケットの 20% に対してのみログを生成するには、値を0.2
に設定します。バックエンド サービスの編集を終了するには、[更新] をクリックします。
ロードバランサの編集を終了するには、[更新] をクリックします。
gcloud
gcloud compute backend-services update
コマンドを使用して、バックエンド サービスのロギングを無効にします。
gcloud compute backend-services update BACKEND_SERVICE \ --region=REGION \ --no-enable-logging
次のように置き換えます。
BACKEND_SERVICE
: バックエンド サービスの名前。REGION
: バックエンド サービスのリージョン。
API
regionBackendServices/patch
メソッドに PATCH
リクエストを送信します。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
/regions/REGION
/backendServices/BACKEND_SERVICE
{ "logConfig": { "enable": false } }
ログの表示
ログが Cloud Logging に取り込まれ、ログルーター シンクで除外されていない場合、Cloud Logging API と Google Cloud CLI でログを確認できます。
すべての外部パススルー ネットワーク ロードバランサのログを表示するには:
コンソール
Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。
[外部パススルー ネットワーク ロードバランサのルール] リソースタイプを選択します。
loadbalancing.googleapis.com/flows ログ名を選択します。
コンソールのクエリ
Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。
[クエリを表示] をクリックします。
または、[クエリ] フィールドに次の内容を貼り付けます。ここで、
PROJECT_ID
は実際のプロジェクト ID に置き換えます。resource.type="loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule" logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows"
[クエリを実行] をクリックします。
特定のバックエンド サービスのログを表示する
特定のバックエンド サービスの外部パススルー ネットワーク ロードバランサのログを表示するには:
コンソール クエリ
Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。
[クエリを表示] をクリックします。
または、[クエリ] フィールドに次の内容を貼り付けます。
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"
[クエリを実行] をクリックします。
バックエンド インスタンス グループのログを表示する
特定のバックエンド インスタンス グループの外部パススルー ネットワーク ロードバランサのログを表示するには:
コンソール クエリ
Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。
[クエリを表示] をクリックします。
または、[クエリ] フィールドに次の内容を貼り付けます。
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"
[クエリを実行] をクリックします。
ログのフィールド
ログレコードには、すべてのログレコードのデフォルト フィールドである必須フィールドと、詳細情報を追加するオプションのフィールドが含まれています。オプション フィールドは、ストレージ コストを節約するために省略できます。
一部のログフィールドはマルチ フィールド形式であり、所定のフィールドに複数のデータが含まれます。たとえば、connection
フィールドは IpConnection
形式で、送信元と宛先の IP アドレスとポート、およびプロトコルが 1 つのフィールドに格納されます。これらのマルチ フィールドのフィールドについては、次のレコード形式の表で説明します。
モニタリング対象リソースは loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule です。
フィールド | フィールドの形式 | フィールドのタイプ: 必須または省略可 | 説明 |
---|---|---|---|
connection | 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 | 省略可 | 外部接続のネットワーク ティア。クライアントが Google Cloud 内にない場合にのみ設定されます。 |
IpConnection フィールドの形式
フィールド | タイプ | 説明 |
---|---|---|
clientIp | 文字列 | クライアント IP アドレス |
clientPort | int32 | クライアント ポート。TCP 接続と UDP 接続に対してのみ設定します。 |
serverIp | 文字列 | サーバーの IP アドレス(転送ルールの IP) |
serverPort | int32 | サーバーポート。TCP 接続と UDP 接続に対してのみ設定します。 |
protocol | int32 | IANA プロトコル番号 |
InstanceDetails フィールドの形式
フィールド | タイプ | 説明 |
---|---|---|
projectId | 文字列 | VM を含むプロジェクトの ID |
vm | 文字列 | VM のインスタンス名 |
region | 文字列 | VM のリージョン |
zone | 文字列 | VM のゾーン |
vmIp | 文字列 | 接続を処理したネットワーク インターフェースのプライマリ内部 IPv4 アドレス |
GeographicDetails フィールドの形式
フィールド | タイプ | 説明 |
---|---|---|
continent | 文字列 | 大陸の名前 |
regionCode | 文字列 | Unicode の CLDR リージョン コード(US や FR など)。ほとんどの国では、このコードが ISO-3166-2 コードに直接対応しています。 |
subRegion | 文字列 | Unicode CLDR サブディビジョン ID (国の州や都道府県、USCA や CAON など)。この Unicode コードは、ISO-3166-2 標準で定義されている下位地域区分から派生しています)。 |
city | 文字列 | 都市の名前。たとえば、カリフォルニア州の Mountain View は Mountain View です。この変数について有効な値の正規リストはありません。都市名には、US-ASCII 文字、数字、スペース、!#$%&'*+-.^_`|~ を含めることができます。 |
asn | int32 | このエンドポイントが属する外部ネットワークの自律システム番号(ASN) |
GkeDetails フィールドの形式
フィールド | タイプ | 説明 |
---|---|---|
cluster | ClusterDetails | GKE クラスタ メタデータ |
pod | PodDetails | トラフィックの送信元または宛先が Pod である場合に入力される GKE Pod のメタデータ。 |
service | ServiceDetails | Service エンドポイントにのみ入力される GKE Service メタデータ。レコードには最大 2 つの Service が含まれます。関連する Service が 3 つ以上ある場合、このフィールドには特別な MANY_SERVICES マーカーを持つ 1 つの Service が含まれます。 |
ClusterDetails フィールドの形式
フィールド | タイプ | 説明 |
---|---|---|
cluster | 文字列 | 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 を使用して指標をクエリできます。
Monitoring ダッシュボードを表示する
コンソール
Google Cloud コンソールで [Monitoring] ページに移動します。
ナビゲーション パネルで [ダッシュボード] を選択します。
[Google Cloud Load Balancers] ダッシュボードを選択します。すべてのロードバランサが表示されます。
ロードバランサのリストからロードバランサ名を選択します。
[External passthrough Network Load Balancer details] ペインで、選択したロードバランサのさまざまな詳細を確認できます。このペインには、現在の構成が表示されます。
[KEY METRICS] ペインには、主な指標のグラフが表示されます。特定の内訳を確認するには、[内訳] をクリックしてください。このペインには過去の構成に基づくデータが表示されますが、[External passthrough Network Load Balancer details] ペインには現在の構成のみが表示されます。詳細については、ダッシュボードとグラフをご覧ください。
Monitoring カスタム ダッシュボードを定義する
カスタム パススルー ネットワーク ロードバランサの指標に関しては、カスタムの Monitoring ダッシュボードを作成できます。
収集された指標のリストについては、指標とリソースタイプをご覧ください。結果のフィルタリングに使用できる属性のリストについては、フィルタをご覧ください。
コンソール
Google Cloud コンソールで [Monitoring] ページに移動します。
[ダッシュボード] > [CREATE DASHBOARD] を選択します。
[Add chart] をクリックします。
グラフにタイトルを付けます。
指標とフィルタを選択します。
外部パススルー ネットワーク ロードバランサの指標を見つけるには、
loadbalancing.googleapis.com/l3/external
接頭辞を検索します。[保存] をクリックします。
Monitoring アラートを定義する
さまざまな外部パススルー ネットワーク ロードバランサの指標に Monitoring アラートを定義できます。
コンソール
Google Cloud コンソールで [Monitoring] ページに移動します。
[アラート] > [CREATE POLICY] を選択します。
リソースタイプと指標を選択します。
外部パススルー ネットワーク ロードバランサのリソースタイプと指標を見つけるには、[Find resource type and metric] フィールドで
loadbalancing.googleapis.com/l3/external
を検索します。アラートをトリガーするタイミングを設定するには、[Configuration] を指定します。
必要に応じて、フィルタを追加します。
[Save] をクリックします。
指標報告の頻度と保持
外部パススルー ネットワーク ロードバランサの指標は、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 |
文字列 | このリソースに関連付けられた Google Cloud プロジェクトの ID。 |
load_balancer_name |
文字列 | ロードバランサの名前。 |
region |
文字列 | ロードバランサのバックエンドが配置されているリージョン(例: us-central1 、europe-west1 、asia-east1 )。 |
network_name |
文字列 | ロードバランサのバックエンドが存在する VPC ネットワーク。 |
backend_target_type |
文字列 | 外部パススルー ネットワーク ロードバランサがターゲット プールベースまたはバックエンド サービスベースのどちらであるかを示します。有効な値は BACKEND_SERVICE または TARGET_POOL です。 |
backend_target_name |
文字列 | ターゲット プールベースの外部パススルー ネットワーク ロードバランサの場合、ターゲット プールの名前。バックエンド サービスベースの外部パススルー ネットワーク ロードバランサの場合、バックエンド サービスの名前。 |
forwarding_rule_name |
文字列 | 転送ルールの名前。 |
forwarding_rule_network_tier |
文字列 | 転送ルールのネットワーク階層。 |
backend_name |
文字列 | 接続を処理したバックエンドの名前。 バックエンド サービスベースの外部パススルー ネットワーク ロードバランサの場合、値は接続を処理したバックエンド インスタンス グループまたはネットワーク エンドポイント グループ(NEG)の名前です。 ターゲット プールベースの外部パススルー ネットワーク ロードバランサの場合、値はターゲット プールの名前です。 |
backend_type |
文字列 | 接続を処理したバックエンドのタイプ。 バックエンド サービスベースの外部パススルー ネットワーク ロードバランサの場合、値は ターゲット プールベースの外部パススルー ネットワーク ロードバランサの場合、値は |
backend_scope |
文字列 | バックエンド サービスベースの外部パススルー ネットワーク ロードバランサの場合、バックエンド インスタンス グループまたは NEG のゾーンあるいはリージョン。 ターゲット プール ベースのネットワーク ロードバランサの場合、値は |
backend_scope_type |
文字列 | 接続を処理したバックエンド グループのスコープのタイプ。有効な値は ターゲット プール ベースのネットワーク ロードバランサの場合、値は |
backend_failover_configuration |
文字列 | 接続を処理したバックエンド グループのフェイルオーバー構成。有効な値は PRIMARY 、BACKUP 、または UNKNOWN です。 |
backend_subnetwork_name |
文字列 | 接続を受信したバックエンドのサブネットワークの名前。 |
endpoint_zone |
文字列 | 接続を処理したバックエンド VM のゾーン。 |
loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule
のリソースラベル
クエリはリソースによって制限できます。また、これらの値で結果をグループ化することもできます。
resource.label.<var>LABEL_KEY</var>:
label_key | タイプ | 説明 |
---|---|---|
project |
文字列 | このリソースに関連付けられた Google Cloud プロジェクトの ID。 |
region |
文字列 | ロードバランサのバックエンドがあるリージョン(例: us-central1 、europe-west1 、asia-east1 )。 |
backend_network_name |
文字列 | ロードバランサのバックエンドが存在する VPC ネットワーク。 |
backend_target_type |
文字列 | 接続を処理したバックエンド ターゲットのタイプ。有効な値は BACKEND_SERVICE または TARGET_POOL です。 |
backend_service_name |
文字列 | 接続を処理したバックエンド サービスの名前。backend_target_type が TARGET_POOL の場合、値は UNSUPPORTED_FOR_TARGET_POOL です。 |
primary_target_pool |
文字列 | プライマリ ターゲット プールの名前。backend_target_type が BACKEND_SERVICE の場合、値は UNSUPPORTED_FOR_BACKEND_SERVICE です。 |
target_pool |
文字列 | ターゲット プールの名前backend_target_type が BACKEND_SERVICE の場合、値は UNSUPPORTED_FOR_BACKEND_SERVICE です。 |
forwarding_rule_name |
文字列 | 外部パススルー ネットワーク ロードバランサの転送ルールの名前。 |
backend_group_name |
文字列 | 接続を処理したバックエンド グループの名前。backend_target_type が TARGET_POOL の場合、値は UNSUPPORTED_FOR_TARGET_POOL です。 |
backend_group_type |
文字列 | 接続を処理したバックエンド グループのタイプ。
|
backend_group_scope |
文字列 | 接続を処理したバックエンド グループ(ゾーンまたはリージョンの名前)のスコープ。backend_target_type が TARGET_POOL の場合、値は UNSUPPORTED_FOR_TARGET_POOL です。 |
backend_subnetwork_name |
文字列 | 接続を受信したバックエンドのサブネットワークの名前。 |
backend_zone |
文字列 | 接続を処理したバックエンド VM のゾーン。 |
指標ラベル
クエリは指標ラベルで制限できます。また、これらの値で結果をグループ化することもできます。
metric.label.<var>LABEL_KEY</var>:
label_key | タイプ | 説明 |
---|---|---|
client_country |
文字列 | 外部パススルー ネットワーク ロードバランサへの接続を開始したクライアントの国。 |
client_continent |
文字列 | 外部パススルー ネットワーク ロードバランサへの接続を開始したクライアントの大陸。 |
protocol |
文字列 |
|
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"
ANDmetric.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
- name: projects/
2019 年 7 月 1 日の UTC 午後 12 時 19 分から 12 時 20 分の間のプロジェクトでの外部パススルー ネットワーク ロードバランサ全体の RTT 測定値の中央値を、クライアントの国別に取得します。
timeSeries.list のパラメータ:
- name: projects/
PROJECT_ID
- Filter:
resource.type = "tcp_lb_rule"
ANDmetric.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
- name: projects/
2019 年 7 月 1 日の UTC 午後 12 時 19 分から 12 時 20 分の間の特定の外部パススルー ネットワーク ロードバランサからのバイト数の合計を、エンドポイント ゾーンとクライアントの大陸別に取得します。
timeSeries.list のパラメータ:
- name: projects/
PROJECT_ID
- Filter:
resource.type = "tcp_lb_rule"
ANDresource.label.load_balancer_name = "netlb-bs-1"
ANDmetric.name="loadbalancing.googleapis.com/l3/external/ingress_bytes_count"
- interval.start_time:
2019-07-01T12:19:00Z
- interval.end_time:
2017-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
- name: projects/
次のステップ
- 外部パススルー ネットワーク ロードバランサのコンセプトについて理解する
- 外部パススルー ネットワーク ロードバランサを設定する
- Monitoring の指標、時系列、リソースについて理解する
- 転送ルールについて理解する
- ロギングの問題のトラブルシューティングについて理解する