使用 VPC 流日志

VPC 流日志记录虚拟机实例(包括用作 GKE 节点的实例)发送和接收的网络流样本。这些日志可用于网络监控、取证、实时安全分析和费用优化。

本页面假定您熟悉 VPC 流日志中介绍的概念。

启用 VPC 流日志

启用 VPC 流日志时,可以为子网中的所有虚拟机启用日志记录。但是,您可以减少写入日志记录的信息量。如需详细了解您可以控制的参数,请参阅日志采样和汇总

如需自定义元数据字段或配置日志过滤,请使用 gcloud CLI 或 API。

创建子网时启用 VPC 流日志

控制台

  1. 在 Google Cloud 控制台中,进入 VPC 网络页面。

    进入 VPC 网络页面

  2. 点击要在其中添加子网的网络。

  3. 点击添加子网

  4. 流日志部分,选择开启

  5. 如果要调整日志采样和汇总,请点击配置日志并调整以下任意项:

    • 汇总时间间隔
    • 是否在最后的日志条目中包含元数据。默认情况下,包括元数据将包括所有字段。
    • 采样率100% 表示保留所有条目。
  6. 根据需要填写其他字段。

  7. 点击添加

gcloud

  1. 在 Google Cloud 控制台中,激活 Cloud Shell。

    激活 Cloud Shell

    Cloud Shell 会话随即会在 Google Cloud 控制台的底部启动,并显示命令行提示符。Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟时间来完成初始化。

  2. 运行以下命令:

    gcloud compute networks subnets create SUBNET_NAME \
       --enable-flow-logs \
       [--logging-aggregation-interval=AGGREGATION_INTERVAL] \
       [--logging-flow-sampling=SAMPLE_RATE] \
       [--logging-filter-expr=FILTER_EXPRESSION] \
       [--logging-metadata=LOGGING_METADATA] \
       [--logging-metadata-fields=METADATA_FIELDS] \
       [other flags as needed]
    

    替换以下内容:

    • AGGREGATION_INTERVAL:该子网中流日志的汇总时间间隔。该时间间隔可以设置为以下任何值:5 秒(默认)、30 秒、1 分钟、5 分钟、10 分钟或 15 分钟。
    • SAMPLE_RATE:流采样率。流采样的范围可以设置为从 0.0(不采样)到 1.0(所有日志)。默认值为 0.5
    • FILTER_EXPRESSION:用于定义要保留的日志的表达式。表达式的长度上限为 2,048 个字符。如需了解详情,请参阅日志过滤
    • LOGGING_METADATA:您希望包括在日志中的元数据注释

      • include-all:包括所有元数据注释
      • exclude-all:排除所有元数据注释(默认)
      • custom:包括您在 METADATA_FIELDS 中指定的元数据字段的自定义列表。
    • METADATA_FIELDS:您希望包括在日志中的元数据字段的逗号分隔列表。例如 src_instance,dst_instance。只有当 LOGGING_METADATA 设置为 custom 时才能设置此项。

API

在创建新子网时启用 VPC 流日志。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks
{
  "logConfig": {
    "aggregationInterval": "AGGREGATION_INTERVAL",
    "flowSampling": SAMPLING_RATE,
    "filterExpr": EXPRESSION,
    "metadata": METADATA_SETTING,
    "metadataFields": METADATA_FIELDS,
    "enable": true
  },
  "ipCidrRange": "IP_RANGE",
  "network": "NETWORK_URL",
  "name": "SUBNET_NAME"
}

