Proxy 網路負載平衡器記錄與監控

本頁面說明如何為 Proxy 網路負載平衡器設定及使用 Cloud LoggingCloud Monitoring

監控資源

下表列出負載平衡器的資源名稱。

區域性外部 Proxy 網路負載平衡器

區域性內部 Proxy 網路負載平衡器

跨區域內部 Proxy 網路負載平衡器

全域外部 Proxy 網路負載平衡器

傳統版 Proxy 網路負載平衡器
記錄受監控的資源類型 「Proxy 網路負載平衡器規則」
l4_proxy_rule
「全域外部 Proxy 網路負載平衡器規則」
tcp_ssl_proxy_rule
監控受監控的資源類型 「Proxy 網路負載平衡器規則」
l4_proxy_rule
「全域外部 Proxy 網路負載平衡器規則」
tcp_ssl_proxy_rule

Proxy 網路負載平衡器的記錄功能

記錄提供實用資訊,有助於排解負載平衡器問題及監控負載平衡器。系統會匯總每項連線的記錄,讓您瞭解每項連線如何路由至服務後端。

使用記錄不會產生額外費用。不過,系統會根據您匯入記錄檔的方式,套用 Cloud Logging 標準價格、BigQuery 或 Pub/Sub 價格。此外,啟用記錄檔不會影響負載平衡器的效能。

記錄取樣和收集

系統會對進出負載平衡器後端虛擬機器 (VM) 執行個體的連線進行取樣。接著系統會處理這些取樣連線,產生記錄。您可以根據 logConfig.sampleRate 參數,控制要以記錄檔項目形式發出的連線比例。如果 logConfig.sampleRate1.0 (100%),表示系統會為所有連線產生記錄,並寫入 Cloud Logging。

啟用新後端服務的記錄功能

gcloud

使用 gcloud compute backend-services create 指令

區域性外部 Proxy 網路負載平衡器和區域性內部 Proxy 網路負載平衡器:

    gcloud compute backend-services create BACKEND_SERVICE \
        --region=REGION \
        --enable-logging \
        --logging-sample-rate=SAMPLE_RATE
    

如果是全域外部 Proxy 網路負載平衡器、傳統版 Proxy 網路負載平衡器或跨區域內部 Proxy 網路負載平衡器:

    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 要求:

區域性內部 Proxy 網路負載平衡器:

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

區域性外部 Proxy 網路負載平衡器:

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

全域外部 Proxy 網路負載平衡器:

backendServices.insert 方法發出 POST 要求:

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

傳統版 Proxy 網路負載平衡器:

backendServices.insert 方法發出 POST 要求:

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

跨區域內部 Proxy 網路負載平衡器:

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 指令

區域性外部 Proxy 網路負載平衡器和區域性內部 Proxy 網路負載平衡器:

    gcloud compute backend-services update BACKEND_SERVICE \
        --region=REGION \
        --enable-logging \
        --logging-sample-rate=SAMPLE_RATE
    

如果是全域外部 Proxy 網路負載平衡器、傳統版 Proxy 網路負載平衡器或跨區域內部 Proxy 網路負載平衡器:

    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
     

區域性內部 Proxy 網路負載平衡器:

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

區域性外部 Proxy 網路負載平衡器:

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

全域外部 Proxy 網路負載平衡器:

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
      }
    }
    

傳統版 Proxy 網路負載平衡器:

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
      }
    }
    

跨區域內部 Proxy 網路負載平衡器:

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 指令

區域性外部 Proxy 網路負載平衡器和區域性內部 Proxy 網路負載平衡器:

gcloud compute backend-services update BACKEND_SERVICE \
   --region=REGION \
   --no-enable-logging

如果是全域外部 Proxy 網路負載平衡器、傳統版 Proxy 網路負載平衡器或跨區域內部 Proxy 網路負載平衡器:

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

更改下列內容:

  • BACKEND_SERVICE:後端服務的名稱。
  • REGION:後端服務的區域。

API

區域性外部 Proxy 網路負載平衡器和區域性內部 Proxy 網路負載平衡器:

regionBackendServices/patch 方法發出 PATCH 要求:

 PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE
  {
  "logConfig": {
    "enable": false
   }
  }
 

如果是全域外部 Proxy 網路負載平衡器、傳統版 Proxy 網路負載平衡器或跨區域內部 Proxy 網路負載平衡器:

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 APIGoogle Cloud CLI 讀取記錄檔。

如要查看所有記錄,請完成下列步驟。

