存取流量記錄
本頁面說明如何使用 Cloud Logging 存取流程記錄。
在記錄檔探索工具中存取流程記錄檔
虛擬私有雲流量記錄會將記錄寫入記錄回報器的 Google Cloud 專案。您可以在 Logs Explorer 中查看流程記錄檔。虛擬私有雲流量記錄會使用下列記錄收集記錄項目:
compute.googleapis.com/vpc_flows
記錄會收集子網路的記錄項目。如果您使用 Compute Engine API 啟用虛擬私有雲流量記錄,請查看這份記錄。- 如要查看所有其他虛擬私有雲流量記錄設定,請查看
networkmanagement.googleapis.com/vpc_flows
記錄。這份記錄會收集虛擬私有雲 (VPC) 網路 (預先發布)、子網路 (預先發布)、Cloud Interconnect 的 VLAN 連結,以及 Cloud VPN 通道的記錄項目。
設定身分與存取權管理
如要設定記錄的存取權控管機制,請參閱 Logging 存取權控管指南。
使用資源篩選器查看流程記錄
如要使用資源篩選器查看 Google Cloud 專案中的資料流記錄,請參閱下列章節。您也可以使用記錄檔探索工具查詢查看這些記錄,如「使用查詢篩選流程記錄」一文所述。
查看所有子網路的流程記錄 (compute.googleapis.com/vpc_flows
)
前往 Google Cloud 控制台的「Logs Explorer」頁面。
按一下「所有資源」。
在「Select resource」(選取資源) 清單中,按一下「Subnetwork」(子網路),然後點選「Apply」(套用)。
按一下「所有記錄名稱」。
在「Select log names」(選取記錄名稱) 清單中,找出「Compute Engine」,然後按一下「vpc_flows」和「Apply」。
查看特定子網路的流程記錄 (compute.googleapis.com/vpc_flows
)
前往 Google Cloud 控制台的「Logs Explorer」頁面。
按一下「所有資源」。
在「選取資源」清單中,按一下「子網路」。
在「子網路 ID」清單中選取子網路,然後按一下「套用」。
按一下「所有記錄名稱」。
在「Select log names」(選取記錄名稱) 清單中,找出「Compute Engine」,按一下「vpc_flows」,然後點選「Apply」。
查看所有資源的流程記錄 (networkmanagement.googleapis.com/vpc_flows
)
前往 Google Cloud 控制台的「Logs Explorer」頁面。
按一下「所有資源」。
在「選取資源」清單中,按一下「虛擬私有雲流量記錄設定」,然後點選「套用」。
查看特定設定 (networkmanagement.googleapis.com/vpc_flows
) 的流程記錄
前往 Google Cloud 控制台的「Logs Explorer」頁面。
按一下「所有資源」。
在「選取資源」清單中,按一下「虛擬私有雲流量記錄設定」,然後選取要查看的虛擬私有雲流量記錄設定。
按一下 [套用]。
使用查詢篩選流量記錄
前往 Google Cloud 控制台的「Logs Explorer」頁面。
如果您在「查詢」窗格中找不到查詢編輯器欄位,請按一下「顯示查詢」切換鈕。
在查詢編輯器欄位中輸入查詢:
如果您使用 Compute Engine API 為子網路啟用虛擬私有雲流量記錄,則查詢必須指定
compute.googleapis.com
,才能查看流量記錄。舉例來說,請輸入以下查詢,將PROJECT_ID
替換為您的 Google Cloud 專案 ID,並將SUBNET_NAME
替換為子網路:resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" resource.labels.subnetwork_name="SUBNET_NAME"
對於所有其他查詢,查詢必須指定
networkmanagement.googleapis.com
。舉例來說,如要查看特定來源 Cloud VPN 通道的流量記錄,請輸入以下查詢:resource.type="vpc_flow_logs_config" logName="projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows" jsonPayload.reporter="src_gateway" labels.target_resource_name="projects/PROJECT_ID/regions/REGION/vpnTunnels/NAME"
更改下列內容:
PROJECT_ID
: Google Cloud 專案 IDREGION
:Cloud VPN 通道的地區NAME
:Cloud VPN 通道的名稱
如要查看更多可用於查看流量記錄檔的查詢範例,請參閱「虛擬私有雲流量記錄檔的記錄檔探索工具查詢範例」。
點選「執行查詢」
針對虛擬私有雲流程記錄檔的記錄檔探索工具查詢範例
下表提供可用來查看 Google Cloud 專案中流量記錄檔的 Logs Explorer 查詢範例。
「networkmanagement.googleapis.com/vpc_flows 的查詢」一節中的範例假設每項資源都會由單一虛擬私有雲流量記錄設定記錄。如果您為每項資源使用多個虛擬私有雲流量記錄設定,請指定要查詢的設定,以便從查詢結果中排除重複的記錄。您也可以在查詢中指定多個設定。
您要查看的記錄 | 查詢 |
---|---|
所有流程記錄 | resource.type=("gce_subnetwork" OR "vpc_flow_logs_config") logName=("projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" OR "projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows") |
compute.googleapis.com/vpc_flows 記錄的查詢 |
|
所有子網路的記錄 | resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" |
特定子網路的記錄 | resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" resource.labels.subnetwork_name="SUBNET_NAME" |
特定虛擬機器 (VM) 執行個體的記錄 | resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" (jsonPayload.src_instance.vm_name="VM_NAME" OR jsonPayload.dest_instance.vm_name="VM_NAME") |
特定子網路範圍的流量記錄 | resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" ip_in_net(jsonPayload.connection.dest_ip, SUBNET_RANGE) |
特定 Google Kubernetes Engine (GKE) 叢集的記錄 | resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" (jsonPayload.src_gke_details.cluster.cluster_name="CLUSTER_NAME" OR jsonPayload.dest_gke_details.cluster.cluster_name="CLUSTER_NAME") |
僅記錄來自子網路的輸出流量 | resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" AND jsonPayload.reporter="SRC" AND jsonPayload.src_vpc.subnetwork_name="SUBNET_NAME" AND (jsonPayload.dest_vpc.subnetwork_name!="SUBNET_NAME" OR NOT jsonPayload.dest_vpc.subnetwork_name:*) |
虛擬私有雲 (VPC) 網路輸出流量的所有記錄 | resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" AND jsonPayload.reporter="SRC" AND jsonPayload.src_vpc.vpc_name="VPC_NAME" AND (jsonPayload.dest_vpc.vpc_name!="VPC_NAME" OR NOT jsonPayload.dest_vpc:*) |
個別目的地連接埠的記錄 | resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" jsonPayload.connection.dest_port=PORT jsonPayload.connection.protocol=PROTOCOL |
多個目的地通訊埠的記錄 | resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" jsonPayload.connection.dest_port=(PORT1 OR PORT2) jsonPayload.connection.protocol=PROTOCOL |
networkmanagement.googleapis.com/vpc_flows 記錄的查詢 |
|
所有虛擬私有雲流量記錄設定的記錄 | resource.type="vpc_flow_logs_config" logName="projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows" |
特定虛擬私有雲流量記錄設定的記錄 | resource.type="vpc_flow_logs_config" logName="projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows" resource.labels.name="CONFIG_NAME" |
特定來源 Cloud VPN 通道的記錄 | resource.type="vpc_flow_logs_config" logName="projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows" jsonPayload.reporter="src_gateway" labels.target_resource_name="projects/PROJECT_ID/regions/REGION/vpnTunnels/NAME" |
所有目的地 VLAN 連結的記錄 | resource.type="vpc_flow_logs_config" logName="projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows" jsonPayload.reporter="dest_gateway" jsonPayload.dest_gateway.type="INTERCONNECT_ATTACHMENT" |
特定區域中所有目的地 VLAN 連結的記錄 | resource.type="vpc_flow_logs_config" logName="projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows" jsonPayload.reporter="dest_gateway" jsonPayload.dest_gateway.type="INTERCONNECT_ATTACHMENT" jsonPayload.dest_gateway.location="REGION" |
更改下列內容:
PROJECT_ID
:專案 IDSUBNET_NAME
:子網路名稱VM_NAME
:VM 名稱SUBNET_RANGE
:CIDR 範圍,例如192.168.1.0/24
CLUSTER_NAME
:GKE 叢集名稱VPC_NAME
:虛擬私有雲網路的名稱PORT1
和PORT2
:目的地通訊埠PROTOCOL
:通訊協定CONFIG_NAME
:虛擬私有雲流量記錄設定的名稱REGION
:VLAN 連結或 Cloud VPN 通道的區域NAME
:Cloud VPN 通道的名稱
將記錄轉送至 BigQuery、Pub/Sub 和自訂目標
您可以將流量記錄從 Logging 轉送至所選目的地,如 Logging 說明文件中的「轉送和儲存空間總覽」一節所述。如需篩選器範例,請參閱上一節。
疑難排解
Logging 中沒有顯示 gce_subnetwork
資源的 vpc_flows
- 確認已為指定的子網路啟用記錄功能。
- 虛擬私有雲流程僅支援虛擬私有雲網路。如果您使用舊版網路,就看不見任何記錄。
- 在共用虛擬私有雲網路中,記錄檔只會顯示於代管專案,不會顯示於服務專案。請確認您是在代管專案中尋找記錄檔。
- 記錄排除篩選器會封鎖特定記錄檔。請確認沒有任何排除規則會捨棄虛擬私有雲流量記錄:
- 使用 Google Cloud CLI 或 API,判斷記錄篩選設定是否篩除特定子網路中的所有流量。舉例來說,如果
filterExpr
設為false
,您就不會看到任何記錄。
部分記錄檔中沒有 RTT 或位元組的值
- 取樣封包數若不足以擷取 RTT,記錄檔可能就不會顯示 RTT 測量結果。低流量連線較常發生這種情況。
- RTT 值僅適用於 VM 回報的 TCP 流量。
- 部分封包會在沒有酬載的情況下傳送。如果系統取樣到內容只有標頭的封包,位元組的值會顯示 0。
未顯示部分流程
- 輸入封包會在輸入 VPC 防火牆規則 後進行取樣。請確認沒有任何輸入防火牆規則會拒絕您預期要記錄的封包。如果您不確定 VPC 防火牆規則是否封鎖輸入封包,可以啟用防火牆規則記錄並檢查記錄。
- 僅支援 TCP、UDP、ICMP、ESP 和 GRE 通訊協定。虛擬私有雲流量記錄不支援其他任何通訊協定。
- 系統會對記錄進行取樣。封包所在的流程如果流量太低,可能不會顯示部分封包。
部分記錄檔缺少 GKE 註解
請確認您的 GKE 叢集為支援的版本。
部分 GKE 流程缺少記錄檔
請確認叢集中已啟用節點內瀏覽權限。否則,系統不會記錄相同節點上的 Pod 之間的流量。
後續步驟
- 參閱「Logging」說明文件
- 參閱「Logging 匯出功能」說明文件
- 在 Flow Analyzer 中分析流量記錄檔