请将占位符替换为有效值:

  • PROJECT_ID 是将在其中创建子网的项目的 ID。
  • REGION 是将在其中创建子网的地区。
  • AGGREGATION_INTERVAL 设置该子网中流日志的汇总时间间隔。此时间间隔可以设置为以下任何值:INTERVAL_5_SECINTERVAL_30_SECINTERVAL_1_MININTERVAL_5_MININTERVAL_10_MININTERVAL_15_MIN
  • SAMPLING_RATE 是流采样率。流采样的范围可以设置为从 0.0(不采样)到 1.0(所有日志)。默认值为 .0.5
  • EXPRESSION 是用于过滤实际写入的日志的过滤表达式。 表达式的长度上限为 2,048 个字符。如需了解详情,请参阅日志过滤
  • METADATA_SETTING 指定是否记录所有元数据 (INCLUDE_ALL_METADATA)、不记录任何元数据 (EXCLUDE_ALL_METADATA),或者仅记录特定元数据 (CUSTOM_METADATA)。如果此字段设置为 CUSTOM_METADATA,还需要填充 metadataFields 字段。 默认值为 EXCLUDE_ALL_METADATA。如需了解详情,请参阅元数据注释

  • METADATA_FIELDS 是您设置 metadata: CUSTOM_METADATA 后希望捕获的元数据字段。这是一个以英文逗号分隔的元数据字段列表,例如 src_instance, src_vpc.project_id

  • IP_RANGE 是子网的主要内部 IP 地址范围。

  • NETWORK_URL 是将在其中创建子网的 VPC 网络的网址。

  • SUBNET_NAME 是子网的名称。

如需了解详情,请参阅 subnetworks.insert 方法。

Terraform

您可以使用 Terraform 模块创建自定义模式 VPC 网络和子网。

以下示例会创建三个子网,如下所示:

  • subnet-01 停用了 VPC 流日志。创建子网时,VPC 流日志会被停用,除非您明确启用。
  • subnet-02 启用了 VPC 流日志,并进行了默认流日志设置。
  • subnet-03 启用了 VPC 流日志,并进行了一些自定义设置。
module "test-vpc-module" {
  source       = "terraform-google-modules/network/google"
  version      = "~> 9.0"
  project_id   = var.project_id # Replace this with your project ID in quotes
  network_name = "my-custom-mode-network"
  mtu          = 1460

  subnets = [
    {
      subnet_name   = "subnet-01"
      subnet_ip     = "10.10.10.0/24"
      subnet_region = "us-west1"
    },
    {
      subnet_name           = "subnet-02"
      subnet_ip             = "10.10.20.0/24"
      subnet_region         = "us-west1"
      subnet_private_access = "true"
      subnet_flow_logs      = "true"
    },
    {
      subnet_name               = "subnet-03"
      subnet_ip                 = "10.10.30.0/24"
      subnet_region             = "us-west1"
      subnet_flow_logs          = "true"
      subnet_flow_logs_interval = "INTERVAL_10_MIN"
      subnet_flow_logs_sampling = 0.7
      subnet_flow_logs_metadata = "INCLUDE_ALL_METADATA"
      subnet_flow_logs_filter   = "false"
    }
  ]
}

如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令

为现有子网启用 VPC 流日志

控制台

  1. 在 Google Cloud 控制台中,进入 VPC 网络页面。

    进入 VPC 网络页面

  2. 点击要更新的子网。

  3. 点击修改

  4. 流日志部分,选择开启

  5. 如果要调整日志采样和汇总,请点击配置日志并调整以下任意项:

    • 汇总时间间隔
    • 是否在最后的日志条目中包含元数据。默认情况下,包括元数据将包括所有字段。
    • 采样率100% 表示保留所有条目。
  6. 点击保存