主控台

  1. 前往 Google Cloud 控制台的「Logs Explorer」頁面。

    前往記錄檔探索工具

  2. 選取「Proxy Network Load Balancer Rule」資源類型。

  3. 選取「loadbalancing.googleapis.com/connections」記錄名稱。

控制台查詢

  1. 前往 Google Cloud 控制台的「Logs Explorer」頁面。

    前往記錄檔探索工具

  2. 按一下「顯示查詢」切換按鈕。

  3. 將下列內容貼到查詢欄位。

    resource.type="LOG_RESOURCE_TYPE"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com/connections"
    
  4. 點選「執行查詢」

更改下列內容:

  • LOG_RESOURCE_TYPE:記錄監控資源類型,設為 l4_proxy_ruletcp_ssl_proxy_rule
  • PROJECT_ID:專案名稱。

查看特定後端服務的記錄

如要查看特定後端服務的記錄,請完成下列步驟。

控制台查詢

  1. 前往 Google Cloud 控制台的「Logs Explorer」頁面。

    前往記錄檔探索工具

  2. 按一下「顯示查詢」切換按鈕。

  3. 將下列內容貼到查詢欄位。

    resource.type="LOG_RESOURCE_TYPE"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com/connections"
    resource.labels.backend_service_name="BACKEND_SERVICE_NAME"
    
  4. 點選「執行查詢」

更改下列內容:

  • LOG_RESOURCE_TYPE:記錄監控資源類型,設為 l4_proxy_ruletcp_ssl_proxy_rule
  • PROJECT_ID:專案名稱。
  • BACKEND_SERVICE_NAME:後端服務的名稱。

查看後端執行個體群組的記錄

如要查看特定後端執行個體群組的記錄,請完成下列步驟。

控制台查詢

  1. 前往 Google Cloud 控制台的「Logs Explorer」頁面。

    前往記錄檔探索工具

  2. 按一下「顯示查詢」切換按鈕。

  3. 將下列內容貼到查詢欄位。

    resource.type="LOG_RESOURCE_TYPE"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com/connections"
    resource.labels.backend_group_name="BACKEND_GROUP_NAME"
    
  4. 點選「執行查詢」

更改下列內容:

  • LOG_RESOURCE_TYPE:記錄監控資源類型,設為 l4_proxy_ruletcp_ssl_proxy_rule
  • PROJECT_ID:專案名稱。
  • BACKEND_GROUP_NAME:執行個體群組的名稱。

記錄內容

記錄項目包含的資訊適合用於監控流量及進行偵錯。記錄包含必要欄位,也就是每個記錄的預設欄位。

欄位 欄位格式 欄位類型:必要或選填 說明
嚴重程度
時間戳記
接收時間戳記
插入 ID
記錄名稱
LogEntry 必填 記錄項目中說明的一般欄位。
resource MonitoredResource 必填

MonitoredResource 是與記錄項目相關聯的資源類型。

MonitoredResourceDescriptor 會使用型別名稱和一組標籤,描述 MonitoredResource 物件的結構定義。詳情請參閱「資源標籤」。

jsonPayload object (Struct 格式) 必填 以 JSON 物件表示的記錄項目酬載。JSON 物件包含下列欄位:
  • statusDetails
  • Google Cloud Armor 安全性政策記錄檔項目
  • proxyStatus 欄位包含字串,用於指定全域外部 Proxy 網路負載平衡器、區域外部 Proxy 網路負載平衡器和內部 Proxy 網路負載平衡器傳回錯誤代碼的原因。傳統 Proxy 網路負載平衡器不支援這個欄位。

    如果值為空白字串,系統不會記錄該欄位。如果 Proxy 傳回的錯誤代碼不是 04XX5XX,就可能發生這種情況。

    proxyStatus 欄位包含兩個部分:

  • backendNetworkName:指定後端的虛擬私有雲網路。

記錄檔欄位

記錄項目包含必要欄位,也就是每個記錄項目的預設欄位。

某些記錄欄位會包含多項資料,這些記錄欄位採用多欄位格式。舉例來說,connection 欄位採用的格式是 IpConnection,也就是一個欄位同時包含來源和目的地 IP 位址及通訊埠,外加通訊協定等資料。下表說明這些多欄位記錄欄位。

下表列出資源 l4_proxy_rule 的所有必要記錄欄位。

欄位 欄位格式 說明
連結 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」。本節說明 proxyStatus error 欄位支援的字串。

