關於虛擬私有雲流量記錄檔記錄
本頁面說明虛擬私有雲流量記錄檔的記錄格式,包括可用的基礎和中繼資料欄位。本文也會說明如何使用記錄篩選功能,只產生符合特定條件的記錄。
記錄格式
記錄包含做為每個記錄核心欄位的幾個基礎欄位,以及用來新增其他資訊的中繼資料欄位。您可能會省略中繼資料欄位,以節省儲存費用。
某些記錄欄位採用多欄位格式,也就是指定欄位會包含多項資料。舉例來說,connection 欄位採用的格式是 IpConnection,也就是一個欄位同時包含來源和目的地 IP 位址及通訊埠,外加通訊協定等資料。記錄格式表下方說明這些多欄位格式的欄位。
中繼資料欄位的值並非根據資料平面路徑計算,而是近似值,可能遺漏或不正確。與中繼資料欄位不同,基本欄位的值直接取自封包標頭。
| 欄位 | 欄位格式 | 欄位類型:基本或選填中繼資料 |
|---|---|---|
| 連結 |
IpConnection
描述流程的 5 元組。 |
基本 |
| reporter |
字串
回報流量的一端:
|
基本 |
| round_trip_time |
延遲時間
在匯總間隔期間測得的 RTT,以毫秒為單位,精確度可達毫秒以下。這個欄位會填入 TCP (適用於 VM 和無伺服器端點) 和 Falcon 流量。
disposition=DROPPED) 不會填入這項資料。
|
基本 |
| rtt_msec |
int64
在匯總間隔期間測得的封包往返時間 (RTT),以毫秒為單位。這個欄位會填入下列資訊:
測得的 RTT 是指從傳送 SEQ 到收到相應 ACK 之間經過的時間。 |
基本 |
| bytes_sent |
int64
從來源傳送至目的地的預估使用者酬載位元組數。1 如果封包沒有使用者酬載,值為零。2 已捨棄的流量 ( disposition=DROPPED) 不會填入這個值。
|
基本 |
| packets_sent |
int64
從來源傳送至目的地的預估封包數。1不會為遭捨棄的流量 ( disposition=DROPPED) 填入值。
|
基本 |
| start_time |
字串
採用 RFC 3339 日期字串格式的時間戳記,標記了在匯總時間間隔內發現第一個封包的時間點。 |
基本 |
| end_time |
字串
採用 RFC 3339 日期字串格式的時間戳記,標記了在匯總時間間隔內發現最後一個封包的時間點。 |
基本 |
| disposition |
字串
僅在有封包捨棄記錄時,才會填入固定的「DROPPED」值。這個欄位設為 DROPPED。 |
基本 |
| drop_reason |
字串
只會針對具有 disposition=DROPPED 的記錄填入。
詳情請參閱「封包捨棄註解」和「封包捨棄原因」。 |
基本 |
| bytes_dropped |
int64
從來源到目的地之間,預估使用者酬載位元組數的丟失量。只有在記錄有 disposition=DROPPED 時,才會填入字串, |
基本 |
| packets_dropped |
int64
預計從來源傳送至目的地的封包數。 只有在記錄含有 disposition=DROPPED 時,系統才會填入字串, |
基本 |
| throughput_inclusion |
字串
只會針對具有 disposition=DROPPED 的記錄填入。
指出是否在同一位回報者回報的流程中,將捨棄的流量計入 bytes_sent 和 packets_sent 欄位 (INCLUDED),或從中排除 (EXCLUDED)。 |
基本 |
| 來源和目的地中繼資料欄位 | ||
| src_gateway |
GatewayDetails
如果流量來源是透過閘道 (例如 Cloud Interconnect 的 VLAN 連結或 Cloud VPN 通道) 連線至 Google Cloud 的地端部署或其他雲端端點,且符合下列任一條件,這個欄位就會填入閘道詳細資料:
|
中繼資料 |
| dest_gateway |
GatewayDetails
如果流量目的地是透過閘道 Google Cloud (例如 Cloud Interconnect 的 VLAN 連結或 Cloud VPN 通道) 連線的地端部署或其他雲端端點,且符合下列任一條件,這個欄位就會填入閘道詳細資料:
|
中繼資料 |
| src_gke_details |
GkeDetails
如果流程的來源是 Google Kubernetes Engine (GKE) 端點, 這個欄位會填入 GKE 端點詳細資料。 |
中繼資料 |
| dest_gke_details |
GkeDetails
如果流量目的地是 GKE 端點,這個欄位會填入 GKE 端點詳細資料。 |
中繼資料 |
| src_google_service |
GoogleServiceDetails
如果流量來源為 Google 服務,這個欄位會填入服務詳細資料。 |
中繼資料 |
| dest_google_service |
GoogleServiceDetails
如果流量目的地為 Google 服務,這個欄位會填入服務詳細資料。 |
中繼資料 |
| src_instance |
InstanceDetails
如果流量來源是位於虛擬私有雲網路中的 VM,且符合下列任一條件,這個欄位就會填入 VM 執行個體詳細資料:
|
中繼資料 |
| dest_instance |
InstanceDetails
如果流量目的地是位於虛擬私有雲網路中的 VM,且符合下列任一條件,這個欄位就會填入 VM 執行個體詳細資料。
|
中繼資料 |
| src_location |
GeographicDetails
如果流程來源是虛擬私有雲網路外部的公開 IP 位址,這個欄位會填入可用的地點中繼資料。 |
中繼資料 |
| dest_location |
GeographicDetails
如果流程目的地是虛擬私有雲網路外部的公開 IP 位址,這個欄位會填入可用的地點中繼資料。 |
中繼資料 |
| src_serverless_details |
ServerlessDetails
如果流程來源是無伺服器端點,例如設定直連虛擬私有雲輸出的 Cloud Run 資源,這個欄位會填入無伺服器中繼資料。 |
中繼資料 |
| dest_serverless_details |
ServerlessDetails
如果流量目的地是無伺服器端點,例如設定直連虛擬私有雲輸出的 Cloud Run 資源,這個欄位就會填入無伺服器中繼資料。 |
中繼資料 |
| src_vpc |
VpcDetails
如果流量來源是位於虛擬私有雲網路中的 VM 或無伺服器端點,且符合下列任一條件,這個欄位會填入虛擬私有雲網路的詳細資料:
|
中繼資料 |
| dest_vpc |
VpcDetails
如果流量目的地是位於虛擬私有雲網路中的 VM 或無伺服器端點,且符合下列任一條件,這個欄位會填入虛擬私有雲網路的詳細資料:
|
中繼資料 |
| 其他中繼資料欄位 | ||
| internet_routing_details |
InternetRoutingDetails
如果流量介於 Google Cloud 和網際網路之間, 這個欄位會填入轉送詳細資料。僅適用於出口流量。 |
中繼資料 |
| load_balancing |
LoadBalancingDetails
如果流量通過下列其中一種設定的負載平衡器,這個欄位就會填入 Cloud Load Balancing 詳細資料:
|
中繼資料 |
| network_service |
NetworkServiceDetails
如果已設定區分服務代碼點 (DSCP) 標頭, 這個欄位會填入網路服務詳細資料。 |
中繼資料 |
| psc |
PrivateServiceConnectDetails
如果流量與 Private Service Connect 連線 (包括透過 Network Connectivity Center 傳播的連線) 相關聯,且符合下列任一條件,這個欄位就會填入 Private Service Connect 詳細資料:
|
中繼資料 |
| rdma_traffic_type |
字串
RDMA 流量類型。適用於 VM 之間的 GPU 對 GPU 流量。 可以是 GPUDirect-TCPXO、Falcon 或 RoCE。
|
中繼資料 |
- 如果來源 VM 是回報者,回報的位元組值是傳送的使用者酬載位元組和封包標頭位元組的總和。即使封包未包含使用者酬載,這個值一律會大於零。
- 如果目的地 VM 是回報者,回報的位元組值就是使用者酬載位元組,這些位元組會收到並轉送至應用程式層。如果封包沒有使用者酬載,位元組值為零。
GatewayDetails 欄位格式
| 欄位 | 類型 | 說明 |
|---|---|---|
| project_id | 字串 | Google Cloud 閘道的專案 ID |
| 位置 | 字串 | 閘道區域 |
| 名稱 | 字串 | 閘道名稱 |
| 類型 | 字串 |
閘道類型。可以是 INTERCONNECT_ATTACHMENT 或 VPN_TUNNEL。 |
| 虛擬私人雲端 | VpcDetails | 閘道的虛擬私有雲網路詳細資料 |
| interconnect_name | 字串 |
如果閘道類型為 INTERCONNECT_ATTACHMENT,這個欄位會填入設定 VLAN 連結的 Cloud Interconnect 連線名稱。 |
| interconnect_project_number | int64 |
如果閘道類型為 INTERCONNECT_ATTACHMENT,這個欄位會填入 VLAN 連結設定所在的 Cloud Interconnect 連線 Google Cloud 專案編號。 |
GeographicDetails 欄位格式
| 欄位 | 類型 | 說明 |
|---|---|---|
| asn | int32 | 這個端點所屬外部網路的 ASN |
| 城市 | 字串 | 外部端點所在的城市 |
| continent | 字串 | 外部端點所在的洲別 |
| country | 字串 | 外部端點的國家/地區,以 ISO 3166-1 Alpha-3 國家/地區代碼表示 |
| 區域 | 字串 | 外部端點的區域 |
GkeDetails 欄位格式
| 欄位 | 類型 | 說明 |
|---|---|---|
| 叢集 | ClusterDetails | GKE 叢集中繼資料 |
| Pod | PodDetails | GKE Pod 中繼資料,會在流量的來源或目的地為 Pod 時填入 |
| 服務 | ServiceDetails |
GKE 服務中繼資料,僅在服務端點中填入。記錄最多可包含兩項服務。如果相關服務超過兩項,這個欄位會顯示單一服務,並附上特殊的 MANY_SERVICES 標記。
|
ClusterDetails 欄位格式
| 欄位 | 類型 | 說明 |
|---|---|---|
| cluster_location | 字串 | 叢集位置。視叢集是區域性還是可用區而定,這可以是可用區或區域。 |
| cluster_name | 字串 | GKE 叢集名稱。 |
PodDetails 欄位格式
| 欄位 | 類型 | 說明 |
|---|---|---|
| pod_name | 字串 | Pod 名稱 |
| pod_namespace | 字串 | Pod 的命名空間 |
| 工作負載 | WorkloadDetails | 控制 Pod 的頂層工作負載資源相關中繼資料 |
WorkloadDetails 欄位格式
| 欄位 | 類型 | 說明 |
|---|---|---|
| workload_name | 字串 | 頂層工作負載控制器的名稱 |
| workload_type | 字串 |
頂層工作負載控制器類型。可能的值為 DEPLOYMENT、REPLICA_SET、STATEFUL_SET、DAEMON_SET、JOB、CRON_JOB 或 REPLICATION_CONTROLLER。 |
ServiceDetails 欄位格式
| 欄位 | 類型 | 說明 |
|---|---|---|
| service_name | 字串 |
服務名稱。如果相關服務超過兩項,則欄位會設為特殊 MANY_SERVICES 標記。
|
| service_namespace | 字串 | 服務的命名空間 |
範例:
如果服務有兩項,則「服務」欄位會如下所示:
service: [
0: {
service_name: "my-lb-service"
service_namespace: "default"
}
1: {
service_name: "my-lb-service2"
service_namespace: "default"
}
]
如果服務超過兩項,「服務」欄位會如下所示:
service: [
0: {
service_name: "MANY_SERVICES"
}
]
GoogleServiceDetails 欄位格式
| 欄位 | 類型 | 說明 |
|---|---|---|
| 類型 | 字串 | 服務類型,
|
| service_name | 字串 | 服務名稱。例如: 限制:
|
| 連線能力 | 字串 | 存取方法。如果是
如果是
|
| private_domain | 字串 | 私有網域或 Private Service Connect API 套件。private_domain 欄位可以是下列任一值:
|
InstanceDetails 欄位格式
| 欄位 | 類型 | 說明 |
|---|---|---|
| project_id | 字串 | Google Cloud 包含 VM 資源的專案 ID |
| 區域 | 字串 | VM 所在區域 |
| vm_name | 字串 | VM 的執行個體名稱 |
| 儲存區 | 字串 | VM 的可用區 |
| managed_instance_group | InstanceGroupDetails | 如果 VM 屬於代管執行個體群組,這個欄位會填入執行個體群組詳細資料。 |
InstanceGroupDetails 欄位格式
| 欄位 | 類型 | 說明 |
|---|---|---|
| 名稱 | 字串 | 執行個體群組名稱 |
| 區域 | 字串 | 如果執行個體群組是地區執行個體群組,這個欄位會填入執行個體群組的地區。 |
| 儲存區 | 字串 | 如果執行個體群組是區域執行個體群組,這個欄位會填入執行個體群組的區域。 |
InternetRoutingDetails 欄位格式
| 欄位 | 類型 | 說明 |
|---|---|---|
| egress_as_path | AsPath | 相關 AS 路徑清單。如果流程有多個可用的 AS 路徑,這個欄位可能包含多個 AS 路徑。 |
AsPath 欄位格式
| 欄位 | 類型 | 說明 |
|---|---|---|
| as_details | AsDetails | AS 路徑中所有系統的 AS 詳細資料清單。清單開頭是 Google Cloud網路外部的第一個 AS,結尾則是遠端 IP 位址所屬的 AS。 |
AsDetails 欄位格式
| 欄位 | 類型 | 說明 |
|---|---|---|
| asn | uint32 | AS 的自治系統編號 (ASN) |
IpConnection 欄位格式
| 欄位 | 類型 | 說明 |
|---|---|---|
| src_ip | 字串 | 來源 IP 位址。所有流程都會填入這項資訊。 |
| dest_ip | 字串 | 目標 IP 位址。所有流程都會填入這項資訊。 |
| src_port | int32 | 來源通訊埠:
|
| dest_port | int32 | 目的地通訊埠:
|
| 通訊協定 | int32 | IANA 通訊協定號碼:
|
延遲欄位格式
| 欄位 | 類型 | 說明 |
|---|---|---|
| median_msec | 雙精度值 | 在彙整間隔期間測得的中位數延遲時間 (毫秒)。 |
LoadBalancingDetails 欄位格式
| 欄位 | 類型 | 說明 |
|---|---|---|
| forwarding_rule_project_id | 字串 | 轉送規則的Google Cloud 專案 ID |
| reporter | 字串 | Cloud Load Balancing 記者。可以是 CLIENT 或 BACKEND。
|
| 類型 | 字串 | 負載平衡器類型。可以是 APPLICATION_LOAD_BALANCER、PROXY_NETWORK_LOAD_BALANCER、PASSTHROUGH_NETWORK_LOAD_BALANCER 或 PROTOCOL_FORWARDING。 |
| 配置 | 字串 | 負載平衡器架構。可以是 EXTERNAL_MANAGED、INTERNAL_MANAGED、EXTERNAL、INTERNAL 或 INTERNAL_SELF_MANAGED。 |
| url_map_name | 字串 | 網址對應名稱。如果負載平衡器類型為 APPLICATION_LOAD_BALANCER,系統就會填入這個欄位。 |
| forwarding_rule_name | 字串 | 轉送規則名稱 |
| backend_service_name | 字串 | 後端服務的名稱。如果回報端是 BACKEND,且負載平衡器類型為 PASSTHROUGH_NETWORK_LOAD_BALANCER,系統就會填入這個欄位。如果後端群組類型為 TARGET_POOL,系統就不會填入這個欄位。 |
| backend_service_project_id | 字串 | 後端服務的專案 ID。
如果回報端為 BACKEND,且負載平衡器類型為 PASSTHROUGH_NETWORK_LOAD_BALANCER,系統就會填入這個欄位。如果後端群組類型為 TARGET_POOL,系統就不會填入這個欄位。 |
| backend_group_name | 字串 | 後端群組的名稱。如果回報端為 BACKEND,且負載平衡器類型為 PASSTHROUGH_NETWORK_LOAD_BALANCER,系統就會填入這個欄位。 |
| backend_group_type | 字串 | 後端群組的類型。可以是 INSTANCE_GROUP、NETWORK_ENDPOINT_GROUP 或 TARGET_POOL。如果回報端為 BACKEND,且負載平衡器類型為 PASSTHROUGH_NETWORK_LOAD_BALANCER,則會填入這個欄位。 |
| backend_group_location | 字串 | 後端群組的位置。視後端群組的範圍是可用區或區域而定,可以是可用區或區域。如果回報端為 BACKEND,且負載平衡器類型為 PASSTHROUGH_NETWORK_LOAD_BALANCER,系統就會填入這個欄位。如果後端群組類型為 TARGET_POOL,系統就不會填入這個欄位。 |
| 虛擬私人雲端 | VpcDetails | 負載平衡器的虛擬私有雲網路詳細資料 |
NetworkServiceDetails 欄位格式
| 欄位 | 類型 | 說明 |
|---|---|---|
| dscp | int32 | 如果封包標頭有 Differentiated Services 欄位,這個欄位會填入 DSCP 值。 |
封包捨棄原因
下表說明 SRC 或 SRC_GATEWAY 回報時,drop_reason 欄位支援的值。
| 捨棄原因 | 說明 |
|---|---|
FIREWALL_DENY |
由於系統評估了傳出防火牆規則,且其動作為 建議:如要允許這類流量,請調整防火牆規則。 |
NO_MATCHING_ROUTE |
由於沒有與目的地相符的路由,傳出流量遭到捨棄。 建議:在 Google Cloud 控制台使用「有效路徑」部分,檢查虛擬私有雲網路中的路徑。您也可以建立及執行Connectivity Tests。 |
QUEUE_OVERFLOW |
主機的封包處理軟體超出 CPU 容量,因此傳出流量遭到捨棄。 建議:如果持續發生封包遺失情形,請考慮使用頻寬較高 (Tier_1) 的 VM,或將流量分散到更多 VM。 |
SPOOFED_SOURCE |
由於封包來源與 VM 網路介面沒有關聯,且 IP 轉送已關閉,因此傳出流量遭到捨棄。 建議:如要從 VM 網路介面傳送任意來源的封包,到虛擬私有雲網路內可路由傳送的目的地,您必須為 VM 啟用 IP 轉送。 |
TOO_MANY_CONNECTIONS |
主機的封包處理軟體無法配合流量速率,因此捨棄了輸出流量。 建議:考慮使用專為大量連線設計的機器系列,或將工作負載分散到更多 VM。 |
下表說明 DEST 或 DEST_GATEWAY 回報時,drop_reason 欄位支援的值。
| 捨棄原因 | 說明 |
|---|---|
EARLY_DROPS_FULL_FAIR_QUEUE |
主機的封包處理軟體強制執行資源公平性,因此捨棄了連入流量。這種情況通常只會影響第 1 代機器系列。 建議做法:如果持續發生掉線問題,建議遷移至效能較佳的新型機器系列。 |
FIREWALL_DENY |
由於系統評估了輸入防火牆規則,且其動作為 建議:如要允許這類流量,請調整防火牆規則。 |
INVALID_L4_CHECKSUM_INTERNET |
系統偵測到總和檢查碼不符,因此捨棄了傳入流量。封包是從虛擬私有雲網路外部的來源,傳送至與 VM 報告器相關聯的目的地外部 IP 位址。詳情請參閱「連線至虛擬私有雲網路外部的目的地」。 建議:如果持續發生封包遺失問題,請調查來源或網路路徑的健康狀態。 |
INVALID_L4_CHECKSUM_INTERNAL |
系統偵測到總和檢查碼不符,因此捨棄了傳入流量。封包在虛擬私有雲網路中,會轉送至與 VM 報告器相關聯的目的地 IP 位址。詳情請參閱「Ingress to destinations routable within a 虛擬私有雲網路」。 最佳化建議:如果持續發生掉格情形,請調查來源或網路路徑的健康狀態。 |
PSC_NAT_OUT_OF_CONNECTIONS |
由於 Private Service Connect 端點已達到消費者可同時連線的數量上限,因此系統捨棄了連入流量。 建議:請消費者降低連至這個 Private Service Connect 端點的新連線速率,或請消費者使用更多用戶端 VM,將連線分配至這個 Private Service Connect 端點。 |
PSC_NAT_OUT_OF_PORTS |
來自 Private Service Connect 使用者的連入流量遭到捨棄,因為 Private Service Connect NAT 通訊埠已用盡。 建議:請檢查 NAT 子網路大小。 |
QUEUE_OVERFLOW |
主機的封包處理軟體超出 CPU 容量,因此捨棄了連入流量。 建議:如果持續發生封包遺失情形,請考慮使用頻寬較高 (Tier_1) 的 VM,或將流量分散到更多 VM。 |
TOO_MANY_CONNECTIONS |
由於主機的封包處理軟體無法配合流量速率,因此系統捨棄了連入流量。 建議:如果高流量率是因 VM 層級的連線並行或周轉率過高所致,請考慮降低 VM 的新連線速率。 |
PrivateServiceConnectDetails 欄位格式
| 欄位 | 類型 | 說明 |
|---|---|---|
| reporter | 字串 | Private Service Connect 記者。
可以是 CONSUMER 或 PRODUCER。 |
| psc_endpoint | PrivateServiceConnectEndpointDetails |
端點詳細資料。如果檢舉者是 CONSUMER,系統就會填入這項資訊。
|
| psc_attachment | PrivateServiceConnectAttachmentDetails | 服務連結詳細資料。如果流量包含 Private Service Connect 供應商,這個欄位就會填入資料。 |
PrivateServiceConnectEndpointDetails 欄位格式
| 欄位 | 類型 | 說明 |
|---|---|---|
| project_id | 字串 | Google Cloud Private Service Connect 端點的專案 ID |
| 區域 | 字串 | 端點所在的區域。如果目標服務類型為 GLOBAL_GOOGLE_APIS,則不會填入這個值。 |
| psc_connection_id | 字串 | Private Service Connect 連線 ID |
| target_service_type | 字串 | 目標服務類型。可以是 GLOBAL_GOOGLE_APIS 或 PUBLISHED_SERVICE。 |
| 虛擬私人雲端 | VpcDetails | Private Service Connect 端點的虛擬私有雲網路詳細資料 |
PrivateServiceConnectAttachmentDetails 欄位格式
| 欄位 | 類型 | 說明 |
|---|---|---|
| project_id | 字串 | 服務連結的專案 IDGoogle Cloud |
| 區域 | 字串 | 服務連結的區域 |
| 虛擬私人雲端 | VpcDetails | 服務附件的虛擬私有雲網路詳細資料 |
ServerlessDetails 欄位格式
| 欄位 | 類型 | 說明 |
|---|---|---|
| project_id | 字串 | Cloud Run 資源所屬 Google Cloud 專案的 ID。在 Shared VPC 設定中,專案 ID 通常是服務專案的 ID。 |
| 區域 | 字串 | Cloud Run 資源的區域 |
可以是下列其中一項:
|
可以是下列其中一項: |
Cloud Run 資源的名稱 |
CloudRunServiceDetails 欄位格式
| 欄位 | 類型 | 說明 |
|---|---|---|
| service_name | 字串 | Cloud Run 服務名稱 |
CloudRunJobDetails 欄位格式
| 欄位 | 類型 | 說明 |
|---|---|---|
| job_name | 字串 | Cloud Run 工作名稱 |
CloudRunWorkerPoolDetails 欄位格式
| 欄位 | 類型 | 說明 |
|---|---|---|
| worker_pool_name | 字串 | Cloud Run worker 集區的名稱 |
VpcDetails 欄位格式
| 欄位 | 類型 | 說明 |
|---|---|---|
| project_id | 字串 | 含有虛擬私有雲的 Google Cloud 專案 ID。 在 Shared VPC 設定中,專案 ID 是主專案的 ID。 |
| subnetwork_name | 字串 | 子網路名稱 (如適用) |
| subnetwork_region | 字串 | 子網路的區域 (如適用) |
| vpc_name | 字串 | 網路名稱 |
中繼資料註解
記錄包含基礎欄位和中繼資料欄位。如需中繼資料類型和基礎類型欄位的清單,請參閱「記錄格式」一節。所有基本欄位一律會包含,您可以自訂要保留哪些中繼資料欄位。
如果選取所有中繼資料,流量記錄檔會包含虛擬私有雲流量記錄格式中的所有中繼資料欄位。記錄格式新增中繼資料欄位時,流程記錄會自動納入這些新欄位。
如果選取「無中繼資料」,系統會省略所有中繼資料欄位。
如果選取自訂中繼資料,可以依上層欄位 (例如
src_vpc) 或完整名稱 (例如src_vpc.project_id),指定要納入的中繼資料欄位。記錄格式新增中繼資料欄位時,除非這些欄位位於您指定要納入的父項欄位中,否則不會納入流程記錄。
如果您使用父項欄位指定自訂中繼資料,當該父項欄位的記錄格式新增中繼資料欄位時,流量記錄會自動納入這些新欄位。
如果您使用欄位的完整名稱指定自訂中繼資料,新增至父項欄位的中繼資料欄位會從流程記錄中排除。
如要瞭解如何自訂中繼資料欄位,請參閱「啟用虛擬私有雲流量記錄」或「更新虛擬私有雲流量記錄設定」。
跨專案註解
如果在組織層級啟用虛擬私有雲流量記錄,系統會使用跨專案註解,註解流經 Shared VPC、虛擬私有雲網路對等互連和 Network Connectivity Center 的流量。跨專案註解預設為啟用。您可以視需要停用這些註解。
- 如果啟用跨專案註解,不同專案中資源之間的流量記錄檔記錄會包含流量兩端的資訊。
- 如果停用跨專案註解,記錄檔只會包含流程回報者的相關資訊。
如果在專案層級啟用虛擬私有雲流量記錄,系統不會為不同專案中資源之間的流量加上跨專案註解。
GKE 註解
如果流程的端點位於 GKE 叢集中,可以加上 GKE 中繼資料註解,其中可能包含端點的叢集、Pod 和服務詳細資料。
GKE 服務註解
傳送至 ClusterIP、NodePort 或 LoadBalancer 的流量可以接收服務註解。如果傳送至 NodePort 或 LoadBalancer,流程會在連線的兩個躍點上收到 Service 註解。
直接傳送至 Pod 服務通訊埠的流量,會在目的地端點上加上服務註解。
如果傳送至 Pod 服務通訊埠的流量,是由 Pod 在同一個服務通訊埠上支援多個服務,系統會在目的地端點上註解多個服務。最多只能有兩項服務。如果超過這個數量,端點會以特殊 MANY_SERVICES 標記註解。
網際網路流量的 Pod 註解
Pod 與網際網路之間的流量預設不會收到 Pod 註解。虛擬私有雲流量記錄無法新增 Pod 註解,因為對於傳送至網際網路的封包,偽裝代理程式會在虛擬私有雲流量記錄看到封包前,將 Pod IP 位址轉換為節點 IP 位址。
由於偽裝作業,只有在目的地位於預設非偽裝目的地或自訂 nonMasqueradeCIDRs 清單中時,Pod 註解才會顯示。如果您在自訂 nonMasqueradeCIDRs 清單中加入網際網路目的地,則必須提供方法,讓內部 Pod IP 位址在遞送到網際網路前完成轉換。無論是私人或非私人叢集,您都可以使用 Cloud NAT。詳情請參閱「GKE 互動」。
捨棄流量的記錄
虛擬私有雲流量記錄會為遭捨棄的流量產生記錄。系統會分別產生遭捨棄流量的記錄和標準記錄。封包捨棄會依資料流和捨棄原因匯總。 在匯總間隔內,系統會將具有相同原因的封包捨棄項目,合併為單一記錄檔;並為每個不重複的捨棄原因產生個別記錄檔。
輸出捨棄是由來源 (SRC 或 SRC_GATEWAY) 回報,輸入捨棄則是由目的地 (DEST 或 DEST_GATEWAY) 回報。如果來源和目的地都已啟用虛擬私有雲流量記錄,則適用下列行為:
- 輸出捨棄。如果來源端發生捨棄事件,系統會為來源產生標準記錄項目和包含捨棄原因的記錄項目。由於流量從未傳送至目的地,因此系統不會為目的地產生記錄。
- 輸入捨棄。如果目的地端發生捨棄情形,系統會為來源和目的地產生記錄。對於來源,虛擬私有雲流量記錄會產生標準記錄檔記錄;對於目的地,則只會產生包含捨棄原因的記錄檔記錄。
遭捨棄流量的記錄包含 disposition、drop_reason、bytes_dropped、packets_dropped 和 throughput_inclusion 欄位。
如需追蹤的封包捨棄原因清單,請參閱「封包捨棄原因」。
記錄篩選
啟用虛擬私有雲流量記錄後,您可以根據基本和中繼資料欄位設定篩選條件,只保留符合篩選條件的記錄。其他記錄檔會在寫入 Logging 前捨棄。
您可以根據「記錄格式」中列出的任何欄位子集進行篩選,但下列欄位除外:
rtt_msecbytes_sentpackets_sentstart_timeend_time
虛擬私有雲流量記錄檔篩選器使用 CEL,這是一種內嵌的運算式語言,適用於以屬性為基礎的邏輯運算式。虛擬私有雲流量記錄的篩選運算式長度上限為 2,048 個半形字元。詳情請參閱「支援的 CEL 邏輯運算子」。
如要進一步瞭解 CEL,請參閱 CEL 簡介和語言定義。生成篩選器功能僅支援部分 CEL 語法。
如要建立使用記錄篩選功能的虛擬私有雲流量記錄設定,請參閱「啟用虛擬私有雲流量記錄」。如要為現有的虛擬私有雲流量記錄設定篩選記錄,請參閱「更新虛擬私有雲流量記錄設定」。如需記錄篩選器範例,請參閱「記錄篩選器範例」。
支援的 CEL 邏輯運算子
| 運算式 | 支援的類型 | 說明 |
|---|---|---|
| true/false | 布林值 | 布林常數 |
x == y x != y |
布林值、整數、字串 | 比較運算子 範例:connection.protocol == 6 |
x && y x || y |
布林值 | 布林邏輯運算子 範例:connection.protocol == 6 && src_instance.vm_name == "vm_1" |
| !x | 布林值 | 否定 |
| 1、2.0、0... | 整數 | 常數數字常值 |
| x + y | 字串 | 字串串連 |
| "foo"、'foo' 等 | 字串 | 常數字串常值 |
| x.lower() | 字串 | 傳回字串的小寫值 |
| x.upper() | 字串 | 傳回字串的大寫值 |
| x.contains(y) | 字串 | 如果字串包含指定的子字串,則傳回 true |
| x.startsWith(y) | 字串 | 如果字串開頭為指定子字串,則傳回 true |
| x.endsWith(y) | 字串 | 如果字串結尾為指定子字串,則傳回 true |
| inIpRange(X, Y) | 字串 | 如果 X 是 IP,且 Y 是包含 X 的 IP 範圍,則傳回 true 例如:inIpRange("1.2.3.1", "1.2.3.0/24") |
| x.containsFieldValue(y) |
x:清單 y:map(string, string) |
如果清單包含的物件欄位與指定的鍵/值組合相符,則傳回 true 範例:dest_gke_details.service.containsFieldValue({'service_name': 'service1', 'service_namespace': 'namespace1'}) |
| has(x) | string | 如果欄位存在,則傳回 true。 |
App Hub 標籤
對於 Google Cloud 註冊為 App Hub 工作負載或服務的資源,記錄檔會包含 應用程式專屬標籤。 虛擬私有雲流量記錄會為與下列資源相關聯的流量加上這些標籤:
- Compute Engine 代管執行個體群組
- GKE Pod (
CRON_JOB、DAEMON_SET、DEPLOYMENT和STATEFUL_SET工作負載類型) - 設定直連虛擬私有雲輸出流量的 Cloud Run 服務和作業
- 轉送規則
每個記錄最多可附加一個來源資源和一個目的地資源的 App Hub 標籤 (如適用)。對於轉送規則,CLIENT 和 BACKEND 欄位會決定轉送規則是來源還是目的地資源。
應用程式中樞標籤與虛擬私有雲流量記錄中繼資料註解不同;虛擬私有雲流量記錄中繼資料和記錄篩選設定不適用於這些標籤。