gcloud

  1. 在 Google Cloud 控制台中,激活 Cloud Shell。

    激活 Cloud Shell

    Cloud Shell 会话随即会在 Google Cloud 控制台的底部启动,并显示命令行提示符。Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟时间来完成初始化。

  2. 运行以下命令:

    gcloud compute networks subnets update SUBNET_NAME \
       --enable-flow-logs \
       [--logging-aggregation-interval=AGGREGATION_INTERVAL] \
       [--logging-flow-sampling=SAMPLE_RATE] \
       [--logging-filter-expr=FILTER_EXPRESSION] \
       [--logging-metadata=LOGGING_METADATA] \
       [--logging-metadata-fields=METADATA_FIELDS] \
       [other flags as needed]
    

    替换以下内容:

    • AGGREGATION_INTERVAL:该子网中流日志的汇总时间间隔。该时间间隔可以设置为以下任何值:5 秒(默认)、30 秒、1 分钟、5 分钟、10 分钟或 15 分钟。
    • SAMPLE_RATE:流采样率。流采样的范围可以设置为从 0.0(不采样)到 1.0(所有日志)。默认值为 0.5
    • FILTER_EXPRESSION 是定义要保留的日志的表达式。表达式的长度上限为 2,048 个字符。如需了解详情,请参阅日志过滤
    • LOGGING_METADATA:您希望包括在日志中的元数据注释

      • include-all:包括所有元数据注释
      • exclude-all:排除所有元数据注释(默认)
      • custom:包括您在 METADATA_FIELDS 中指定的元数据字段的自定义列表。
    • METADATA_FIELDS:您希望包括在日志中的元数据字段的逗号分隔列表。例如 src_instance,dst_instance。只有当 LOGGING_METADATA 设置为 custom 时才能设置此项。

API

为现有子网启用 VPC 流日志。

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
{
  "logConfig": {
    "enable": true
    ...other logging fields.
  },
  "fingerprint": "SUBNETWORK_FINGERPRINT"
}

请将占位符替换为有效值:

  • PROJECT_ID 是子网所在项目的 ID。
  • REGION 是子网所在的地区。
  • SUBNET_NAME 是现有子网的名称。
  • SUBNET_FINGERPRINT 是现有子网的指纹 ID,由您在描述子网时提供。
  • 如需了解其他日志记录字段,请参阅在创建子网时启用 VPC 流日志记录

如需了解详情,请参阅 subnetworks.patch 方法。

查看现有子网的估算日志量

Google Cloud 控制台会为现有子网提供日志量估算,然后您可以使用该估算值来估算启用流日志的费用。估算值基于过去 7 天内按照 5 秒的时间间隔为子网捕获的流。此外,每个日志的大小都取决于您是否启用了元数据注释。

控制台

  1. 在 Google Cloud 控制台中,进入 VPC 网络页面。

    进入 VPC 网络页面

  2. 点击要为其估算费用的子网。

  3. 点击修改

  4. 流日志部分,选择开启

  5. 点击配置日志

  6. 查看估算的每日生成日志量,以了解估算值。

  7. 点击取消以免保存任何更改。

查看哪些子网启用了 VPC 流日志

您可以检查网络中的哪些子网启用了 VPC 流日志。

控制台

  1. 在 Google Cloud 控制台中,进入 VPC 网络页面。

    进入 VPC 网络页面

  2. 查看流日志列,了解日志记录功能是处于开启还是关闭状态。

gcloud

  1. 在 Google Cloud 控制台中,激活 Cloud Shell。

    激活 Cloud Shell

    Cloud Shell 会话随即会在 Google Cloud 控制台的底部启动,并显示命令行提示符。Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟时间来完成初始化。

  2. 运行以下命令:

    gcloud compute networks subnets list \
       --project PROJECT_ID \
       --network="NETWORK" \
       --format="csv(name,region,logConfig.enable)"

    替换以下内容:

    • PROJECT_ID:您正在查询的项目的 ID。
    • NETWORK:子网所在网络的名称。

更新 VPC 流日志参数

您可以修改日志采样参数。如需详细了解您可以控制的参数,请参阅日志采样和汇总

如需自定义元数据字段或配置日志过滤,请使用 gcloud CLI 或 API。

控制台

  1. 在 Google Cloud 控制台中,进入 VPC 网络页面。

    进入 VPC 网络页面

  2. 点击要更新的子网。

  3. 点击修改

  4. 如果要调整日志采样和汇总,请点击配置日志并调整以下任意项:

    • 汇总时间间隔
    • 是否在最后的日志条目中包含元数据。默认情况下,包括元数据将包括所有字段。
    • 采样率100% 表示保留所有条目。
  5. 点击保存

