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」頁面。

    前往 Logs Explorer

  2. 選取「Proxy Network Load Balancer Rule」(Proxy 網路負載平衡器規則) 資源類型。

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

控制台查詢

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

    前往「Logs Explorer」

  2. 點選「Show query」(顯示查詢) 切換鈕。

  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」頁面。

    前往「Logs Explorer」

  2. 點選「Show query」(顯示查詢) 切換鈕。

  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」頁面。

    前往「Logs Explorer」

  2. 點選「Show query」(顯示查詢) 切換鈕。

  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:執行個體群組的名稱。

記錄內容

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

欄位 欄位格式 欄位類型:必填或選填 說明
severity
timestamp
receiveTimestamp
insertID
logName
LogEntry 必填 記錄項目中說明的一般欄位。
資源 MonitoredResource 必填

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

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

jsonPayload 物件 (Struct 格式) 必填 以 JSON 物件表示的記錄項目酬載。JSON 物件包含下列欄位:
字串 必填

proxyStatus 欄位包含字串,用於指定全域外部 Proxy 網路負載平衡器、區域外部 Proxy 網路負載平衡器和內部 Proxy 網路負載平衡器傳回錯誤或資訊記錄的原因。這個欄位不支援傳統 Proxy 網路負載平衡器。

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

proxyStatus 欄位包含兩個部分:

字串 必填 backendNetworkName 欄位會指定後端的虛擬私有雲網路。
字串 必填 routeName 欄位會指定用於轉送流量的 TLS 路徑名稱。
字串 選用 tlsSniHostname 欄位會指定用戶端在 ClientHello 訊息中提供的伺服器名稱。

記錄檔欄位

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

某些記錄欄位會包含多項資料,這些記錄欄位採用多欄位格式。舉例來說,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 status」和「proxyStatus details」。本節說明 proxyStatus status 欄位支援的字串。

proxyStatus 狀態欄位適用於下列負載平衡器:

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

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

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

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

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

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

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

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

proxyStatus 詳細資料欄位

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

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

  • 全域外部 Proxy 網路負載平衡器
  • 區域性外部 Proxy 網路負載平衡器
  • 區域性內部 Proxy 網路負載平衡器
  • 跨區域內部 Proxy 網路負載平衡器
proxyStatus 詳細資料 說明 常見的隨附回應狀態碼
client_disconnected_before_any_response 在負載平衡器傳送任何回應前,用戶端連線已中斷。 0
client_hello_too_large 收到的 ClientHello 異常龐大。這個錯誤會導致 TLS 連線關閉 (預覽)。 0
destination_not_found 負載平衡器無法判斷適當的後端。舉例來說,指定的 SNI 主機名稱不相符 (請參閱 jsonPayload.tls.sni,瞭解指定的 SNI)。這個錯誤會導致 TLS 連線關閉。 (預覽) 0
invalid_sni_rfc_6066 指定的 SNI 主機名稱無效。SNI 必須是完整的 DNS 主機名稱。這個錯誤會導致連線關閉。 預覽) 0
client_hello_not_detected 連線中找不到 TLS。這個錯誤會導致連線關閉。(預覽) 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 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 憑證,或 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 字串 負載平衡器的虛擬私有雲網路名稱。
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 (6 週)。

傳統版 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 已建立的連接數 (用戶端成功連線到後端)。計算精細程度為每分鐘,但圖表會調整為顯示每秒的值。詳情請參閱「監控」說明文件。
每秒關閉的連線數 tcp_ssl_proxy/closed_connections 已關閉的連線數。計算精細程度為每分鐘,但圖表會調整為顯示每秒的值。詳情請參閱「監控」說明文件。
前端封包往返時間 tcp_ssl_proxy/frontend_tcp_rtt 針對用戶端和 GFE 之間的每個連線,測量之順暢封包往返時間 (RTT) 的分佈情況 (每次應用程式層位元組從 GFE 傳送至用戶端時,藉由 GFE 的 TCP 堆疊來測量)。平滑封包往返時間是一種演算法,可在封包往返時間測量結果中,處理可能發生的變化和異常狀況。

其他負載平衡器的指標

下列區域性內部 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 使用者所在國家/地區的名稱。

後續步驟