proxyStatus 錯誤欄位適用於下列負載平衡器:

  • 全域外部 Proxy 網路負載平衡器
  • 區域性外部 Proxy 網路負載平衡器
  • 跨區域內部 Proxy 網路負載平衡器
  • 區域性內部 Proxy 網路負載平衡器
proxyStatus 錯誤 說明 常見隨附回應代碼
destination_unavailable 負載平衡器會將後端視為無法使用。舉例來說,最近嘗試與後端通訊時發生錯誤,或健康狀態檢查可能導致失敗。 500503
connection_timeout 負載平衡器嘗試開啟與後端的連線時逾時。 504
connection_terminated

負載平衡器與後端的連線在收到完整回應前終止。

在下列任一情況下,系統都會傳回此 proxyStatus error

  • 負載平衡器與後端的連線在收到完整回應前已結束。
  • TLS 連線在 SSL 交握時失敗,且用戶端未與負載平衡器建立連線。

0502503
connection_refused 負載平衡器連線至後端遭拒。 502503
connection_limit_reached

負載平衡器已設定連線數上限,且已超過該上限。

在下列任一情況下,系統都會傳回 proxyStatus error

  • 如果任何後端處於維護模式,流量就無法轉送至後端。
  • 如果要求在本機受到速率限制。
  • Envoy 會處理記憶體不足等錯誤狀況。
502503
destination_not_found 負載平衡器無法判斷要使用哪個後端來處理這項要求。舉例來說,後端可能未設定。 500404
dns_error 負載平衡器嘗試尋找後端主機名稱的 IP 位址時,發生 DNS 錯誤。 502503
proxy_configuration_error 負載平衡器發生內部設定錯誤。 500
proxy_internal_error 負載平衡器發生內部錯誤。這個錯誤可能是因為管理連線的 Proxy 預定重新啟動所致。 0500502
proxy_internal_response 負載平衡器產生回應,但未嘗試連線至後端。 根據問題類型,可能出現任何狀態碼。舉例來說,410 狀態碼表示後端因付款逾期而無法使用。
tls_protocol_error 負載平衡器在 TLS 交握期間發生 TLS 錯誤。 0
tls_certificate_error 負載平衡器在驗證伺服器提供的憑證時發生錯誤。 0
tls_alert_received 負載平衡器在 TLS 握手期間遇到嚴重 TLS 警示。 0

proxyStatus 詳細資料欄位

proxyStatus 欄位包含的字串會說明負載平衡器傳回錯誤的原因。「proxyStatus」欄位包含兩個部分:「proxyStatus error」和「proxyStatus details」。proxyStatus details 欄位為選填欄位,只有在有額外資訊時才會顯示。 本節說明 proxyStatus details 欄位支援的字串。