gcloud

  1. 在 Google Cloud 控制台中,激活 Cloud Shell。

    激活 Cloud Shell

    Cloud Shell 会话随即会在 Google Cloud 控制台的底部启动,并显示命令行提示符。Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟时间来完成初始化。

  2. 运行以下命令:

    gcloud compute networks subnets update SUBNET_NAME \
       [--logging-aggregation-interval=AGGREGATION_INTERVAL] \
       [--logging-flow-sampling=SAMPLE_RATE] \
       [--logging-filter-expr=FILTER_EXPRESSION] \
       [--logging-metadata=LOGGING_METADATA] \
       [--logging-metadata-fields=METADATA_FIELDS] \
    

    替换以下内容:

    • AGGREGATION_INTERVAL:该子网中流日志的汇总时间间隔。该时间间隔可以设置为以下任何值:5 秒(默认)、30 秒、1 分钟、5 分钟、10 分钟或 15 分钟。
    • SAMPLE_RATE:流采样率。流采样的范围可以设置为从 0.0(不采样)到 1.0(所有日志)。默认值为 0.5
    • FILTER_EXPRESSION 是定义要保留的日志的表达式。 表达式的长度上限为 2,048 个字符。如需了解详情,请参阅日志过滤
    • LOGGING_METADATA:您希望包括在日志中的元数据注释

      • include-all:包括所有元数据注释
      • exclude-all:排除所有元数据注释(默认)
      • custom:包括您在 METADATA_FIELDS 中指定的元数据字段的自定义列表。
    • METADATA_FIELDS:您希望包括在日志中的元数据字段的逗号分隔列表。例如 src_instance,dst_instance。只有当 LOGGING_METADATA 设置为 custom 时才能设置此项。

API

修改各日志采样字段,以更新 VPC 流日志行为。

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
{
  "logConfig": {
    ...fields to modify
  },
  "fingerprint": "SUBNETWORK_FINGERPRINT"
}

请将占位符替换为有效值:

  • PROJECT_ID 是子网所在项目的 ID。
  • REGION 是子网所在的地区。
  • SUBNET_NAME 是现有子网的名称。
  • SUBNET_FINGERPRINT 是现有子网的指纹 ID,由您在描述子网时提供。
  • 如需了解您可以修改的字段,请参阅在创建子网时启用 VPC 流日志记录

如需了解详情,请参阅 subnetworks.patch 方法。

为子网停用 VPC 流日志

控制台

  1. 在 Google Cloud 控制台中,进入 VPC 网络页面。

    进入 VPC 网络页面

  2. 点击要更新的子网。

  3. 点击修改

  4. 流日志部分,选择关闭

  5. 点击保存

gcloud

  1. 在 Google Cloud 控制台中,激活 Cloud Shell。

    激活 Cloud Shell

    Cloud Shell 会话随即会在 Google Cloud 控制台的底部启动,并显示命令行提示符。Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟时间来完成初始化。

  2. 运行以下命令:

    gcloud compute networks subnets update SUBNET_NAME \
       --no-enable-flow-logs
    

API

在子网上停用 VPC 流日志即可停止收集日志记录。

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
{
  "logConfig": {
    "enable": false
  },
  "fingerprint": "SUBNETWORK_FINGERPRINT"
}

请将占位符替换为有效值:

  • PROJECT_ID 是子网所在项目的 ID。
  • REGION 是子网所在的地区。
  • SUBNET_NAME 是现有子网的名称。
  • SUBNET_FINGERPRINT 是现有子网的指纹 ID,由您在描述子网时提供。

如需了解详情,请参阅 subnetworks.patch 方法。

使用 Logging 访问日志

您可以使用 Logs Explorer 查看 VPC 流日志。要使用以下查询,您需要您的项目的 ID

配置 IAM

如需配置日志记录的访问权限控制,请参阅 Logging 访问权限控制指南

访问所有流日志

控制台

  1. 在 Google Cloud 控制台中,转到日志浏览器页面。

    转到日志浏览器

  2. 点击资源

  3. 选择资源列表中,点击子网,然后点击应用

  4. 点击日志名称

  5. 选择日志名称列表中,点击 vpc_flows,然后点击应用

