本文件提供您瞭解內部應用程式負載平衡器記錄和監控指標所需的相關資訊。區域內部應用程式負載平衡器和跨區域內部應用程式負載平衡器的記錄和監控指標相同。
記錄
您可以針對每個後端服務啟用記錄功能。單一內部應用程式負載平衡器的網址對應可以參照多個後端服務。視設定而定,您可能需要為多個後端服務啟用記錄功能。
記錄取樣和收集
系統會對負載平衡器後端虛擬機器 (VM) 執行個體處理的要求 (和相應回應) 進行取樣。系統會處理這些取樣的要求,產生記錄。您可以根據 logConfig.sampleRate 參數,控制要以記錄項目形式傳送的請求比例。當 logConfig.sampleRate
為 1.0
(100%) 時,系統會為所有要求產生記錄檔,並將其寫入 Cloud Logging。
此外,即使後端服務的記錄功能已停用,如果負載平衡器無法將這些要求與特定後端建立關聯,負載平衡器可能會產生失敗要求的記錄項目。
選填欄位
記錄包含必填欄位和選填欄位。「What is logged」一節列出哪些欄位為選填欄位,哪些欄位為必填欄位。系統一律會納入所有必填欄位。您可以自訂要保留的選用欄位。
如果您選取「包含所有選用欄位」,則流程記錄會納入記錄格式中的所有選用欄位。將新的選用欄位新增至記錄格式時,流程記錄會自動納入新欄位。
如果選取「排除所有選填欄位」,系統就會略過所有選填欄位。
如果您選取「自訂」,可以指定要納入的選用欄位,例如
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
則代表有 100% 的要求會記錄完畢。這個值僅在使用--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
則代表有 100% 的要求會記錄完畢。這個值僅在使用--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」(編輯)。如要完全停用記錄功能,請在「Logging」部分取消勾選「Enable logging」核取方塊。
如果您保持啟用記錄功能,即可設定不同的「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
則代表有 100% 的要求會記錄完畢。這個值僅在使用--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
。
將記錄選用模式從「自訂」更新為其他模式
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
則代表有 100% 的要求會記錄完畢。這個值僅在使用--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
。
將記錄選用模式從「自訂」更新為其他模式
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」(內部應用程式負載平衡器規則) 和所需網路的名稱。
- 如果只要查看該網路其中一個地區的記錄檔,請依序選取「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 欄位會保留專案編號,用於識別後端服務或後端值區的擁有者。 |
|
字串 | 必填 | 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 欄位格式
欄位 | 欄位格式 | 欄位類型:必要或選填 | 說明 |
---|---|---|---|
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 | 選用 | 如果用戶端在 TLS 握手期間提供憑證,則為 |
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 擴充欄位。 如果 |
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 error 欄位適用於下列負載平衡器:
- 區域性外部應用程式負載平衡器
- 跨區域內部應用程式負載平衡器
- 區域性內部應用程式負載平衡器
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
欄位支援的字串。
「proxyStatusDetails」欄位適用於下列負載平衡器:
- 區域性外部應用程式負載平衡器
- 區域性內部應用程式負載平衡器
- 跨區域內部應用程式負載平衡器
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 憑證與已知信任錨點。這會導致 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
。 - 沒有任何後端資訊。
以下範例顯示失敗的 TLS 記錄項目,其中包含 proxyStatus error
欄位:
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 資源的專案以外的專案中建立時,才能使用這個欄位。 |
授權政策要求記錄
Load Balancer 記錄項目 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 用戶端憑證驗證記錄
如要在雙向 TLS 用戶端憑證驗證期間查看已記錄的已關閉連線錯誤,請完成下列步驟。
主控台
前往 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 API 建立自訂資訊主頁、設定快訊及查詢指標。
查看 Cloud Monitoring 指標
主控台
如要使用 Metrics Explorer 查看受控資源的指標,請按照下列步驟操作:
-
前往 Google Cloud 控制台的 leaderboard「Metrics Explorer」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。
- 在 Google Cloud 控制台的工具列中,選取 Google Cloud 專案。 如要設定 App Hub,請選取 App Hub 主機專案或已啟用應用程式的資料夾管理專案。
- 在「指標」元素中,展開「選取指標」選單,在篩選列中輸入
Internal Application Load Balancer Rule
,然後使用子選單選取特定資源類型和指標:- 在「有效資源」選單中,選取「內部應用程式負載平衡器規則」。
- 如要選取指標,請使用「使用中的指標類別」和「使用中的指標」選單。
- 按一下 [套用]。
如要從顯示畫面中移除時間序列,請使用 Filter 元素。
如要合併時間序列,請使用「Aggregation」元素上的選單。舉例來說,如要根據區域顯示 VM 的 CPU 使用率,請將第一個選單設為「平均」,第二個選單設為「區域」。
當「Aggregation」元素的第一個選單設為「Unaggregated」時,系統會顯示所有時間序列。Aggregation 元素的預設設定取決於您選取的指標類型。
- 如要針對每天回報一個樣本的配額和其他指標,請執行下列操作:
- 在「顯示」窗格中,將「小工具類型」設為「堆疊長條圖」。
- 將時間範圍設為至少一週。
定義快訊政策
主控台
您可以建立快訊政策,監控指標的值,並在這些指標違反條件時通知您。
-
前往 Google Cloud 控制台的 notifications「Alerting」(警告) 頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。
- 如果您尚未建立通知管道,但想收到通知,請按一下「Edit Notification Channels」(編輯通知管道),然後新增通知管道。加入管道後,請返回「Alerting」頁面。
- 在「Alerting」頁面中,選取「Create policy」。
- 如要選取指標,請展開「選取指標」選單,然後按照下列步驟操作:
- 如要將選單限制為相關項目,請在篩選列中輸入
Internal Application Load Balancer Rule
。如果篩選選單後沒有任何結果,請停用「僅顯示活躍的資源和指標」切換按鈕。 - 在「Resource type」部分,選取「Internal Application Load Balancer Rule」。
- 選取「指標類別」和「指標」,然後選取「套用」。
- 如要將選單限制為相關項目,請在篩選列中輸入
- 點選「下一步」。
- 「Configure alert trigger」頁面中的設定會決定快訊觸發的時機。 選取條件類型,並視需要指定門檻值。詳情請參閱「建立以指標門檻為基礎的警告政策」一文。
- 點選「下一步」。
- 選用步驟:如要新增通知至快訊政策,請按一下「通知管道」。在對話方塊中,從選單中選取一或多個通知管道,然後按一下「OK」。
- 選用:更新「Incident autoclose duration」。這個欄位會決定 Monitoring 在沒有指標資料時關閉事件的時間。
- 選用步驟:按一下「說明文件」,然後輸入您希望在通知訊息中顯示的資訊。
- 按一下「快訊名稱」,然後輸入快訊政策的名稱。
- 點選「建立政策」。
定義 Monitoring 自訂資訊主頁
主控台
您可以針對各內部應用程式負載平衡器指標建立自訂 Monitoring 資訊主頁:
前往 Google Cloud 控制台的「Monitoring」頁面。
依序選取「Dashboards」>「Create Dashboard」。
按一下 [Add Chart] (新增圖表)。
為圖表命名。
選取指標與篩選器。指標的資源類型是 [Internal HTTP/S Load Balancer] (內部 HTTP/S 負載平衡器)。
按一下 [Save] (儲存)。
指標回報頻率與保留期
負載平衡器的指標會以 1 分鐘的精細度批次匯出至 Monitoring,監控資料會保留六 (6) 週。資訊主頁會以 1H (一小時)、6H (六小時)、1D (一天)、1W (一週) 和 6W (六週) 的預設間隔時間提供資料分析。您可以手動要求以 6W 到 1 分鐘之間的任何間隔時間進行資料分析。
監控指標
系統會將下列內部應用程式負載平衡器的指標回報給監控:
指標 | 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 傳送至後端的要求所需時間、後端處理要求所需時間,以及將回應傳回 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 名稱」一文。