本文提供相關資訊,協助您瞭解內部應用程式負載平衡器的記錄和監控指標。區域內部應用程式負載平衡器和跨區域內部應用程式負載平衡器的記錄與監控指標相同。
記錄
您可以針對每個後端服務啟用記錄功能。單一內部應用程式負載平衡器的網址對應可以參照多個後端服務。您可能需要依據設定,為多個後端服務啟用記錄功能。
記錄取樣和收集
系統會對負載平衡器後端虛擬機器 (VM) 執行個體處理的要求 (和相應的回應) 進行取樣。接著系統會處理這些取樣要求,產生記錄。您可以根據 logConfig.sampleRate 參數,控制以記錄項目形式發出的要求比例。如果 logConfig.sampleRate
為 1.0
(100%),系統會為所有要求產生記錄,並寫入 Cloud Logging。
此外,即使後端服務已停用記錄功能,如果負載平衡器無法將要求與特定後端建立關聯,仍可能會為不成功的要求產生記錄項目。
選填欄位
記錄包含必填欄位和選填欄位。「記錄內容」一節列出選填和必填欄位。所有必填欄位一律會納入。你可以自訂要保留哪些選填欄位。
如果選取「包含所有選用欄位」,則所有記錄格式中的選用欄位都會納入流程記錄。在記錄格式中新增選用欄位時,系統會自動將新欄位納入流量記錄。
如果選取「排除所有選填欄位」,系統就會省略所有選填欄位。
如果選取「自訂」,可以指定要加入的選填欄位,例如
tls.protocol,tls.cipher
。
如需自訂選用欄位的操作說明,請參閱「為現有後端服務啟用記錄功能」。
啟用現有後端服務的記錄功能
如要使用區域性內部應用程式負載平衡器,請按照下列步驟操作:
主控台
前往 Google Cloud 控制台的「Load balancing」(負載平衡)頁面。
點選負載平衡器的名稱。
按一下「編輯」
。按一下「後端設定」。
按一下後端服務旁的
「Edit」(編輯)。按一下 [Advanced configurations (Session affinity, connection draining timeout)] (進階設定 (工作階段相依性、連線排除逾時))。
按一下 [Enable logging] (啟用記錄功能)。
設定「Sample rate」(取樣率) 分數。您可以設定從
0.0
到1.0
的數字,其中0.0
表示不會記錄任何要求,1.0
則代表有 100% 的要求會記錄完畢。預設值為1.0
。選用:如要在記錄中加入所有選填欄位,請在「選填欄位」部分中,按一下「包含所有選填欄位」。
點選「更新」,完成編輯後端服務。
點選「更新」,完成編輯負載平衡器。
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」(編輯)。按一下 [Advanced configurations (Session affinity, connection draining timeout)] (進階設定 (工作階段相依性、連線排除逾時))。
按一下 [Enable logging] (啟用記錄功能)。
設定「Sample rate」(取樣率) 分數。您可以設定從
0.0
到1.0
的數字,其中0.0
表示不會記錄任何要求,1.0
則代表有 100% 的要求會記錄完畢。預設值為1.0
。選用:如要在記錄中加入所有選填欄位,請在「選填欄位」部分中,按一下「包含所有選填欄位」。
點選「更新」,完成編輯後端服務。
點選「更新」,完成編輯負載平衡器。
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」(編輯)。如要完全停用記錄功能,請在「記錄」部分取消勾選「啟用記錄功能」核取方塊。
如果您保持啟用記錄功能,即可設定不同的「Sample rate」(取樣率) 分數。您可以設定從
0.0
到1.0
的數字,其中0.0
表示不會記錄任何要求,1.0
則代表有 100% 的要求會記錄完畢。預設值為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」(內部應用程式負載平衡器規則) 和所需網路的名稱。
- 如果只要查看該網路其中一個地區的記錄檔,請依序選取「Internal Application Load Balancer Rule」>
NETWORK
>REGION
。
「布林」類型的記錄欄位通常只會在欄位的值為 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 錯誤設定所在的服務目錄服務名稱。 |
|
字串 | 必填 | cloudFitExperiment 欄位會保留 Cloud FIT 實驗的名稱。 |
|
字串 | 必填 | cloudFitFault 欄位會保留 Cloud FIT 故障實驗在這個要求路徑中插入的故障名稱。 |
|
ServiceExtensionInfo | 必填 | serviceExtensionInfo 欄位會儲存從負載平衡器到 Service Extensions 的 gRPC 串流相關資訊。詳情請參閱「
摘要額外資訊記錄內容」一文。 |
|
AuthzPolicyInfo | 必填 | authzPolicyInfo 欄位會儲存授權政策結果的相關資訊。這項資訊僅適用於已啟用
授權政策的內部應用程式負載平衡器。詳情請參閱「
授權政策記錄內容」。 |
|
TlsInfo | 選用 |
使用
您無法將 |
|
MtlsInfo | 選用 | mtls 欄位會保留 MtlsInfo 值,指定用戶端與內部應用程式負載平衡器之間連線的 mTLS 中繼資料。只有在負載平衡器使用前端雙向傳輸層安全標準 (mTLS) 時,這個欄位才會顯示。 |
|
字串 | 選用 | 如果後端使用的 VPC 與負載平衡器的轉送規則不同,則 backendNetworkName 欄位會指定後端的 VPC 網路。 |
|
OrcaLoadReport | 選用 |
使用
您也可以將 |
TlsInfo 欄位格式
欄位 | 欄位格式 | 欄位類型:必要或選填 | 說明 |
---|---|---|---|
通訊協定 | 字串 | 選用 | 用戶端用來與負載平衡器建立連線的 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
|
要求遭到 Google 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 個位元組,或解密後的記錄長度超過 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"
資源標籤
下表列出 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 |
enum | 結果可以是 ALLOWED 或 DENIED 。 |
authz_info.policies[].details |
字串 | 詳細資料包括:
|
authz_info.overall_result |
enum | 結果可以是 ALLOWED 或 DENIED 。 |
查看 mTLS 用戶端憑證驗證的記錄
如要查看已關閉連線的記錄錯誤,請完成下列步驟。
主控台
前往 Google Cloud 控制台的「Logs Explorer」頁面。
按一下「顯示查詢」切換按鈕,啟用查詢編輯器。
將下列內容貼到「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
, 然後使用子選單選取特定資源類型和指標:- 在「有效資源」選單中,選取「內部應用程式負載平衡器規則」。
- 如要選取指標,請使用「使用中的指標類別」和「使用中的指標」選單。
- 按一下 [套用]。
如要從顯示畫面中移除時間序列,請使用「篩選器」元素。
如要合併時間序列,請使用「Aggregation」元素上的選單。舉例來說,如要依據 VM 的所在區域顯示 CPU 使用率,請將第一個選單設為「平均值」,第二個選單設為「區域」。
將「Aggregation」(匯總) 元素的第一個選單設為「Unaggregated」(未匯總) 時,系統會顯示所有時間序列。「匯總」元素的預設設定取決於您選取的指標類型。
- 如要取得每日一個樣本的配額和其他指標,請按照下列步驟操作:
- 在「顯示」窗格中,將「小工具類型」設為「堆疊長條圖」。
- 將時間範圍設為至少一週。
定義快訊政策
主控台
您可以建立快訊政策來監控指標值,並在指標違反條件時收到通知。
-
前往 Google Cloud 控制台的 notifications「Alerting」(警告) 頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。
- 如果您尚未建立通知管道,但想收到通知,請按一下「編輯通知管道」,然後新增通知管道。新增管道後,返回「快訊」頁面。
- 在「Alerting」(快訊) 頁面中,選取「Create policy」(建立政策)。
- 如要選取指標,請展開「選取指標」選單,然後執行下列操作:
- 如要將選單限制為相關項目,請在篩選列中輸入
Internal Application Load Balancer Rule
。如果篩選選單後沒有任何結果,請停用「僅顯示活躍的資源和指標」切換按鈕。 - 在「資源類型」部分,選取「內部應用程式負載平衡器規則」。
- 選取「指標類別」和「指標」,然後選取「套用」。
- 如要將選單限制為相關項目,請在篩選列中輸入
- 點選「下一步」。
- 「設定快訊觸發條件」頁面中的設定會決定快訊的觸發時機。 選取條件類型,並視需要指定門檻。詳情請參閱建立指標閾值快訊政策。
- 點選「下一步」。
- 選用:如要新增通知至您的快訊政策,請按一下「通知管道」。在對話方塊中,從選單選取一或多個通知管道,然後按一下「確定」。
- 選用:更新「事件自動關閉期限」。這個欄位會決定 Monitoring 何時會在沒有指標資料的情況下關閉事件。
- 選用:按一下「說明文件」,然後在通知訊息中新增任何資訊。
- 按一下「快訊名稱」,然後輸入快訊政策的名稱。
- 點選「建立政策」。
定義 Monitoring 自訂資訊主頁
主控台
您可以透過內部應用程式負載平衡器指標建立自訂 Monitoring 資訊主頁:
前往 Google Cloud 控制台的「Monitoring」頁面。
依序選取「資訊主頁」>「建立資訊主頁」。
按一下 [Add Chart] (新增圖表)。
為圖表命名。
選取指標與篩選器。指標的資源類型是 [Internal HTTP/S Load Balancer] (內部 HTTP/S 負載平衡器)。
按一下 [Save] (儲存)。
指標回報頻率與保留期
負載平衡器的指標會以 1 分鐘的精細度批次匯出至 Monitoring,監控資料會保留六 (6) 週。資訊主頁會以 1H (一小時)、6H (六小時)、1D (一天)、1W (一週) 和 6W (六週) 的預設間隔時間提供資料分析。您可以手動要求以 6W 到 1 分鐘之間的任何間隔時間進行資料分析。
監控指標
系統會將下列內部應用程式負載平衡器的指標回報給 Monitoring:
指標 | FQDN | 說明 |
---|---|---|
要求數量 | 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 之間的 RTT。此外,在同一個連線上使用 |
後端延遲時間 | loadbalancing.googleapis.com/https/internal/backend_latencies |
後端延遲時間的分佈情形。後端延遲時間是指從傳送至後端的要求的最後一個位元組,到 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 名稱一文。