本文提供相關資訊,協助您瞭解內部應用程式負載平衡器的記錄和監控指標。區域內部應用程式負載平衡器和跨區域內部應用程式負載平衡器的記錄與監控指標相同。
記錄
您可以針對每個後端服務啟用記錄功能。單一內部應用程式負載平衡器的網址對應可以參照多個後端服務。您可能需要依據設定,為多個後端服務啟用記錄功能。
記錄取樣和收集
系統會取樣負載平衡器後端虛擬機器 (VM) 執行個體所處理的要求 (和相應的回應)。取樣的要求經過處理後,就會產生記錄。您可以根據 logConfig.sampleRate 參數,控制以記錄項目形式發出的要求比例。如果 logConfig.sampleRate 為 1.0 (100%),表示產生的記錄涵蓋「所有要求」,並寫入 Cloud Logging。
此外,即使後端服務已停用記錄功能,如果負載平衡器無法將要求與特定後端建立關聯,仍可能會為不成功的要求產生記錄項目。
選填欄位
記錄包含必填欄位和選填欄位。如需必填和選填欄位的清單,請參閱「記錄內容」一節。所有必填欄位一律會包含,選填欄位則可自訂是否要保留。
如果選取「include all optional」(包含所有選填欄位),流程記錄會包含記錄格式中的所有選填欄位。記錄格式新增選填欄位時,流程記錄會自動納入這些新欄位。
如果選取「exclude all optional」(排除所有選填欄位),所有選填欄位皆會省略。
如果選取「custom」(自訂),可以指定要納入的選填欄位,例如
tls.protocol,tls.cipher。
如要瞭解如何自訂選填欄位,請參閱「啟用現有後端服務的記錄功能」。
啟用現有後端服務的記錄功能
如要使用區域性內部應用程式負載平衡器,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的「Load balancing」(負載平衡) 頁面。
點選負載平衡器的名稱。
按一下 「Edit」(編輯)。
按一下「後端設定」。
按一下後端服務旁的 「Edit」(編輯)。
按一下 [Advanced configurations (Session affinity, connection draining timeout)] (進階設定 (工作階段相依性、連線排除逾時))。
按一下 [Enable logging] (啟用記錄功能)。
設定「Sample rate」(取樣率) 分數。您可以設定從
0.0到1.0的數字,0.0表示不會記錄任何要求,1.0則代表會記錄所有要求。預設值為1.0。選用:如要在記錄中納入所有選填欄位,請在「Optional fields」(選填欄位) 部分,按一下「Include all optional fields」(包含所有選填欄位)。
點選「更新」,完成編輯後端服務。
點選「Update」(更新),完成編輯負載平衡器。
gcloud
如要更新後端服務以啟用記錄功能,請使用 gcloud compute
backend-services update 指令。
gcloud compute backend-services update BACKEND_SERVICE \
--enable-logging \
--logging-sample-rate=RATE \
--region=REGION \
--logging-optional=LOGGING_OPTIONAL_MODE \
--logging-optional-fields=OPTIONAL_FIELDS
其中
--enable-logging可為該後端服務啟用記錄功能。--logging-sample-rate可讓您指定介於0.0到1.0之間的值,其中0.0表示不會記錄任何要求,1.0則代表會記錄所有要求。這個值只在使用--enable-logging參數時有作用。啟用記錄功能但將取樣率設為0.0,等同於停用記錄功能。預設值為1.0。--logging-optional可用來指定要納入記錄的選填欄位:INCLUDE_ALL_OPTIONAL會包含所有選填欄位。EXCLUDE_ALL_OPTIONAL(預設) 會排除所有選填欄位。CUSTOM可納入您在OPTIONAL_FIELDS中指定的選填欄位自訂清單。
--logging-optional-fields可讓您以半形逗號分隔的清單,指定要納入記錄的選填欄位。舉例來說,只有在
LOGGING_OPTIONAL_MODE設為CUSTOM時,才能設定tls.protocol,tls.cipher。如果您使用自訂指標,並想記錄 ORCA 負載報表的元素,請將
LOGGING_OPTIONAL_MODE設為CUSTOM,並在OPTIONAL_FIELDS欄位指定須記錄的元素。例如:orca_load_report.cpu_utilization,orca_load_report.mem_utilization。
如要使用跨區域內部應用程式負載平衡器,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的「Load balancing」(負載平衡) 頁面。
點選負載平衡器的名稱。
按一下 「Edit」(編輯)。
按一下「後端設定」。
按一下後端服務旁的 「Edit」(編輯)。
按一下 [Advanced configurations (Session affinity, connection draining timeout)] (進階設定 (工作階段相依性、連線排除逾時))。
按一下 [Enable logging] (啟用記錄功能)。
設定「Sample rate」(取樣率) 分數。您可以設定從
0.0到1.0的數字,0.0表示不會記錄任何要求,1.0則代表會記錄所有要求。預設值為1.0。選用:如要在記錄中納入所有選填欄位,請在「Optional fields」(選填欄位) 部分,按一下「Include all optional fields」(包含所有選填欄位)。
點選「更新」,完成編輯後端服務。
點選「Update」(更新),完成編輯負載平衡器。
gcloud
如要更新後端服務以啟用記錄功能,請使用 gcloud compute
backend-services update 指令。
gcloud compute backend-services update BACKEND_SERVICE \
--enable-logging \
--logging-sample-rate=RATE \
--global \
--logging-optional=LOGGING_OPTIONAL_MODE \
--logging-optional-fields=OPTIONAL_FIELDS
其中
--enable-logging可為該後端服務啟用記錄功能。--logging-sample-rate可讓您指定介於0.0到1.0之間的值,其中0.0表示不會記錄任何要求,1.0則代表會記錄所有要求。這個值只在使用--enable-logging參數時有作用。啟用記錄功能但將取樣率設為0.0,等同於停用記錄功能。預設值為1.0。--logging-optional可用來指定要納入記錄的選填欄位:INCLUDE_ALL_OPTIONAL會包含所有選填欄位。EXCLUDE_ALL_OPTIONAL(預設) 會排除所有選填欄位。CUSTOM可納入您在OPTIONAL_FIELDS中指定的選填欄位自訂清單。
--logging-optional-fields可讓您以半形逗號分隔的清單,指定要納入記錄的選填欄位。舉例來說,只有在
LOGGING_OPTIONAL_MODE設為CUSTOM時,才能設定tls.protocol,tls.cipher。如果您使用自訂指標,並想記錄 ORCA 負載報表的元素,請將
LOGGING_OPTIONAL_MODE設為CUSTOM,並在OPTIONAL_FIELDS欄位指定須記錄的元素。例如:orca_load_report.cpu_utilization,orca_load_report.mem_utilization。
啟用後端服務的記錄功能後,系統會使用 Cloud Logging 記錄每個 HTTP(S) 要求。
停用或修改現有後端服務的記錄功能
控制台
前往 Google Cloud 控制台的「Load balancing」(負載平衡) 頁面。
點選負載平衡器的名稱。
按一下 「Edit」(編輯)。
按一下「Backend Configuration」(後端設定)。
按一下後端服務旁的 「Edit」(編輯)。
如要完全停用記錄功能,請在「Logging」(記錄) 部分,取消勾選「Enable logging」(啟用記錄功能) 核取方塊。
如果保持啟用記錄功能,即可設定不同的「Sample rate」(取樣率) 分數。您可以設定從
0.0到1.0的數字,0.0表示不會記錄任何要求,1.0則代表會記錄所有要求。預設值為1.0。舉例來說,0.2表示 20% 的取樣要求會產生記錄。點選「更新」,完成編輯後端服務。
點選「更新」,完成編輯負載平衡器。
gcloud:跨區域模式
使用 gcloud compute backend-services update 指令,停用後端服務的記錄功能。
完全停用記錄功能
gcloud compute backend-services update BACKEND_SERVICE \
--global \
--no-enable-logging
其中
--global表示後端服務是全域服務。這個欄位適用於搭配使用跨區域內部應用程式負載平衡器的後端服務。--no-enable-logging會停用該後端服務的記錄功能。
啟用現有後端服務的記錄選填欄位
gcloud compute backend-services update BACKEND_SERVICE \
--global \
--enable-logging \
--logging-sample-rate=VALUE \
--logging-optional=LOGGING_OPTIONAL_MODE \
--logging-optional-fields=OPTIONAL_FIELDS
其中
--logging-sample-rate可讓您指定介於0.0到1.0之間的值,0.0表示不會記錄任何要求,1.0則表示會記錄所有要求。這個值只在使用--enable-logging參數時有作用。啟用記錄功能但將取樣率設為0.0,等同於停用記錄功能。預設值為1.0。--logging-optional可用來指定要納入記錄的選填欄位:INCLUDE_ALL_OPTIONAL會包含所有選填欄位。EXCLUDE_ALL_OPTIONAL(預設) 會排除所有選填欄位。CUSTOM可納入您在OPTIONAL_FIELDS中指定的選填欄位自訂清單。
--logging-optional-fields可讓您以半形逗號分隔的清單,指定要納入記錄的選填欄位。舉例來說,只有在
LOGGING_OPTIONAL_MODE設為CUSTOM時,才能設定tls.protocol,tls.cipher。如果您使用自訂指標,並想記錄 ORCA 負載報表的元素,請將
LOGGING_OPTIONAL_MODE設為CUSTOM,並在OPTIONAL_FIELDS欄位指定須記錄的元素。例如:orca_load_report.cpu_utilization,orca_load_report.mem_utilization。
將記錄選用模式從「CUSTOM」(自訂) 更新為其他模式
gcloud compute backend-services update BACKEND_SERVICE \
--global \
--enable-logging \
--logging-sample-rate=VALUE \
--logging-optional=LOGGING_OPTIONAL_MODE \
--logging-optional-fields=
其中
--logging-optional可用來指定要納入記錄的選填欄位:INCLUDE_ALL_OPTIONAL會包含所有選填欄位。EXCLUDE_ALL_OPTIONAL(預設) 會排除所有選填欄位。
必須明確設定
--logging-optional-fields(如圖所示),才能清除現有的CUSTOM欄位。API 不允許將非CUSTOM模式與CUSTOM欄位合併。
修改記錄取樣率
gcloud compute backend-services update BACKEND_SERVICE \
--global \
--logging-sample-rate=VALUE
gcloud:區域模式
使用 gcloud compute backend-services update 指令,停用後端服務的記錄功能。
完全停用記錄功能
gcloud compute backend-services update BACKEND_SERVICE \
--region=REGION \
--no-enable-logging
其中
--region表示後端服務是區域服務。這個欄位適用於搭配使用區域性內部應用程式負載平衡器的後端服務。--no-enable-logging會停用該後端服務的記錄功能。
啟用現有後端服務的記錄選填欄位
gcloud compute backend-services update BACKEND_SERVICE \
--region=REGION \
--enable-logging \
--logging-sample-rate=VALUE \
--logging-optional=LOGGING_OPTIONAL_MODE \
--logging-optional-fields=OPTIONAL_FIELDS
其中
--logging-sample-rate可讓您指定介於0.0到1.0之間的值,0.0表示不會記錄任何要求,1.0則表示會記錄所有要求。這個值只在使用--enable-logging參數時有作用。啟用記錄功能但將取樣率設為0.0,等同於停用記錄功能。預設值為1.0。--logging-optional可用來指定要納入記錄的選填欄位:INCLUDE_ALL_OPTIONAL會包含所有選填欄位。EXCLUDE_ALL_OPTIONAL(預設) 會排除所有選填欄位。CUSTOM可納入您在OPTIONAL_FIELDS中指定的選填欄位自訂清單。
--logging-optional-fields可讓您以半形逗號分隔的清單,指定要納入記錄的選填欄位。舉例來說,只有在
LOGGING_OPTIONAL_MODE設為CUSTOM時,才能設定tls.protocol,tls.cipher。如果您使用自訂指標,並想記錄 ORCA 負載報表的元素,請將
LOGGING_OPTIONAL_MODE設為CUSTOM,並在OPTIONAL_FIELDS欄位指定須記錄的元素。例如:orca_load_report.cpu_utilization,orca_load_report.mem_utilization。
將記錄選用模式從「CUSTOM」(自訂) 更新為其他模式
gcloud compute backend-services update BACKEND_SERVICE \
--region=REGION \
--enable-logging \
--logging-sample-rate=VALUE \
--logging-optional=LOGGING_OPTIONAL_MODE \
--logging-optional-fields=
其中
--logging-optional可用來指定要納入記錄的選填欄位:INCLUDE_ALL_OPTIONAL會包含所有選填欄位。EXCLUDE_ALL_OPTIONAL(預設) 會排除所有選填欄位。
必須明確設定
--logging-optional-fields(如圖所示),才能清除現有的CUSTOM欄位。API 不允許將非CUSTOM模式與CUSTOM欄位合併。
修改記錄取樣率
gcloud compute backend-services update BACKEND_SERVICE \
--region=REGION \
--logging-sample-rate=VALUE
如何查看記錄檔
如要查看記錄,請前往 Google Cloud 控制台的「Logs Explorer」頁面。
系統會依序按照網路和地區為內部應用程式負載平衡器記錄檔建立索引。
- 如要查看所有內部應用程式負載平衡器的記錄,請在第一個下拉式選單中選取「內部應用程式負載平衡器規則」。
- 如果只要查看一個網路的記錄檔,請依序選取「Internal Application Load Balancer Rule」(內部應用程式負載平衡器規則) 和所需網路的名稱。
- 如果只要查看該網路其中一個地區的記錄檔,請依序選取「內部應用程式負載平衡器規則」
NETWORKREGION。
「布林」類型的記錄欄位通常只會在值為 true 時才會顯示。如果布林欄位的值為 false,記錄會省略該欄位。
記錄欄位會強制採用 UTF-8 編碼。非 UTF-8 字元都會替換為問號。
您可以針對資源記錄檔 (resource.type="internal_http_lb_rule") 設定匯出記錄指標。系統會根據 Cloud Monitoring 資訊主頁提供的「內部應用程式負載平衡器規則」資源建立指標:
記錄內容
內部應用程式負載平衡器記錄項目包含實用資訊,有助監控 HTTP(S) 流量及偵錯。記錄包含必填欄位 (也就是每個記錄的預設欄位),以及選填欄位 (可新增 HTTP(S) 流量的其他資訊)。如不需要,可以略過選填欄位,節省儲存空間費用。記錄檔項目包含下列資訊類型:
- 多數 Google Cloud 記錄檔所示的一般資訊,如嚴重性、專案 ID、專案編號和時間戳記 (如 LogEntry 所述)。
- HttpRequest 記錄檔欄位。
某些記錄欄位採用多欄位格式,也就是指定欄位會包含多項資料。舉例來說,tls 欄位採用 TlsDetails 格式,也就是一個欄位同時包含 TLS 通訊協定和 TLS 密碼。以下記錄格式表說明這些多欄位格式的欄位。
| 欄位 | 類型 | 欄位類型:必填或選填 | 說明 |
|---|---|---|---|
logName |
字串 | 必填 | 此記錄項目所屬記錄的資源名稱。 在表單中 "projects/PROJECT_ID/logs/requests"。 |
timestamp |
字串 | 必填 | 要求開始的時間。 |
severity |
LogSeverity 格式 | 必填 | 記錄項目的嚴重性。預設值為 LogSeverity.DEFAULT。 |
httpRequest |
HttpRequest 物件 | 必填 | HttpRequest 原型,用來說明記錄的 HTTP(S) 要求。 |
trace |
字串 | 必填 | 記錄項目相關聯追蹤記錄的資源名稱 (如有)。如果其中含有相對的資源名稱,系統會假設該名稱是相對於 https://tracing.googleapis.com。示例:
projects/PROJECT_ID/traces/06796866738c859f2f19b7cfb3214824。
內部應用程式負載平衡器不支援這個欄位。 |
spanId |
字串 | 必填 | 記錄項目相關聯追蹤記錄中的時距 ID。如果是 Trace 時距,這個字串的格式與 Trace API v2 使用的格式相同,也就是 8 位元組陣列的 16 字元十六進位編碼,例如 000000000000004a。內部應用程式負載平衡器不支援這個欄位。 |
resource |
MonitoredResource 物件 | 必填 | 產生這個記錄項目的受監控資源。
舉例來說,內部應用程式負載平衡器的受監控資源描述元資源類型為 |
| jsonPayload | object (Struct 格式) | 必填 | 以 JSON 物件表示的記錄項目酬載。JSON 物件包含下列欄位:
|
| 字串 | 必填 |
如果值為空白字串,系統不會記錄該欄位。如果 Proxy 或後端未傳回錯誤或錯誤代碼 (不是
|
|
| 字串 | 必填 | backendTargetProjectNumber 欄位會保留專案編號,用來識別後端服務或後端 bucket 的擁有者。 |
|
| 字串 | 必填 | serviceDirectoryService 欄位會保留 Cloud FIT 故障設定所在的 Service Directory 服務名稱。 |
|
| 字串 | 必填 | cloudFitExperiment 欄位會保留 Cloud FIT 實驗的名稱。 |
|
| 字串 | 必填 | cloudFitFault 欄位會保留 Cloud FIT 錯誤實驗在這個要求路徑中插入的錯誤名稱。 |
|
| ServiceExtensionInfo | 必填 | serviceExtensionInfo 欄位會儲存從負載平衡器到 Service Extensions 的 gRPC 串流相關資訊。詳情請參閱「
摘要額外資訊記錄內容」。 |
|
| AuthzPolicyInfo | 必填 | authzPolicyInfo 欄位會儲存授權政策結果的資訊。這項資訊僅適用於已啟用
授權政策的內部應用程式負載平衡器。詳情請參閱「
授權政策記錄內容」。 |
|
| TlsInfo | 選用 |
使用
將 |
|
| MtlsInfo | 選用 | mtls 欄位會保留 MtlsInfo 值,指定用戶端與內部應用程式負載平衡器之間連線的 mTLS 中繼資料。只有在負載平衡器使用前端雙向 TLS (mTLS) 時,才會顯示這個欄位。 |
|
| 字串 | 必填 | 如果後端使用的 VPC 與負載平衡器的轉送規則不同,則 backendNetworkName 欄位會指定後端的 VPC 網路。 |
|
| OrcaLoadReport | 選填 |
使用
您也可以將 |
TlsInfo 欄位格式
| 欄位 | 欄位格式 | 欄位類型:必填或選填 | 說明 |
|---|---|---|---|
| protocol | 字串 | 選填 | 用戶端用來與負載平衡器建立連線的 TLS 通訊協定。可能的值為 TLS 1.0, 1.1, 1.2,
1.3 或 QUIC。
如果用戶端未使用 TLS/SSL 加密,這個值會設為 NULL。 |
| cipher | 字串 | 選用 | 用戶端用來與負載平衡器建立連線的 TLS 加密。如果用戶端未使用 HTTP(S) 或 TLS/SSL 加密,這個值會設為 NULL。 |
MtlsInfo 欄位格式
| 欄位 | 欄位格式 | 欄位類型:必填或選填 | 說明 |
|---|---|---|---|
| clientCertPresent | bool | 選用 |
|
| clientCertChainVerified | bool | 選用 |
|
| clientCertError | 字串 | 選用 | 代表錯誤情況的預先定義字串。如要進一步瞭解錯誤字串,請參閱「用戶端驗證模式」。 |
| clientCertSha256Fingerprint | 字串 | 選用 | 用戶端憑證的 Base64 編碼 SHA-256 指紋。 |
| clientCertSerialNumber | 字串 | 選用 | 用戶端憑證的序號。
如果序號長度超過 50 個位元組,系統會將 |
| clientCertValidStartTime | 字串 | 選用 | 時間戳記 (RFC 3339 日期字串格式),指出用戶端憑證失效的時間。例如: |
| clientCertValidEndTime | 字串 | 選用 | 時間戳記 (RFC 3339 日期字串格式),標示用戶端憑證失效的時間點。例如: |
| clientCertSpiffeId | 字串 | 選用 | 主體別名 (SAN) 欄位中的 SPIFFE ID。如果值無效或超過 2048 個位元組,SPIFFE ID 會設為空字串。 如果 SPIFFE ID 長度超過 2048 個位元組,系統會將 |
| clientCertUriSans | 字串 | 選用 | 以逗號分隔的 Base64 編碼清單,列出 URI 類型的 SAN 擴充功能。系統會從用戶端憑證擷取 SAN 擴充功能。
SPIFFE ID 不會包含在 如果 |
| clientCertDnsnameSans | 字串 | 選用 | 以逗號分隔的 Base64 編碼清單,列出 DNSName 類型的 SAN 擴充功能。系統會從用戶端憑證擷取 SAN 擴充功能。 如果 |
| clientCertIssuerDn | 字串 | 選用 | 憑證中 Base64 編碼的完整簽發者欄位。 如果 |
| clientCertSubjectDn | 字串 | 選用 | 憑證中 Base64 編碼的完整「主體」欄位。 如果 |
| clientCertLeaf | 字串 | 選用 | 已建立 mTLS 連線的用戶端葉子憑證,且該憑證已通過驗證。憑證編碼符合 RFC 9440:二進位 DER 憑證會使用 Base64 編碼 (不含換行符、空格或 Base64 字母以外的其他字元),並以兩側的半形冒號做為分隔符。 如果 |
| clientCertChain | 字串 | 選用 | 以半形逗號分隔的憑證清單,採用標準 TLS 順序,列出已建立 mTLS 連線的用戶端憑證鏈,其中用戶端憑證已通過驗證,但不包括葉憑證。憑證編碼符合 RFC 9440 規定。 如果 |
proxyStatus 錯誤欄位
proxyStatus 欄位包含的字串會說明負載平衡器為何傳回錯誤。「proxyStatus」欄位包含兩個部分:「proxyStatus error」和「proxyStatus details」。本節說明 proxyStatus error 欄位支援的字串。
proxyStatus 錯誤欄位適用於下列負載平衡器:
- 區域性外部應用程式負載平衡器
- 跨區域內部應用程式負載平衡器
- 區域性內部應用程式負載平衡器
| 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
|
負載平衡器發生內部錯誤。這個錯誤可能是因為管理連線的 Proxy 預定重新啟動所致。 | 0、500、502 |
proxy_internal_response
|
負載平衡器產生回應,但未嘗試連線至後端。 | 根據問題類型,可能出現任何狀態碼。舉例來說,410 狀態碼表示後端因欠費而無法使用。 |
http_response_timeout
|
負載平衡器等待後端傳回完整回應時,達到設定的後端服務逾時上限。 | 504、408 |
http_request_error
|
負載平衡器發生 HTTP 4xx 錯誤,表示用戶端要求有問題。 | 400、403、405、406、408、411、413、414、415、416、417 或 429
|
http_protocol_error
|
負載平衡器與後端通訊時發生 HTTP 通訊協定錯誤。 | 502
|
tls_protocol_error
|
負載平衡器在 TLS 交握期間發生 TLS 錯誤。 | 0
|
tls_certificate_error
|
啟用 mTLS 時,負載平衡器在驗證伺服器或用戶端提供的憑證時發生錯誤。 | 0
|
tls_alert_received
|
負載平衡器在 TLS 交握期間遇到嚴重 TLS 快訊。 | 0
|
proxyStatus 詳細資料欄位
proxyStatus 欄位包含的字串會說明負載平衡器為何傳回錯誤。「proxyStatus」欄位包含兩個部分:「proxyStatus error」和「proxyStatus details」。proxyStatus details 欄位為選填欄位,只有在有額外資訊時才會顯示。
本節說明 proxyStatus details 欄位支援的字串。
proxyStatus 詳細資料欄位適用於下列負載平衡器:
- 區域性外部應用程式負載平衡器
- 區域性內部應用程式負載平衡器
- 跨區域內部應用程式負載平衡器
| 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
|
response_sent_by_backend
|
成功將 HTTP 要求經由 Proxy 傳送至後端,且後端已提供回應。 | HTTP 狀態碼是由後端執行的軟體設定。 |
client_timed_out
|
負載平衡器與用戶端之間的連線超過閒置逾時時間。 如要進一步瞭解區域性外部應用程式負載平衡器,請參閱「用戶端 HTTP 保持運作逾時」。如要進一步瞭解內部應用程式負載平衡器,請參閱「用戶端 HTTP 保持運作逾時」。 |
0、408 |
backend_timeout
|
後端逾時產生回應。 |
502
|
http_protocol_error_from_backend_response
|
後端回應包含 HTTP 通訊協定錯誤。 | 501、502 |
http_protocol_error_from_request
|
用戶端要求含有 HTTP 通訊協定錯誤。 | 400、503 |
http_version_not_supported
|
系統不支援 HTTP 通訊協定版本。只支援 HTTP 1.1 和 2.0。 | 400
|
handled_by_identity_aware_proxy
|
這個回應是由 Identity-Aware Proxy (IAP) 產生,目的是在允許存取前驗證用戶端身分。 | 200、302、400、401、403、500、502
|
invalid_request_headers
|
從用戶端收到的 HTTP 要求標頭中,包含至少一個適用 HTTP 規格不允許的字元。 舉例來說,如果標頭欄位名稱包含雙引號 ( 如需詳細資訊,請參閱: |
400、404 |
ip_detection_failed
|
系統無法偵測原始 IP 位址。 | 根據失敗的性質,可能出現任何狀態碼。值必須介於 400 到 599 之間。 |
request_body_too_large
|
HTTP 要求主體超過負載平衡器支援的長度上限。 | 413、507 |
request_header_timeout
|
負載平衡器未在 5 秒內收到完整要求,因此要求標頭逾時。 | 408、504 |
denied_by_security_policy
|
由於 Google Cloud Armor 安全性政策,負載平衡器已拒絕這個要求。 | 403
|
throttled_by_security_policy
|
要求遭到 Cloud Armor 節流規則封鎖。 | 429
|
client_cert_chain_invalid_eku
|
用戶端憑證或憑證頒發機構沒有包含 clientAuth 的擴充金鑰用途。詳情請參閱「已記錄的連線關閉錯誤」。 | 0
|
client_cert_chain_max_name_constraints_exceeded
|
用於驗證的中繼憑證含有超過 10 個名稱限制條件。詳情請參閱「已記錄的連線關閉錯誤」。 | 0
|
client_cert_invalid_rsa_key_size
|
用戶端葉或中繼憑證的 RSA 金鑰大小無效。詳情請參閱「已記錄的連線關閉錯誤」。 | 0
|
client_cert_not_provided
|
握手期間,用戶端未提供要求的憑證。詳情請參閱「已記錄的連線關閉錯誤」。 | 0
|
client_cert_pki_too_large
|
用於驗證的 PKI 有超過三個中繼憑證,這些憑證共用相同的Subject和Subject Public Key Info。詳情請參閱「已記錄的連線關閉錯誤」。 |
0
|
client_cert_unsupported_elliptic_curve_key
|
用戶端或中繼憑證使用不支援的橢圓曲線。詳情請參閱「已記錄的連線關閉錯誤」。 | 0
|
client_cert_unsupported_key_algorithm
|
用戶端或中繼憑證使用 RSA 和 ECDSA 以外的演算法。詳情請參閱「已記錄的連線關閉錯誤」。 | 0
|
client_cert_validation_failed
|
用戶端憑證無法透過 TrustConfig 通過驗證。詳情請參閱「已記錄的連線關閉錯誤」。 |
0
|
client_cert_validation_not_performed
|
您已設定雙向傳輸層安全標準 (TLS),但未設定 TrustConfig。
詳情請參閱「已記錄的連線關閉錯誤」。 |
0
|
client_cert_validation_search_limit_exceeded
|
嘗試驗證憑證鏈結時,已達到深度或疊代限制。詳情請參閱「已記錄的連線關閉錯誤」。 | 0 |
client_cert_validation_timed_out
|
驗證憑證鏈結時超過時間限制 (200 毫秒)。詳情請參閱「已記錄的連線關閉錯誤」。 | 0
|
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 憑證,或 CA 憑證與已知信任錨點不符,因此無法接受該憑證。這個錯誤會導致 TLS 連線關閉。 | 0
|
unexpected_message
|
不當訊息,例如錯誤的信號交換訊息或過早收到應用程式資料。這個錯誤會導致 TLS 連線關閉。 | 0
|
bad_record_mac
|
系統收到無法解除保護的記錄。這個錯誤會導致 TLS 連線關閉。 | 0
|
record_overflow
|
收到的 TLSCiphertext 記錄長度超過 214+256 個位元組,或解密後的 TLSPlaintext 記錄長度超過 214 個位元組 (或其他協商限制)。這個錯誤會導致 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"
資源標籤
下表列出 resource.type="internal_http_lb_rule" 的資源標籤。
| 欄位 | 類型 | 說明 |
|---|---|---|
network_name |
字串 | 負載平衡器的 VPC 網路名稱。 |
project_id | 字串 | 與這個資源相關聯的 Google Cloud 專案 ID。 |
region |
字串 | 定義負載平衡器的區域。 |
url_map_name | 字串 | 設為用來選取後端服務的網址對應物件名稱。 |
forwarding_rule_name |
字串 | 轉送規則物件的名稱。 |
target_proxy_name | 字串 | 轉送規則所參照的目標 Proxy 物件名稱。 |
matched_url_path_rule |
字串 |
網址對應路徑規則或路由規則,設為網址對應鍵的一部分。可以把 UNMATCHED 或 UNKNOWN 當做備用值。
|
backend_target_name |
字串 | 根據與要求相符的網址對應路徑規則或轉送規則,選擇用於處理要求的後端名稱。 |
backend_target_type | 字串 | 後端目標的類型 (BACKEND_SERVICE / UNKNOWN)。 |
backend_name |
字串 | 後端執行個體群組或 NEG 的名稱。 |
backend_type |
字串 | 後端類型,可以是執行個體群組、NEG 或不明。 即使停用記錄功能,Cloud Logging 仍會在 |
backend_scope |
字串 |
後端的範圍,可以是區域名稱或地區名稱。當 backend_name 不明時,可能為 UNKNOWN。 |
backend_scope_type |
字串 |
後端的範圍 (REGION/ZONE)。當 backend_name 不明時,可能為 UNKNOWN。 |
backend_target_cross_project_id |
字串 |
後端目標服務或 bucket 的專案 ID。只有在後端目標資源建立的專案,與 url_map 資源建立的專案不同時,這個欄位才會顯示。
|
授權政策要求記錄
負載平衡器記錄項目 JSON 酬載中的 authz_info 物件包含授權政策的資訊。您可以根據這些政策允許或拒絕的流量,設定記錄指標。進一步瞭解授權政策記錄詳細資料。
| 欄位 | 類型 | 說明 |
|---|---|---|
authz_info.policies[] |
物件 | 符合要求的政策清單。 |
authz_info.policies[].name |
字串 | 符合要求的授權政策名稱。 名稱空白的原因如下:
|
authz_info.policies[].result |
列舉 | 結果可以是 ALLOWED 或 DENIED。 |
authz_info.policies[].details |
字串 | 詳細資料包括:
|
authz_info.overall_result |
列舉 | 結果可以是 ALLOWED 或 DENIED。 |
查看 mTLS 用戶端憑證驗證記錄
如要查看 mTLS 用戶端憑證驗證期間已記錄的連線關閉錯誤,請完成下列步驟。
控制台
前往 Google Cloud 控制台的「Logs Explorer」頁面。
點選「Show query」(顯示查詢) 切換鈕,啟用查詢編輯器。
將下列內容貼到「Query」(查詢) 欄位。將
FORWARDING_RULE_NAME替換成您的轉送規則名稱。jsonPayload.statusDetails=~"client_cert" jsonPayload.@type="type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" resource.labels.forwarding_rule_name=FORWARDING_RULE_NAME
點選「執行查詢」
監控
內部應用程式負載平衡器會將監控資料匯出至 Monitoring。
監控指標可用於以下目的:
- 評估負載平衡器的設定、用量和效能
- 問題疑難排解
- 提高資源利用率和使用者體驗
除了 Monitoring 預先定義的資訊主頁,您可透過 Monitoring API 建立自訂資訊主頁、設定警告及查詢指標。
查看 Cloud Monitoring 指標
控制台
如要使用 Metrics Explorer 查看受監控資源的指標,請按照下列步驟操作:
-
前往 Google Cloud 控制台的 leaderboard「Metrics Explorer」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。
- 在 Google Cloud 控制台的工具列中,選取 Google Cloud 專案。 如要進行 App Hub 設定,請選取 App Hub 主專案或已啟用應用程式的資料夾管理專案。
- 在「指標」元素中,展開「選取指標」選單,
在篩選列中輸入
Internal Application Load Balancer Rule, 然後使用子選單選取特定資源類型和指標:- 在「Active resources」(有效資源) 選單中,選取「Internal Application Load Balancer Rule」(內部應用程式負載平衡器規則)。
- 如要選取指標,請使用「使用中的指標類別」和「使用中的指標」選單。
- 按一下「套用」。
如要新增篩選器,從查詢結果中移除時間序列,請使用「Filter」元素。
如要合併時間序列,請使用「Aggregation」(匯總) 元素上的選單。舉例來說,如要依據 VM 的所在區域顯示 CPU 使用率,請將第一個選單設為「平均值」,第二個選單設為「區域」。
將「Aggregation」(彙整) 元素的第一個選單設為「Unaggregated」(未彙整) 時,系統會顯示所有時間序列。「匯總」元素的預設設定取決於您選取的指標類型。
- 如要查看每日回報一個樣本的配額和其他指標,請按照下列步驟操作:
- 在「顯示」窗格中,將「小工具類型」設為「堆疊長條圖」。
- 將時間範圍設為至少一週。
設定警告政策
控制台
您可以建立警告政策來監控指標值,並在指標違反條件時收到通知。
-
前往 Google Cloud 控制台的 notifications「Alerting」(警告) 頁面:
如果是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。
- 如果尚未建立通知管道,但想收到通知,請按一下「Edit Notification Channels」(編輯通知管道),新增通知管道。新增管道後,請返回「Alerting」(警告) 頁面。
- 在「Alerting」(警告) 頁面,選取「Create policy」(建立政策)。
- 如要選取指標,請展開「Select a metric」(選取指標) 選單,執行下列步驟:
- 如要限制選單只顯示相關項目,請在篩選列輸入
Internal Application Load Balancer Rule。如果選單篩選後沒有任何結果,請停用「Show only active resources & metrics」(僅顯示使用中的資源和指標) 切換鈕。 - 在「Resource type」(資源類型) 部分,選取「Internal Application Load Balancer Rule」(內部應用程式負載平衡器規則)。
- 選取「Metric category」(指標類別) 和「Metric」(指標),然後選取「Apply」(套用)。
- 如要限制選單只顯示相關項目,請在篩選列輸入
- 點選「Next」(下一步)。
- 「Configure alert trigger」(設定警告觸發條件) 頁面中的設定會決定警告觸發時機。選取條件類型,視需要指定門檻。詳情請參閱「建立指標門檻警告政策」。
- 點選「Next」(下一步)。
- 選用:如要新增警告政策的通知,請按一下「Notification channels」(通知管道)。在對話方塊中,從選單選取一或多個通知管道,然後按一下「OK」(確定)。
- 選用:更新「Incident autoclose duration」(事件自動關閉期限)。這個欄位會決定 Monitoring 在沒有指標資料下關閉事件的時機。
- 選用:按一下「Documentation」(說明文件),新增要納入通知訊息的資訊。
- 按一下「Alert name」(警告名稱),輸入警告政策的名稱。
- 點選「建立政策」。
定義 Monitoring 自訂資訊主頁
控制台
您可以針對內部應用程式負載平衡器指標建立自訂 Monitoring 資訊主頁:
前往 Google Cloud 控制台的「Monitoring」頁面。
依序選取「Dashboards」(資訊主頁) >「Create Dashboard」(建立資訊主頁)。
按一下 [Add Chart] (新增圖表)。
為圖表命名。
選取指標與篩選器。指標的資源類型是 [Internal HTTP/S Load Balancer] (內部 HTTP/S 負載平衡器)。
按一下 [Save] (儲存)。
指標回報頻率與保留期
負載平衡器的指標會批次匯出至 Monitoring,每分鐘一次。監控資料會保留六週。
根據預設,資訊主頁會提供過去一小時的資料分析 (1h)。
如要要求分析其他時間間隔的資料,請從選單選取預先設定的時間間隔,
或手動輸入所需的時間間隔。例如:3h (3 小時)、4d (4 天) 或 6w (6 週)。
監控指標
下列內部應用程式負載平衡器指標會回報給 Monitoring。
| 指標 | FQDN | 說明 |
|---|---|---|
| 已設定後端比率 (預覽) | network.googleapis.com/loadbalancer/backend/configured_rate |
為每個後端群組設定的每秒要求數上限。這是將目標容量乘以容量調整器 (如有指定) 的結果。 |
| 已設定的後端使用率 (預先發布版) | network.googleapis.com/loadbalancer/backend/configured_utilization |
每個後端群組設定的 CPU 使用率上限 (以分數表示)。這是將目標容量乘以容量調整器 (如有指定) 的結果。 |
| 後端錯誤率 (預覽版) | network.googleapis.com/loadbalancer/backend/error_rate |
每個後端群組每秒提供的錯誤數。 |
| 後端容量 (預覽版) | network.googleapis.com/loadbalancer/backend/fullness |
每個後端群組目前的飽和度 (以百分比表示),計算依據為負載平衡器的「平衡模式」。 |
| 後端延遲時間 | loadbalancing.googleapis.com/https/internal/backend_latencies |
後端延遲時間的分布情形。後端延遲時間是指傳送至後端的要求的最後一個位元組,到 Proxy 接收回應的最後一個位元組之間的時間,以毫秒為單位。這包括後端處理要求,以及回應傳回 Proxy 所花費的時間。 |
| 後端負載平衡自訂指標 (預覽版) | network.googleapis.com/loadbalancer/backend/lb_custom_metric |
根據您定義的自訂指標,每個後端群組目前的使用率。 |
| 後端費率 (預覽) | network.googleapis.com/loadbalancer/backend/rate |
每個後端群組每秒收到的要求數。 |
| 後端使用率 (預先發布版) | network.googleapis.com/loadbalancer/backend/utilization |
群組中 VM 的 CPU 總使用率,以分數表示。 |
| 後端延遲時間 | loadbalancing.googleapis.com/https/internal/backend_latencies |
後端延遲時間的分布情形。後端延遲時間是指傳送至後端的要求的最後一個位元組,到 Proxy 接收回應的最後一個位元組之間的時間,以毫秒為單位。這包括後端處理要求,以及回應傳回 Proxy 所花費的時間。 |
| 已設定處理中的要求 (預先發布版) | network.googleapis.com/loadbalancer/backend/configured_in_flight_requests |
每個後端群組的處理中要求數量上限。進行中的要求會決定如何分散執行時間超過數秒的要求負載。 |
| 處理中的要求 (預先發布版) | network.googleapis.com/loadbalancer/backend/in_flight_requests |
每個後端群組正在進行的查詢數量。 |
| 要求數量 | loadbalancing.googleapis.com/https/internal/request_count |
由內部應用程式負載平衡器提供服務的要求數量。 |
| 要求位元組數 | loadbalancing.googleapis.com/https/internal/request_bytes |
以要求形式,從用戶端傳送至內部應用程式負載平衡器的位元組數。 |
| 回應位元組數 | loadbalancing.googleapis.com/https/internal/response_bytes |
以回應形式從內部 HTTP(S) 負載平衡器傳送至用戶端的位元組數。 |
| 總延遲時間 | loadbalancing.googleapis.com/https/internal/total_latencies |
總延遲時間的分布情形。總延遲時間是指 Proxy 收到第一個要求位元組,到 Proxy 傳送最後一個回應位元組之間的時間,以毫秒為單位。這包括 Proxy 處理要求、Proxy 將要求傳送至後端、後端處理要求、回應傳回 Proxy,以及 Proxy 處理回應、將回應傳送至用戶端等作業所花費的時間。 不包括用戶端與 Proxy 之間的封包往返時間。此外,在同一個使用 |
指標篩選維度
系統會針對每個內部應用程式負載平衡器匯總指標。您可以依據下列維度篩選匯總的指標。
| 屬性 | 說明 |
|---|---|
| BACKEND_SCOPE | 為用戶端要求提供服務的後端群組所屬 Google Cloud 區域或地區;如果未指派後端群組,則為特殊字串。例如:
us-central1-a、europe-west1-b
asia-east1、UNKNOWN。
|
| PROXY_REGION | 內部應用程式負載平衡器、用戶端和後端所屬地區。例如:us-central1、europe-west1 或 asia-east1。 |
| BACKEND | 為用戶端要求提供服務的後端執行個體群組或 NEG 名稱。 |
| BACKEND_TARGET | 為用戶端要求提供服務的後端服務名稱。 |
| MATCHED_URL_RULE | 符合用戶端 HTTP(S) 要求前置字串 (最多 50 個字元) 的網址對應路徑規則或轉送規則。 |
整個負載平衡器都支援 Response code class fraction 指標。系統不支援更精細的篩選維度。
後續步驟
- 參閱內部應用程式負載平衡器的相關概念資訊。
- 建立內部應用程式負載平衡器。
- 如要瞭解負載平衡器可用的 DNS 名稱選項,請參閱內部負載平衡和 DNS 名稱一文。