このページでは、プロキシ ネットワーク ロードバランサに Cloud Logging と Cloud Monitoring を構成して使用する方法について説明します。
リソースのモニタリング
次の表に、ロードバランサのリソース名を示します。
リージョン外部プロキシ ネットワーク ロードバランサ リージョン内部プロキシ ネットワーク ロードバランサ クロスリージョン内部プロキシ ネットワーク ロードバランサ グローバル外部プロキシ ネットワーク ロードバランサ |
従来のプロキシ ネットワーク ロードバランサ | |
---|---|---|
Logging のモニタリング対象のリソースタイプ | 「プロキシ ネットワーク ロードバランサのルール」l4_proxy_rule |
「グローバル外部プロキシ ネットワーク ロードバランサのルール」tcp_ssl_proxy_rule |
Monitoring のモニタリング対象のリソースタイプ | 「プロキシ ネットワーク ロードバランサのルール」l4_proxy_rule |
「グローバル外部プロキシ ネットワーク ロードバランサのルール」tcp_ssl_proxy_rule |
プロキシ ネットワーク ロードバランサのロギング
ログは、ロードバランサのトラブルシューティングとモニタリングに有用な情報を提供します。ログは接続ごとに集約され、各接続がサービスを提供するバックエンドにどのようにルーティングされるかについての分析情報を提供します。
ログの使用に追加料金はかかりません。ただし、ログのインポート方法に応じて、Cloud Logging、BigQuery、Pub/Sub のいずれかの標準料金が適用されます。ログを有効にしても、ロードバランサのパフォーマンスに影響はありません。
ログのサンプリングと収集
ロードバランサのバックエンド仮想マシン(VM)インスタンスとの送受信接続がサンプリング対象になります。これらのサンプリングされた接続が処理され、ログが生成されます。logConfig.sampleRate パラメータに従って、ログエントリとして出力される接続の割合を制御します。logConfig.sampleRate
が 1.0
(100%)の場合、すべての接続のログが生成され、Cloud Logging に書き込まれます。
新しいバックエンド サービスでロギングを有効にする
gcloud
gcloud compute backend-services create
コマンドを使用します。
リージョン外部プロキシ ネットワーク ロードバランサとリージョン内部プロキシ ネットワーク ロードバランサの場合:
gcloud compute backend-services create BACKEND_SERVICE \ --region=REGION \ --enable-logging \ --logging-sample-rate=SAMPLE_RATE
グローバル外部プロキシ ネットワーク ロードバランサ、従来のプロキシ ネットワーク ロードバランサ、またはクロスリージョン内部プロキシ ネットワーク ロードバランサの場合:
gcloud compute backend-services create BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=SAMPLE_RATE
次のように置き換えます。
BACKEND_SERVICE
: バックエンド サービスの名前。REGION
: 作成するバックエンド サービスのリージョン。SAMPLE_RATE
: このフィールドは、このバックエンド サービスでロギングが有効になっている場合にのみ指定できます。
フィールドの値は
0.0 to 1.0
から指定する必要があります。ここで、0.0
はログが報告されないことを意味し、1.0
は、すべての接続がログに記録されることを意味します。ロギングを有効にしても、サンプリング レートが0.0
であれば、ロギングが無効の場合と同じ結果になります。デフォルト値は1.0
です。
API
regionBackendServices.insert
メソッドに POST
リクエストを送信します。
リージョン内部プロキシ ネットワーク ロードバランサの場合:
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "INTERNAL_MANAGED", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
リージョン外部プロキシ ネットワーク ロードバランサの場合:
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "EXTERNAL_MANAGED", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
グローバル外部プロキシ ネットワーク ロードバランサの場合:
backendServices.insert
メソッドに POST
リクエストを送信します。
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "EXTERNAL_MANAGED", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
従来のプロキシ ネットワーク ロードバランサの場合:
backendServices.insert
メソッドに POST
リクエストを送信します。
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "EXTERNAL", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
クロスリージョン内部プロキシ ネットワーク ロードバランサの場合:
backendServices.insert
メソッドに POST
リクエストを送信します。
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "INTERNAL_MANAGED", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
次のように置き換えます。
BACKEND_SERVICE
: バックエンド サービスの名前。SAMPLE_RATE
: このフィールドは、このバックエンド サービスでロギングが有効になっている場合にのみ指定できます。
フィールドの値は
0.0 to 1.0
から指定する必要があります。ここで、0.0
はログが報告されないことを意味し、1.0
は、すべての接続がログに記録されることを意味します。ロギングを有効にしても、サンプリング レートが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
グローバル外部プロキシ ネットワーク ロードバランサ、従来のプロキシ ネットワーク ロードバランサ、またはクロスリージョン内部プロキシ ネットワーク ロードバランサの場合:
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=SAMPLE_RATE
次のように置き換えます。
BACKEND_SERVICE
: バックエンド サービスの名前。REGION
: 作成するバックエンド サービスのリージョン。SAMPLE_RATE
: このフィールドは、このバックエンド サービスでロギングが有効になっている場合にのみ指定できます。
フィールドの値は
0.0 to 1.0
から指定する必要があります。ここで、0.0
はログが報告されないことを意味し、1.0
は、すべての接続がログに記録されることを意味します。ロギングを有効にしても、サンプリング レートが0.0
であれば、ロギングが無効の場合と同じ結果になります。デフォルト値は1.0
です。
API
regionBackendServices/patch
メソッドに PATCH
リクエストを送信します。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE
リージョン内部プロキシ ネットワーク ロードバランサの場合:
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "INTERNAL_MANAGED", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
リージョン外部プロキシ ネットワーク ロードバランサの場合:
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "EXTERNAL_MANAGED", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
グローバル外部プロキシ ネットワーク ロードバランサの場合:
backendServices/patch
メソッドに PATCH
リクエストを送信します。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE { "name": "BACKEND_SERVICE", "loadBalancingScheme": "EXTERNAL_MANAGED", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
従来のプロキシ ネットワーク ロードバランサの場合:
backendServices/patch
メソッドに PATCH
リクエストを送信します。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE { "name": "BACKEND_SERVICE", "loadBalancingScheme": "EXTERNAL", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
クロスリージョン内部プロキシ ネットワーク ロードバランサの場合:
backendServices/patch
メソッドに PATCH
リクエストを送信します。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE { "name": "BACKEND_SERVICE", "loadBalancingScheme": "INTERNAL_MANAGED", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
次のように置き換えます。
PROJECT_ID
: プロジェクトの名前。BACKEND_SERVICE
: バックエンド サービスの名前。SAMPLE_RATE
: このフィールドは、このバックエンド サービスでロギングが有効になっている場合にのみ指定できます。
フィールドの値は
0.0 to 1.0
から指定する必要があります。ここで、0.0
はログが報告されないことを意味し、1.0
は、すべての接続がログに記録されることを意味します。ロギングを有効にしても、サンプリング レートが0.0
であれば、ロギングが無効の場合と同じ結果になります。デフォルト値は1.0
です。
既存のバックエンド サービスでロギングを無効にする
gcloud
gcloud compute backend-services update
コマンドを使用します。
リージョン外部プロキシ ネットワーク ロードバランサとリージョン内部プロキシ ネットワーク ロードバランサの場合:
gcloud compute backend-services update BACKEND_SERVICE \ --region=REGION \ --no-enable-logging
グローバル外部プロキシ ネットワーク ロードバランサ、従来のプロキシ ネットワーク ロードバランサ、またはクロスリージョン内部プロキシ ネットワーク ロードバランサの場合:
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --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 } }
グローバル外部プロキシ ネットワーク ロードバランサ、従来のプロキシ ネットワーク ロードバランサ、またはクロスリージョン内部プロキシ ネットワーク ロードバランサの場合:
backendServices/patch
メソッドに PATCH
リクエストを送信します。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE { "logConfig": { "enable": false } }
次のように置き換えます。
PROJECT_ID
: プロジェクトの名前。REGION
: バックエンド サービスのリージョン。BACKEND_SERVICE
: バックエンド サービスの名前。
ログを表示する
ログが Cloud Logging に取り込まれ、ログルーター シンクで除外されていない場合、Cloud Logging API と Google Cloud CLI でログを確認できます。
すべてのログを表示するには、次の操作を行います。
コンソール
Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。
リソースタイプに [プロキシ ネットワーク ロードバランサのルール] を選択します。
ログ名に loadbalancing.googleapis.com/flows を選択します。
コンソール クエリ
Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。
[クエリを表示] をクリックします。
または、クエリ フィールドに次の内容を貼り付けます。
resource.type="LOG_RESOURCE_TYPE" logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com/connections"
[クエリを実行] をクリックします。
次のように置き換えます。
LOG_RESOURCE_TYPE
: Logging モニタリング対象リソースタイプ。l4_proxy_rule
またはtcp_ssl_proxy_rule
のいずれかに設定します。PROJECT_ID
: プロジェクトの名前。
特定のバックエンド サービスのログを表示する
特定のバックエンド サービスのログを表示するには、次の操作を行います。
コンソール クエリ
Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。
[クエリを表示] をクリックします。
または、クエリ フィールドに次の内容を貼り付けます。
resource.type="LOG_RESOURCE_TYPE" logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com/connections" resource.labels.backend_service_name="BACKEND_SERVICE_NAME"
[クエリを実行] をクリックします。
次のように置き換えます。
LOG_RESOURCE_TYPE
: Logging モニタリング対象リソースタイプ。l4_proxy_rule
またはtcp_ssl_proxy_rule
のいずれかに設定します。PROJECT_ID
: プロジェクトの名前。BACKEND_SERVICE_NAME
: バックエンド サービスの名前。
バックエンド インスタンス グループのログを表示する
特定のバックエンド インスタンス グループのログを表示するには、次の操作を行います。
コンソール クエリ
Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。
[クエリを表示] をクリックします。
または、クエリ フィールドに次の内容を貼り付けます。
resource.type="LOG_RESOURCE_TYPE" logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com/connections" resource.labels.backend_group_name="BACKEND_GROUP_NAME"
[クエリを実行] をクリックします。
次のように置き換えます。
LOG_RESOURCE_TYPE
: Logging モニタリング対象リソースタイプ。l4_proxy_rule
またはtcp_ssl_proxy_rule
のいずれかに設定します。PROJECT_ID
: プロジェクトの名前。BACKEND_GROUP_NAME
: インスタンス グループの名前。
ログの内容
ログエントリには、トラフィックのモニタリングとデバッグに役立つ情報が含まれています。ログレコードには、すべてのログレコードのデフォルト フィールドである必須フィールドが含まれています。
フィールド | フィールドの形式 | フィールドのタイプ: 必須または省略可 | 説明 |
---|---|---|---|
severity timestamp receiveTimestamp insertID logName |
LogEntry | 必須 | ログエントリで説明されている一般的なフィールド。 |
resource | MonitoredResource | 必須 | MonitoredResource は、ログエントリに関連付けられているリソースタイプです。 MonitoredResourceDescriptor は、型名とラベルのセットを使用して |
jsonPayload | オブジェクト (Struct 形式) | 必須 | JSON オブジェクトとして表されるログエントリ ペイロード。JSON オブジェクトには、次のフィールドが含まれています。
|
ログのフィールド
ログレコードには、すべてのログレコードのデフォルト フィールドである必須フィールドが含まれています。
一部のログフィールドでは、所定のフィールドに複数のデータが含まれています。これらのログフィールドはマルチ フィールド形式です。たとえば、connection
フィールドは IpConnection
形式で、送信元と宛先の IP アドレスとポート、およびプロトコルが 1 つのフィールドに格納されます。これらのマルチ フィールドのログフィールドについては、次のレコード形式の表で説明します。
次の表に、リソース l4_proxy_rule で必要なすべてのログフィールドを示します。
フィールド | フィールドの形式 | 説明 |
---|---|---|
connection | IpConnection | この接続を説明する 5 タプル。 |
startTime | 文字列 | クライアントからの接続がロードバランサで受け入れられた時点のタイムスタンプ(RFC 3339 の日付文字列形式)。 |
endTime | 文字列 | クライアントまたはバックエンドが接続を終了した時点のタイムスタンプ(RFC 3339 の日付文字列形式)。 |
bytesSent | int64 | サーバーからクライアントに送信されるバイト数。 |
bytesReceived | int64 | サーバーがクライアントから受信したバイト数。 |
IpConnection フィールドの形式
フィールド | タイプ | 説明 |
---|---|---|
clientIp | 文字列 | クライアント IP アドレス |
clientPort | int32 | クライアント ポート。TCP 接続と UDP 接続に対してのみ設定します。 |
serverIp | 文字列 | サーバーの IP アドレス(転送ルールの IP) |
serverPort | int32 | サーバーポート。TCP 接続と UDP 接続に対してのみ設定します。 |
protocol | int32 | IANA プロトコル番号 |
proxyStatus エラー フィールド
proxyStatus
フィールドには、ロードバランサがエラーを返した理由を指定する文字列が含まれます。proxyStatus
フィールドには、proxyStatus error
と proxyStatus details
という 2 つの部分があります。このセクションでは、proxyStatus error
フィールドでサポートされている文字列について説明します。
proxyStatus error フィールドは、次のロードバランサに適用されます。
- グローバル外部プロキシ ネットワーク ロードバランサ
- リージョン外部プロキシ ネットワーク ロードバランサ
- クロスリージョン内部プロキシ ネットワーク ロードバランサ
- リージョン内部プロキシ ネットワーク ロードバランサ
proxyStatus エラー | 説明 | 一般的に記録されるレスポンス コード |
---|---|---|
destination_unavailable
|
ロードバランサが、バックエンドが使用不可であると見なしています。たとえば、バックエンドとの通信が最近失敗したか、ヘルスチェックが失敗した場合などです。 | 500、503 |
connection_timeout
|
ロードバランサがバックエンドへの接続を開始しようとしてタイムアウトしました。 | 504 |
connection_terminated
|
完全なレスポンスを受信する前に、ロードバランサからバックエンドへの接続が終了しました。 この
|
0、502、503 |
connection_refused
|
ロードバランサからバックエンドへの接続が拒否されました。 | 502、503 |
connection_limit_reached
|
ロードバランサはバックエンドに対する接続数を制限するように構成されており、この上限を超えています。 この
|
502、503 |
destination_not_found
|
ロードバランサは、このリクエストに使用する適切なバックエンドを決定できません。たとえば、バックエンドが構成されていない可能性があります。 | 500、404 |
dns_error
|
バックエンド ホスト名の IP アドレスを検出しようとしたときに、ロードバランサで DNS エラーが発生しました。 | 502、503 |
proxy_configuration_error
|
ロードバランサで内部構成エラーが発生しました。 | 500 |
proxy_internal_error
|
ロードバランサで内部エラーが発生しました。 | 0、500、502 |
proxy_internal_response
|
ロードバランサがバックエンドへの接続を試行せずにレスポンスを生成しました。 | 問題の種類に応じた任意のレスポンス コード。たとえば、410 レスポンス コードは、支払いの滞納が原因でバックエンドを使用できないことを意味します。 |
tls_protocol_error
|
ロードバランサが TLS handshake 中に TLS エラーを検出しました。 | 0 |
tls_certificate_error
|
ロードバランサが、サーバーから提示された証明書を検証するときにエラーを検出しました。 | 0 |
tls_alert_received
|
ロードバランサが TLS handshake 中に致命的な TLS アラートを検出しました。 | 0 |
proxyStatus 詳細フィールド
proxyStatus
フィールドには、ロードバランサがエラーを返した理由を指定する文字列が含まれます。proxyStatus
フィールドには、proxyStatus error
と proxyStatus details
という 2 つの部分があります。proxyStatus details
フィールドは省略可能で、追加情報が利用可能な場合にのみ表示されます。このセクションでは、proxyStatus details
フィールドでサポートされている文字列について説明します。
proxyStatus details フィールドは、次のロードバランサに適用されます。
- グローバル外部プロキシ ネットワーク ロードバランサ
- リージョン外部プロキシ ネットワーク ロードバランサ
- リージョン内部プロキシ ネットワーク ロードバランサ
- クロスリージョン内部プロキシ ネットワーク ロードバランサ
proxyStatus の詳細 | 説明 | 一般的に記録されるレスポンス コード |
---|---|---|
client_disconnected_before_any_response
|
ロードバランサがレスポンスを送信する前に、クライアントへの接続が切断されました。 | 0 |
backend_connection_closed
|
バックエンドが予期せずロードバランサへの接続を閉じました。これは、ロードバランサがサードパーティ アプリケーションなど別のエンティティにトラフィックを送信していて、そのエンティティの TCP タイムアウト値がロードバランサのタイムアウト値である 10 分(600 秒)よりも短い場合に発生する可能性があります。 | 502 |
failed_to_connect_to_backend
|
ロードバランサは、バックエンドに接続できませんでした。これには、接続フェーズ中のタイムアウトが含まれます。 | 503 |
failed_to_pick_backend
|
ロードバランサは、リクエストを処理するための正常なバックエンドを選択できませんでした。 | 502 |
handled_by_identity_aware_proxy
|
このレスポンスは、アクセスを許可する前のクライアントの ID 確認時に、Identity-Aware Proxy(IAP)によって生成されました。 | 200、302、400、401、403、500、502 |
request_overall_timeout
|
リクエストの合計タイムアウトを超過しました。 | 408、503、504 |
tls_version_not_supported
|
TLS プロトコル バージョンは認識されますが、サポートされていません。このエラーが起きると、TLS 接続が閉じられます。 | 0 |
unknown_psk_identity
|
PSK 鍵の確立が必要であるにもかかわらず、許容される PSK ID をクライアントが提供しなかった場合に、サーバーがこのエラーを送信します。このエラーが起きると、TLS 接続が閉じられます。 | 0 |
no_application_protocol
|
クライアントの「application_layer_protocol_negotiation」拡張機能が、サーバーでサポートされていないプロトコルのみをアドバタイズする場合に、サーバーによって送信されます。TLS アプリケーション レイヤ プロトコル ネゴシエーション拡張をご覧ください。このエラーが起きると、TLS 接続が閉じられます。 | 0 |
no_certificate
|
証明書が見つかりません。このエラーが起きると、TLS 接続が閉じられます。 | 0 |
bad_certificate
|
証明書が無効であるか、検証できない署名が含まれています。このエラーが起きると、TLS 接続が閉じられます。 | 0 |
unsupported_certificate
|
証明書の形式がサポートされていません。このエラーが起きると、TLS 接続が閉じられます。 | 0 |
certificate_revoked
|
証明書が署名者によって取り消されました。このエラーが起きると、TLS 接続が閉じられます。 | 0 |
certificate_expired
|
証明書の有効期限が切れているか、無効です。このエラーが起きると、TLS 接続が閉じられます。 | 0 |
certificate_unknown
|
証明書の処理中に、原因不明の問題が発生したため、証明書は受け入れられません。このエラーが起きると、TLS 接続が閉じられます。 | 0 |
unknown_ca
|
有効な証明書チェーンまたは部分チェーンが受信されましたが、CA 証明書が見つからなかったか、既知のトラスト アンカーと一致しなかったため、証明書は受け入れられませんでした。このエラーが起きると、TLS 接続が閉じられます。 | 0 |
unexpected_message
|
不適切なメッセージ(誤った handshake メッセージ、早期のアプリケーション データなど)が受信された。このエラーが起きると、TLS 接続が閉じられます。 | 0 |
bad_record_mac
|
保護を解除できないレコードが受信されました。このエラーが起きると、TLS 接続が閉じられます。 | 0 |
record_overflow
|
長さが 214+256 バイトを超える TLSCiphertext レコードが受信されたか、214 バイト(または他のネゴシエートされた上限)を超える TLSPlaintext レコードにレコードが復号されました。このエラーが起きると、TLS 接続が閉じられます。 |
0 |
handshake_failure
|
利用可能なオプションで、許容可能なセキュリティ パラメータのセットをネゴシエートできません。このエラーが起きると、TLS 接続が閉じられます。 | 0 |
illegal_parameter
|
handshake のフィールドが正しくないか、他のフィールドとの整合性がありません。このエラーが起きると、TLS 接続が閉じられます。 | 0 |
access_denied
|
有効な証明書または PSK が受信されましたが、アクセス制御が適用されたときに、クライアントがネゴシエーションに進みませんでした。このエラーが起きると、TLS 接続が閉じられます。 | 0 |
decode_error
|
一部のフィールドが指定された範囲外であったか、メッセージの長さが正しくなかったため、メッセージをデコードできませんでした。このエラーが起きると、TLS 接続が閉じられます。 | 0 |
decrypt_error
|
handshake(レコードレイヤではない)の暗号オペレーションが失敗しました。これには、署名を正しく確認できないこと、終了メッセージまたは PSK バインダを検証できないことが含まれます。このエラーが起きると、TLS 接続が閉じられます。 | 0 |
insufficient_security
|
サーバーが、クライアントでサポートされているパラメータよりも安全なパラメータを必要とするため、ネゴシエーションが失敗しました。このエラーが起きると、TLS 接続が閉じられます。 | 0 |
inappropriate_fallback
|
クライアントからの無効な接続の再試行に対する応答として、サーバーから送信されます。このエラーが起きると、TLS 接続が閉じられます。 | 0 |
user_cancelled
|
プロトコル障害とは無関係の理由で、ユーザーが handshake をキャンセルしました。このエラーが起きると、TLS 接続が閉じられます。 | 0 |
missing_extension
|
提示された TLS バージョンまたは他のネゴシエートされたパラメータに対して送信が必須である拡張機能を含まない handshake メッセージを受信するエンドポイントによって送信されます。このエラーが起きると、TLS 接続が閉じられます。 | 0 |
unsupported_extension
|
特定の handshake メッセージに含めることが禁止されている拡張機能を含む handshake メッセージか、対応する ClientHello または CertificateRequest で最初に提示されなかった ServerHello または Certificate の拡張機能を含む handshake メッセージを受信したエンドポイントによって送信されます。このエラーが起きると、TLS 接続が閉じられます。 |
0 |
unrecognized_name
|
「server_name」拡張機能を通じてクライアントから提供された名前で識別できるサーバーが存在しない場合に、サーバーによって送信されます。TLS 拡張機能の定義をご覧ください。 | 0 |
bad_certificate_status_response
|
サーバーから「status_request」拡張機能を通じて無効または許容できない OCSP レスポンスが提供された場合に、クライアントによって送信されます。TLS 拡張機能の定義をご覧ください。このエラーが起きると、TLS 接続が閉じられます。 | 0 |
load_balancer_configured_resource_limits_reached
|
ロードバランサが、構成されたリソースの上限(最大接続数など)に達しました。 | 400、500、503 |
失敗した TLS 接続のログエントリ
バックエンドが選択される前にクライアントとロードバランサ間の TLS 接続が失敗すると、ログエントリにエラーが記録されます。バックエンド サービスは、さまざまなログ サンプルレートで構成できます。TLS 接続が失敗した場合、失敗した TLS 接続のログ サンプルレートは、バックエンド サービスの最大のサンプルレートとなります。たとえば、2 つのバックエンド サービスを構成し、ロギング サンプル レートを 0.3
と 0.5
に設定した場合、失敗した TLS 接続のログ サンプルレートは 0.5
となります。
失敗した TLS 接続は、次のログエントリの詳細を確認することで特定できます。
- proxyStatus エラータイプは
tls_alert_received
、tls_certificate_error
、tls_protocol_error
、またはconnection_terminated
です。 - バックエンド情報はありません。
次のサンプルは、proxyStatus error
フィールドを含む失敗した TLS ログエントリを示しています。
json_payload: { @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" proxyStatus: "error="tls_alert_received"; details="server_to_client: handshake_failure"" log_name: "projects/529254013417/logs/mockservice.googleapis.com%20name" } http_request { latency { nanos: 12412000 } protocol: "HTTP/1.0" remote_ip: "127.0.0.2" } resource { type: "mock_internal_http_lb_rule" labels { backend_name: "" backend_scope: "" backend_scope_type: "UNKNOWN" backend_target_name: "" backend_target_type: "UNKNOWN" backend_type: "UNKNOWN" forwarding_rule_name: "l7-ilb-https-forwarding-rule-dev" matched_url_path_rule: "UNKNOWN" network_name: "lb-network" region: "REGION" target_proxy_name: "l7-ilb-https-proxy-dev" url_map_name: "" } } timestamp: "2023-08-15T16:49:30.850785Z"
リソースラベル
次の表に、リソースタイプ l4_proxy_rule
のリソースラベルを示します。
フィールド | タイプ | 説明 |
---|---|---|
network_name | 文字列 | ロードバランサの VPC ネットワークの名前。 |
project_id | 文字列 | このリソースに関連付けられた Google Cloud プロジェクトの ID。 |
region | 文字列 | ロードバランサが定義されているリージョン。 |
target_proxy_name | 文字列 | 転送ルールで参照されるターゲット プロキシ オブジェクトの名前。 |
forwarding_rule_name | 文字列 | 転送ルール オブジェクトの名前。 |
loadbalancing_scheme_name | 文字列 | ロードバランサの転送ルールとバックエンド サービスの属性。ロードバランサが内部トラフィックと外部トラフィックのどちらで使用できるかを示します。 |
backend_target_name | 文字列 | リクエストの処理に選択したバックエンドの名前。 |
backend_target_type | 文字列 | バックエンド ターゲット (BACKEND_SERVICE / UNKNOWN) のタイプ。 |
backend_name | 文字列 | バックエンド インスタンス グループまたはネットワーク エンドポイント グループ(NEG)の名前。 |
backend_type | 文字列 | インスタンス グループ、NEG、不明のいずれかのバックエンドのタイプ。 Cloud Logging では、ロギングが無効になっている場合でも、backend_type が |
backend_scope | 文字列 | バックエンドの範囲。ゾーン名またはリージョン名です。backend_name が不明な場合はいつでも、UNKNOWN である可能性があります。 |
backend_scope_type | 文字列 | バックエンドの範囲(REGION/ZONE )。backend_name が不明な場合はいつでも、UNKNOWN である可能性があります。 |
モニタリング
プロキシ ネットワーク ロードバランサは、モニタリング データを Cloud Monitoring にエクスポートします。
モニタリング指標は次の目的で使用できます。
- ロードバランサの構成、使用状況、パフォーマンスを評価する。
- 問題のトラブルシューティングを行う。
- リソースの使用率とユーザー エクスペリエンスを改善する。
Monitoring の事前定義されたダッシュボードに加えて、カスタム ダッシュボードを作成して、アラートをセットアップし、Cloud Monitoring API を使用して指標に対するクエリを実行できます。
Monitoring ダッシュボードを表示する
Google Cloud コンソールで [Monitoring] ページに移動します。
ナビゲーション パネルに [リソース] が表示されている場合は [リソース] を選択し、[Google Cloud ロードバランサ] を選択します。それ以外の場合は、[ダッシュボード] を選択し、[Google Cloud ロードバランサ] という名前のダッシュボードを選択します。
ロードバランサの名前をクリックします。
左側のペインでは、このロードバランサのさまざまな詳細を確認できます。右側のペインでは時系列のグラフを表示できます。特定の内訳を確認するには、[Breakdowns] をクリックしてください。
指標報告の頻度と保持
ロードバランサの指標は、1 分単位のバッチで Monitoring にエクスポートされます。モニタリング データは 6 週間保持されます。指標はサンプリングされたトラフィックに基づいています(サンプリング レートは動的で、調整できません)。
ダッシュボードでは、1H(1 時間)、6H(6 時間)、1D(1 日)、1W(1 週間)、6W(6 週間)のデフォルト間隔でデータ分析の結果を確認できます。また、6 週間から 1 分までの間隔を任意に指定して手動で分析を行うこともできます。
従来のプロキシ ネットワーク ロードバランサの指標
従来のプロキシ ネットワーク ロードバランサの次の指標が Monitoring に報告されます。
指標 | 名前 | 説明 |
---|---|---|
インバウンド トラフィック | tcp_ssl_proxy/ingress_bytes_count |
外部エンドポイントから Google Front End(GFE)を経由して構成済みのバックエンドに送信されるバイト数(バイト/秒単位)。 |
アウトバウンド トラフィック | tcp_ssl_proxy/egress_bytes_count |
GFE を通じて構成済みバックエンドから外部エンドポイントに送信されるバイト数(バイト/秒単位)。 |
オープン接続 | tcp_ssl_proxy/open_connections |
所定のサンプル時点で開いている接続数。サンプルは 1 分間隔で取得されます。 |
1 秒あたりの新しい接続数 | tcp_ssl_proxy/new_connections |
作成された接続数(クライアントがバックエンドに正常に接続された場合)。カウントは 1 分単位で行われますが、グラフを調整して 1 秒あたりの値を表示できます。詳細については、Monitoring のドキュメントをご覧ください。 |
1 秒間ごとのクローズド接続 | tcp_ssl_proxy/closed_connections |
終了した接続数。カウントは 1 分単位で行われますが、グラフを調整して 1 秒あたりの値を表示できます。詳細については、Monitoring のドキュメントをご覧ください。 |
フロントエンド RTT | tcp_ssl_proxy/frontend_tcp_rtt |
クライアントと GFE 間の接続ごとに測定され、平滑化されたラウンドトリップ時間(RTT)の分布(GFE の TCP スタックによって、アプリケーション層のバイトが GFE からクライアントに渡されるたびに測定)。平滑化された RTT は、RTT 測定値で発生する可能性のある変動と異常を処理するアルゴリズムです。 |
他のロードバランサの指標
リージョン内部プロキシ ネットワーク ロードバランサ、リージョン外部プロキシ ネットワーク ロードバランサ、クロスリージョン内部プロキシ ネットワーク ロードバランサ、グローバル外部プロキシ ネットワーク ロードバランサの次の指標が Monitoring に報告されます。
指標 | 名前 | 説明 |
---|---|---|
インバウンド トラフィック | l4_proxy/ingress_bytes_count |
プロキシを使用してクライアントからバックエンド VM に送信されたバイト数。60 秒ごとにサンプリングされます。サンプリング後、データは最長 210 秒間表示されません。 |
アウトバウンド トラフィック | l4_proxy/egress_bytes_count |
プロキシを使用してバックエンド VM からクライアントに送信されるバイト数。60 秒ごとにサンプリングされます。サンプリング後、データは最長 210 秒間表示されません。 |
1 秒間ごとのクローズド接続 | l4_proxy/tcp/closed_connections_count |
TCP RST メッセージまたは TCP FIN メッセージを使用して終了された接続数。60 秒ごとにサンプリングされます。サンプリング後、データは最長 210 秒間表示されません。 |
指標のフィルタリング ディメンション
指標はロードバランサごとに集計されます。指標は、次の項目ごとにさらに詳細に分類できます。
プロパティ | 説明 |
---|---|
BACKEND SCOPE | 接続を処理したインスタンス グループの範囲(リージョンまたはゾーン)。 |
BACKEND ZONE | インスタンス グループがゾーン インスタンス グループの場合、接続を処理したインスタンス グループのゾーン。 |
BACKEND REGION | インスタンス グループがリージョン インスタンス グループの場合、接続を処理したインスタンス グループのリージョン。 |
PROXY CONTINENT | ユーザーの TCP / SSL 接続を終端した GFE の大陸(例: America 、Europe 、Asia )。 |
INSTANCE GROUP | ユーザー接続を受け取ったインスタンス グループの名前。 |
FORWARDING RULE | GFE への接続に使用された転送ルールの名前。 |
CLIENT COUNTRY | ユーザーの国の名前。 |
次のステップ
- SSL ポリシーの仕組みを確認する。SSL ポリシーの概要をご覧ください。
- 外部プロキシ ネットワーク ロードバランサの仕組みを確認する。外部プロキシ ネットワーク ロードバランサの概要をご覧ください。
- 内部プロキシ ネットワーク ロードバランサの仕組みを確認する。内部プロキシ ネットワーク ロードバランサの概要をご覧ください。