或者,您也可以使用:

控制台

  1. 在 Google Cloud 控制台中,转到日志浏览器页面。

    转到日志浏览器

  2. 如果您在“查询”窗格中没有看到查询编辑器字段,请点击显示查询切换开关。

  3. 将以下内容粘贴到查询编辑器字段中。将 PROJECT_ID 替换为您的项目 ID。

    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows"
    

  4. 点击运行查询

访问特定子网的日志

控制台

  1. 在 Google Cloud 控制台中,转到日志浏览器页面。

    转到日志浏览器

  2. 点击资源

  3. 选择资源列表中,点击子网

  4. 子网 ID 列表中,选择子网,然后点击应用

  5. 选择日志名称列表中,点击 vpc_flows,然后点击应用

或者,您也可以使用:

控制台

  1. 在 Google Cloud 控制台中,转到日志浏览器页面。

    转到日志浏览器

  2. 如果您在“查询”窗格中没有看到查询编辑器字段,请点击显示查询切换开关。

  3. 将以下内容粘贴到查询编辑器字段中。将 PROJECT_ID 替换为您的项目 ID,将 SUBNET_NAME 替换为您的子网。

    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows"
    resource.labels.subnetwork_name="SUBNET_NAME"
    

  4. 点击运行查询

访问特定虚拟机的日志

控制台

  1. 在 Google Cloud 控制台中,转到日志浏览器页面。

    转到日志浏览器

  2. 如果您在“查询”窗格中没有看到查询编辑器字段,请点击显示查询切换开关。

  3. 将以下内容粘贴到查询编辑器字段中。将 PROJECT_ID 替换为您的项目 ID,将 VM_NAME 替换为您的虚拟机名称。

    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows"
    jsonPayload.src_instance.vm_name="VM_NAME"
    

  4. 点击运行查询

访问发往特定子网范围的流量的日志

控制台

  1. 在 Google Cloud 控制台中,转到日志浏览器页面。

    转到日志浏览器

  2. 如果您在“查询”窗格中没有看到查询编辑器字段,请点击显示查询切换开关。

  3. 将以下内容粘贴到查询编辑器字段中。将 PROJECT_ID 替换为您的项目 ID,将 SUBNET_RANGE 替换为 CIDR 范围,例如 192.168.1.0/24

    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows"
    ip_in_net(jsonPayload.connection.dest_ip, SUBNET_RANGE)
    

  4. 点击运行查询

访问特定 GKE 集群的日志

控制台

  1. 在 Google Cloud 控制台中,转到日志浏览器页面。

    转到日志浏览器

  2. 如果您在“查询”窗格中没有看到查询编辑器字段,请点击显示查询切换开关。

  3. 将以下内容粘贴到查询编辑器字段中。将 PROJECT_ID 替换为您的项目 ID,将 SUBNET_NAME 替换为您的子网名称。

    resource.type="k8s_cluster"
    logName="projects/PROJECT_ID/logs/vpc_flows"
    resource.labels.cluster_name="CLUSTER_NAME"
    

  4. 点击运行查询

仅访问子网出站流量的日志

控制台

  1. 在 Google Cloud 控制台中,转到日志浏览器页面。

    转到日志浏览器

  2. 如果您在“查询”窗格中没有看到查询编辑器字段,请点击显示查询切换开关。

  3. 将以下内容粘贴到查询编辑器字段中。将 PROJECT_ID 替换为您的项目 ID,并将 SUBNET_NAME 替换为要查看其出站流量的子网的名称。

    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:*)
    

  4. 点击运行查询

访问来自 VPC 网络的所有出站流量的日志

控制台

  1. 在 Google Cloud 控制台中,转到日志浏览器页面。

    转到日志浏览器

  2. 如果您在“查询”窗格中没有看到查询编辑器字段,请点击显示查询切换开关。

  3. 将以下内容粘贴到查询编辑器字段中。将 PROJECT_ID 替换为您的项目 ID,将 VPC_NAME 替换为您的 VPC 网络名称。

    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:*)
    
  4. 点击运行查询