proxyStatus 詳細資料欄位適用於下列負載平衡器:

  • 全域外部 Proxy 網路負載平衡器
  • 區域性外部 Proxy 網路負載平衡器
  • 區域性內部 Proxy 網路負載平衡器
  • 跨區域內部 Proxy 網路負載平衡器
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 這個回應是由 Identity-Aware Proxy (IAP) 產生,用於驗證用戶端身分,確認無誤後才允許存取。 200302400401403500502
request_overall_timeout 已超過要求逾時總時間。詳情請參閱「已關閉連線的記錄錯誤」。 408503504
tls_version_not_supported 系統可辨識 TLS 通訊協定版本,但無法支援。這個錯誤會導致 TLS 連線關閉。 0
unknown_psk_identity 如果伺服器要求建立 PSK 金鑰,但用戶端未提供可接受的 PSK 身分識別,就會傳送這項錯誤。這個錯誤會導致 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 不當訊息,例如錯誤的信號交換訊息或過早收到應用程式資料。這個錯誤會導致 TLS 連線關閉。 0
bad_record_mac 收到無法解除保護的記錄。這個錯誤會導致 TLS 連線關閉。 0
record_overflow 收到的 TLSCiphertext 記錄長度超過 214+256 個位元組,或解密後的記錄長度超過 214 個位元組 (或其他協商的限制)。TLSPlaintext這個錯誤會導致 TLS 連線關閉。 0
handshake_failure 無法根據可用選項,協商出一組可接受的安全參數。這個錯誤會導致 TLS 連線關閉。 0
illegal_parameter 交握中的某個欄位有誤,或與其他欄位不一致。 這個錯誤會導致 TLS 連線關閉。 0
access_denied 系統已收到有效憑證或 PSK,但套用存取權控管後,用戶端未繼續進行交涉。這個錯誤會導致 TLS 連線關閉。 0
decode_error 由於部分欄位超出指定範圍,或訊息長度有誤,因此無法解碼。這個錯誤會導致 TLS 連線關閉。 0
decrypt_error 交握 (非記錄層) 加密作業失敗,包括無法正確驗證簽章、驗證完成的訊息或 PSK 繫結。這個錯誤會導致 TLS 連線關閉。 0
insufficient_security 伺服器要求的參數比用戶端支援的參數更安全,因此交涉失敗。這個錯誤會導致 TLS 連線關閉。 0
inappropriate_fallback 伺服器傳送此訊息,是為了回應用戶端無效的連線重試嘗試。這個錯誤會導致 TLS 連線關閉。 0
user_cancelled 使用者因與通訊協定失敗無關的原因取消握手。這個錯誤會導致 TLS 連線關閉。 0
missing_extension 由接收握手訊息的端點傳送,該訊息不含必須為提供的 TLS 版本或其他協商參數傳送的擴充功能。這個錯誤會導致 TLS 連線關閉。 0
unsupported_extension 由端點傳送,這些端點收到任何含有擴充功能的握手訊息,而該擴充功能已知禁止納入指定的握手訊息,或在 ServerHelloCertificate 中包含任何未先在相應 ClientHelloCertificateRequest 中提供的擴充功能。 這個錯誤會導致 TLS 連線關閉。 0
unrecognized_name 當伺服器無法透過用戶端透過「server_name」擴充功能提供的名稱識別時,伺服器會傳送這項警示。請參閱 TLS 擴充功能定義 0
bad_certificate_status_response 當伺服器透過「status_request」擴充功能提供無效或無法接受的 OCSP 回應時,用戶端會傳送這項警示。請參閱 TLS 擴充功能定義。 這個錯誤會導致 TLS 連線關閉。 0
load_balancer_configured_resource_limits_reached 負載平衡器已達到設定的資源限制,例如連線數量上限。 0

傳輸層安全標準 (TLS) 連線失敗記錄項目

如果用戶端與負載平衡器之間的 TLS 連線在選取任何後端之前失敗,記錄項目會記錄錯誤。您可以設定後端服務,使用不同的記錄取樣率。如果傳輸層安全標準 (TLS) 連線失敗,失敗的 TLS 連線記錄取樣率會是任何後端服務的最高取樣率。舉例來說,如果您已將兩個後端服務的記錄取樣率分別設為 0.30.5,則失敗的 TLS 連線記錄取樣率為 0.5

您可以查看下列記錄項目詳細資料,找出失敗的 TLS 連線:

  • proxyStatus 錯誤類型為 tls_alert_receivedtls_certificate_errortls_protocol_errorconnection_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 字串 轉送規則所參照的目標 Proxy 物件名稱。
forwarding_rule_name 字串 轉送規則物件的名稱。
loadbalancing_scheme_name 字串 負載平衡器轉送規則和後端服務的屬性,用於指明負載平衡器可否處理內部或外部流量。
backend_target_name 字串 選擇用於處理要求的後端名稱。
backend_target_type 字串 後端目標類型 (BACKEND_SERVICE / UNKNOWN)
backend_name 字串 後端執行個體群組或網路端點群組 (NEG) 的名稱。
backend_type 字串

後端類型,可以是執行個體群組、NEG 或不明。

即使停用記錄功能,當 backend_type 為 UNKNOWN 時,Cloud Logging 仍會記錄要求。舉例來說,如果用戶端在負載平衡器挑選後端前關閉與負載平衡器的連線,backend_type 會設為 UNKNOWN,且系統會記錄要求。如果負載平衡器無法選取後端,導致用戶端要求關閉,這些記錄就會提供實用的偵錯資訊。

backend_scope 字串 後端的範圍,可以是區域名稱或地區名稱。當 backend_name 不明時,可能為 UNKNOWN
backend_scope_type 字串 後端的範圍 (REGION/ZONE)。 如果 backend_name 不明,可能為 UNKNOWN

監控

Proxy 網路負載平衡器會將監控資料匯出到 Cloud Monitoring

監控指標可用於以下目的:

  • 評估負載平衡器的設定、用量和效能。
  • 排解問題。
  • 改善資源利用率和使用者體驗。

除了 Monitoring 中預先定義的資訊主頁,您可透過 Cloud Monitoring API 建立自訂資訊主頁、設定快訊及查詢指標。

