本頁面說明如何為 Proxy 網路負載平衡器設定及使用 Cloud Logging 和 Cloud 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.sampleRate 為 1.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 API 和 Google Cloud CLI 讀取記錄檔。
如要查看所有記錄,請完成下列步驟。
控制台
前往 Google Cloud 控制台的「Logs Explorer」頁面。
選取「Proxy Network Load Balancer Rule」(Proxy 網路負載平衡器規則) 資源類型。
選取「loadbalancing.googleapis.com/connections」記錄名稱。
控制台查詢
前往 Google Cloud 控制台的「Logs Explorer」頁面。
點選「Show query」(顯示查詢) 切換鈕。
將下列內容貼入查詢欄位。
resource.type="LOG_RESOURCE_TYPE" logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com/connections"
點選「執行查詢」。
更改下列內容:
LOG_RESOURCE_TYPE:記錄監控資源類型,設為l4_proxy_rule或tcp_ssl_proxy_rule。PROJECT_ID:專案名稱。
查看特定後端服務的記錄
如要查看特定後端服務的記錄,請完成下列步驟。
控制台查詢
前往 Google Cloud 控制台的「Logs Explorer」頁面。
點選「Show query」(顯示查詢) 切換鈕。
將下列內容貼入查詢欄位。
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:記錄監控資源類型,設為l4_proxy_rule或tcp_ssl_proxy_rule。PROJECT_ID:專案名稱。BACKEND_SERVICE_NAME:後端服務的名稱。
查看後端執行個體群組的記錄
如要查看特定後端執行個體群組的記錄,請完成下列步驟。
控制台查詢
前往 Google Cloud 控制台的「Logs Explorer」頁面。
點選「Show query」(顯示查詢) 切換鈕。
將下列內容貼入查詢欄位。
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:記錄監控資源類型,設為l4_proxy_rule或tcp_ssl_proxy_rule。PROJECT_ID:專案名稱。BACKEND_GROUP_NAME:執行個體群組的名稱。
記錄內容
記錄項目包含的資訊適合用於監控流量及進行偵錯。記錄包含必填欄位,也就是每個記錄的預設欄位。
| 欄位 | 欄位格式 | 欄位類型:必填或選填 | 說明 |
|---|---|---|---|
| severity timestamp receiveTimestamp insertID logName |
LogEntry | 必填 | 記錄項目中說明的一般欄位。 |
| 資源 | MonitoredResource | 必填 | MonitoredResource 是與記錄項目相關聯的資源類型。 MonitoredResourceDescriptor 會使用類型名稱和一組標籤,說明 |
| jsonPayload | 物件 (Struct 格式) | 必填 | 以 JSON 物件表示的記錄項目酬載。JSON 物件包含下列欄位:
|
| 字串 | 必填 |
如果值為空白字串,系統不會記錄該欄位。如果 Proxy 傳回的錯誤代碼不是
|
|
| 字串 | 必填 | 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 |
負載平衡器會將後端視為無法使用。舉例來說,最近嘗試與後端通訊時發生錯誤,或是健康狀態檢查失敗。 | 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_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) 產生,目的是在允許存取前驗證用戶端身分。 | 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 憑證,或 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 |
端點傳送的任何交握訊息包含已知禁止納入指定交握訊息的擴充功能,或 ServerHello 或 Certificate 中包含未先在對應的 ClientHello 或 CertificateRequest 中提供的任何擴充功能。
這個錯誤會導致 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.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 | 字串 | 負載平衡器的虛擬私有雲網路名稱。 |
| 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 為 |
| backend_scope | 字串 | 後端的範圍,可以是區域名稱或地區名稱。當 backend_name 不明時,可能為 UNKNOWN。 |
| backend_scope_type | 字串 | 後端的範圍 (REGION/ZONE)。
當 backend_name 不明時,可能為 UNKNOWN。 |
監控
Proxy 網路負載平衡器會將監控資料匯出至 Cloud Monitoring。
監控指標可用於以下用途:
- 評估負載平衡器的設定、用量和效能。
- 排解問題。
- 改善資源利用率和使用者體驗。
除了 Monitoring 預先定義的資訊主頁,您可透過 Cloud Monitoring API 建立自訂資訊主頁、設定警告及查詢指標。
查看 Monitoring 資訊主頁
前往 Google Cloud 控制台的「Monitoring」頁面。
如果導覽窗格中顯示「資源」,請依序選取「資源」和「Google Cloud 負載平衡器」。否則,請選取「資訊主頁」,然後選取名為「Google Cloud 負載平衡器」的資訊主頁。
點選負載平衡器的名稱。
左側窗格會列出該負載平衡器的各種詳細資訊,右側窗格則會顯示時間序列圖。如要查看特定細目,請按一下「細目」。
指標回報頻率與保留期
負載平衡器的指標會批次匯出至 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 所在大陸,例如 America、Europe、Asia。 |
| INSTANCE GROUP | 接收使用者連線的執行個體群組名稱。 |
| FORWARDING RULE | 用於連線至 GFE 的轉送規則名稱。 |
| CLIENT COUNTRY | 使用者所在國家/地區的名稱。 |
後續步驟
- 如要瞭解 SSL 政策的運作方式,請參閱 SSL 政策總覽。
- 如要瞭解外部 Proxy 網路負載平衡器的運作方式,請參閱外部 Proxy 網路負載平衡器總覽。
- 如要瞭解內部 Proxy 網路負載平衡器的運作方式,請參閱內部 Proxy 網路負載平衡器總覽。