访问特定端口和协议的日志

针对单个目标端口

控制台

  1. 在 Google Cloud 控制台中,转到日志浏览器页面。

    转到日志浏览器

  2. 如果您在“查询”窗格中没有看到查询编辑器字段,请点击显示查询切换开关。

  3. 将以下内容粘贴到查询编辑器字段中。将 PROJECT_ID 替换为您的项目 ID,将 PORT 替换为目标端口,并将 PROTOCOL 替换为协议。

    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows"
    jsonPayload.connection.dest_port=PORT
    jsonPayload.connection.protocol=PROTOCOL
    

  4. 点击运行查询

针对多个目标端口

控制台

  1. 在 Google Cloud 控制台中,转到日志浏览器页面。

    转到日志浏览器

  2. 如果您在“查询”窗格中没有看到查询编辑器字段,请点击显示查询切换开关。

  3. 将以下内容粘贴到查询编辑器字段中。将 PROJECT_ID 替换为您的项目 ID,将 PORT1PORT2 替换为目标端口,并将 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
    

  4. 点击运行查询

将日志路由到 BigQuery、Pub/Sub 和自定义目标

您可以参照 Logging 文档中的路由和存储概览部分,将 Logging 中的流日志路由到您选择的目的地。请参阅上一节中的示例过滤条件。

问题排查

Logging 中的 gce_subnetwork 资源不显示任何 vpc_flows

  • 确认给定子网已启用日志记录。
  • 只有 VPC 网络支持 VPC 流。 如果您使用的是旧式网络,则不会看到任何日志。
  • 共享 VPC 网络中,日志只会出现在宿主项目中,不会出现在服务项目中。务必在宿主项目中查找日志。
  • Logging 排除过滤条件会屏蔽指定的日志。确保没有会舍弃 VPC 流日志的排除规则。
    1. 转到资源使用情况
    2. 点击排除项标签页。
    3. 确保没有可能会舍弃 VPC 流日志的排除规则。

某些日志中没有 RTT 或字节值

  • 如果没有获取足够的数据包作为样本来捕获 RTT,RTT 测量结果可能会缺失。在低容量连接中发生这种情况的几率更高。
  • RTT 值仅适用于 TCP 流。
  • 发送的某些数据包没有负载。如果抽样的是仅有标头的数据包,则字节值为 0。

某些流缺失

  • 入站数据包依照入站 VPC 防火墙规则进行采样。确保没有任何入站防火墙规则拒绝您希望记录的数据包。如果您不确定 VPC 防火墙规则是否会阻止入站数据包,则可以启用防火墙规则日志记录并检查日志。
  • 仅支持 TCP、UDP、ICMP、ESP 和 GRE 协议。VPC 流日志不支持任何其他协议。
  • 对日志进行采样。某些数据包流的容量极小,可能会丢失。

某些日志中缺少 GKE 注释

确保您的 GKE 集群是受支持的版本

某些 GKE 流缺少日志

确保已在集群中启用了节点内可见性。否则,系统不会记录同一节点上两个 pod 之间的流。

即使您启用了流日志,看似仍处于停用状态

  • 当您为内部应用负载均衡器配置代理专用子网并且使用 gcloud compute networks subnets 命令启用 VPC 流日志时,该命令看似执行成功,但流日志实际上并未启用。如果您还添加了 --purpose=INTERNAL_HTTPS_LOAD_BALANCER 标志,则 --enable-flow-logs 标志不会生效。

    使用 Google Cloud 控制台或 API 启用流日志时,您会看到错误消息:“字段 'resource.enableFlowLogs':'true' 的值无效。具有 INTERNAL_HTTPS_LOAD_BALANCER 用途的子网中设置的字段无效”。

    由于代理专用子网没有虚拟机,因此 VPC 流日志不受支持。这是预期行为。

后续步骤