查看 Monitoring 資訊主頁

  1. 前往 Google Cloud 控制台的「Monitoring」頁面。

    前往「Monitoring」頁面

  2. 如果導覽窗格中顯示「資源」,請選取「資源」,然後選取「Google Cloud 負載平衡器」。否則,請選取「資訊主頁」,然後選取名為「Google Cloud 負載平衡器」的資訊主頁。

  3. 點選負載平衡器的名稱。

左側窗格會列出該負載平衡器的各種詳細資訊,右側窗格則會顯示時間序列圖。如要查看特定細目,請按一下「細目」

指標回報頻率與保留期

負載平衡器的指標會批次匯出至 Monitoring,每分鐘一次。監控資料會保留六週。

根據預設,資訊主頁會提供過去一小時的資料分析 (1h)。 如要要求分析其他時間間隔的資料,請從選單選取預先設定的時間間隔, 或手動輸入所需的時間間隔。例如:3h (3 小時)、4d (4 天) 或 6w (六週)。

傳統版 Proxy 網路負載平衡器的指標

系統會將下列傳統版 Proxy 網路負載平衡器指標回報給 Monitoring。

指標 名稱 說明
傳入流量 tcp_ssl_proxy/ingress_bytes_count 透過 Google Front End (GFE) 從外部端點傳送至已設定後端的位元組數 (以每秒傳送的位元組數為單位)。
傳出流量 tcp_ssl_proxy/egress_bytes_count 透過 GFE 從設定的後端傳送至外部端點的位元組數 (以每秒傳送的位元組數為單位)。
公開連線數量 tcp_ssl_proxy/open_connections 在指定取樣時間點開啟的連線數。取樣間隔為一分鐘。
每秒新增連線數 tcp_ssl_proxy/new_connections 已建立的連接數 (用戶端成功連線到後端)。計算精細程度為每分鐘,但圖表會調整為顯示每秒的值。詳情請參閱 Monitoring 說明文件
每秒關閉的連線數 tcp_ssl_proxy/closed_connections 已關閉的連線數。計算精細程度為每分鐘,但圖表會調整為顯示每秒的值。詳情請參閱 Monitoring 說明文件
前端 RTT tcp_ssl_proxy/frontend_tcp_rtt 針對用戶端和 GFE 之間的每個連線,測量之順暢封包往返時間 (RTT) 的分佈情況 (每次應用程式層位元組從 GFE 傳送至用戶端時,藉由 GFE 的 TCP 堆疊來測量)。平滑 RTT 演算法可處理 RTT 測量中可能發生的變化和異常狀況。

其他負載平衡器的指標

系統會將區域性內部 Proxy 網路負載平衡器、區域性外部 Proxy 網路負載平衡器、跨區域內部 Proxy 網路負載平衡器,以及全域外部 Proxy 網路負載平衡器的下列指標,回報至 Monitoring。

指標 名稱 說明
傳入流量 l4_proxy/ingress_bytes_count 用戶端透過 Proxy 傳送至後端 VM 的位元組數。取樣頻率為每 60 秒一次。取樣完畢後,會有多達 210 秒無法查看資料。
傳出流量 l4_proxy/egress_bytes_count 後端 VM 透過 Proxy 傳送至用戶端的位元組數。取樣頻率為每 60 秒一次。取樣完畢後,會有多達 210 秒無法查看資料。
每秒關閉的連線數 l4_proxy/tcp/closed_connections_count 使用 TCP RST 或 TCP FIN 訊息終止的連線數。取樣頻率為每 60 秒一次。取樣完畢後,會有多達 210 秒無法查看資料。

指標的篩選維度

系統會針對每個負載平衡器匯總指標。指標可以按以下維度進一步細分。

屬性 說明
BACKEND SCOPE 提供連線之執行個體群組的範圍 (地區或區域)。
BACKEND ZONE 如果執行個體群組是區域執行個體群組,則為提供連線之執行個體群組的區域。
BACKEND REGION 如果執行個體群組是地區執行個體群組,則為提供連線之執行個體群組的地區。
PROXY CONTINENT 終止使用者 TCP/SSL 連線的 GFE 所在洲別,例如 AmericaEuropeAsia
INSTANCE GROUP 接收使用者連線的執行個體群組名稱。
FORWARDING RULE 用於連線至 GFE 的轉送規則名稱。
CLIENT COUNTRY 使用者所在國家/地區的名稱。

後續步驟