配置 VPC 流日志

本页介绍了如何配置 VPC 流日志。本页面假定您熟悉 VPC 流日志关于 VPC 流日志记录中所述的概念。

准备工作

借助 VPC 流日志,您可以为 Virtual Private Cloud (VPC) 子网、Cloud Interconnect 的 VLAN 连接(预览版)和 Cloud VPN 隧道(预览版)配置流日志。

在配置 VPC 流日志之前,请完成以下任务:

  • 如果您想为子网配置 VPC 流日志,请执行以下操作:

    1. 在 Google Cloud 项目中启用 Compute Engine API。

      启用 Compute Engine API

    2. 确保您拥有项目的以下角色之一:

  • 如果您想为 VLAN 连接或 Cloud VPN 隧道配置 VPC 流日志,请执行以下操作:

    1. 在 Google Cloud 项目中启用 Network Connectivity API。

      启用 Network Management API

    2. 确保您拥有项目的以下角色:Network Management Admin 角色 (roles/networkmanagement.admin)

  • 可选:如果您想使用 Google Cloud CLI 配置 VPC 流日志,请执行以下操作:

    • In the Google Cloud console, activate Cloud Shell.

      Activate Cloud Shell

      At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

启用 VPC 流日志

您可以按子网、VLAN 连接或 Cloud VPN 隧道启用 VPC 流日志。为子网启用 VPC 流日志时,您可以为子网中的所有虚拟机启用日志记录。

您可以修改写入日志记录的信息量。如需详细了解您可以控制的参数,请参阅日志采样和处理。如需自定义元数据字段,请使用 gcloud CLI 或 API。

为子网启用 VPC 流日志

您可以在创建子网时启用 VPC 流日志,也可以为现有子网启用 VPC 流日志。

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

控制台

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

    进入 VPC 网络页面

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

  3. 点击添加子网

  4. 流日志中,选择开启

  5. 可选:调整汇总时间间隔以及高级设置部分中的以下任意设置:

    • 是否配置日志过滤。默认情况下,仅保留与过滤条件匹配的日志处于取消选中状态。
    • 是否在最终日志条目中包含元数据。默认情况下,元数据注解包括所有字段。
    • 次要采样率50% 表示系统会保留主要流日志采样流程生成的一半条目。您无法配置主要流日志采样率。如需了解详情,请参阅日志采样和处理
  6. 根据需要填写其他字段。

  7. 点击添加

gcloud

运行以下命令:

gcloud compute networks subnets create SUBNET_NAME \
    --enable-flow-logs \
    [--logging-aggregation-interval=AGGREGATION_INTERVAL] \
    [--logging-flow-sampling=SAMPLING_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 分钟。
  • SAMPLING_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 可以包括您在 METADATA_FIELDS 中指定的元数据字段的自定义列表。
  • METADATA_FIELDS:设置 metadata: CUSTOM_METADATA 后要捕获的元数据字段。这是一个以英文逗号分隔的元数据字段列表,例如 src_instance, src_vpc.project_id

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

  • NETWORK_URL:在其中创建子网的 Virtual Private Cloud 网络的网址。

  • 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. 可选:调整汇总时间间隔以及高级设置部分中的以下任意设置:

    • 是否配置日志过滤。默认情况下,仅保留与过滤条件匹配的日志处于取消选中状态。
    • 是否在最终日志条目中包含元数据。默认情况下,元数据注解包括所有字段。
    • 次要采样率50% 表示系统会保留主要流日志采样流程生成的一半条目。您无法配置主要流日志采样率。如需了解详情,请参阅日志采样和处理
  6. 点击保存

gcloud

运行以下命令:

gcloud compute networks subnets update SUBNET_NAME \
    --enable-flow-logs \
    [--logging-aggregation-interval=AGGREGATION_INTERVAL] \
    [--logging-flow-sampling=SAMPLING_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 分钟。
  • SAMPLING_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 方法。

为 VLAN 连接启用 VPC 流日志

控制台

  1. 在 Google Cloud 控制台中,转到互连页面。

    前往“互连”

  2. VLAN 连接标签页中,选择一个或多个 VLAN 连接,然后点击列表顶部的选择栏中的 管理流日志

  3. 管理流日志中,点击添加新配置

  4. 为新的 VPC 流日志配置输入一个名称

  5. 可选:调整汇总时间间隔以及高级设置部分中的任意设置:

    • 是否配置日志过滤。默认情况下,仅保留与过滤条件匹配的日志处于取消选中状态。
    • 是否在最终日志条目中包含元数据。默认情况下,元数据注解包括所有字段。
    • 次要采样率100% 表示系统会保留主要流日志采样流程生成的所有条目。您无法配置主要流日志采样率。如需了解详情,请参阅日志采样和处理
  6. 点击保存

gcloud

如需为 VLAN 连接创建 VPC 流日志配置,请使用 gcloud beta network-management vpc-flow-logs-configs create 命令。您可以创建 VPC 流日志配置,并将其所有参数设置为默认值,也可以在创建配置时自定义默认值。

在 gcloud CLI 中,将您的项目设置为 VLAN 连接的 Google Cloud 项目 ID,然后运行以下某个命令:

  • 如需创建默认的 VPC 流日志配置,请运行以下命令:

    gcloud beta network-management vpc-flow-logs-configs create CONFIG_NAME \
        --location=global \
        --interconnect-attachment=VLAN_ATTACHMENT
    
  • 如需创建自定义 VPC 流日志配置,请指定您要自定义的每个参数。

    例如,如需在创建 VPC 流日志配置时自定义汇总间隔、过滤、次要采样率和元数据参数,请运行以下命令:

    gcloud beta network-management vpc-flow-logs-configs create CONFIG_NAME \
        --location=global \
        --interconnect-attachment=VLAN_ATTACHMENT \
        --aggregation-interval=AGGREGATION_INTERVAL \
        --filter-expr=FILTER_EXPRESSION \
        --flow-sampling=SAMPLING_RATE \
        --metadata=LOGGING_METADATA
    

    替换以下内容:

    • CONFIG_NAME:VPC 流日志配置的名称。
    • VLAN_ATTACHMENT:您要记录的 VLAN 连接。必须采用以下格式指定:projects/PROJECT_ID/regions/REGION/interconnectAttachments/NAME。替换以下内容:
      • PROJECT_ID:包含 VLAN 连接的 Google Cloud 项目的 ID。必须在此项目中创建 VPC 流日志配置。
      • REGION:VLAN 连接的区域。
      • NAME:VLAN 连接的名称。

    如需在自定义配置中设置可选参数,请替换以下内容:

    • AGGREGATION_INTERVAL:由此配置生成的流日志的汇总时间间隔。此时间间隔可以设置为以下任何值:interval-5-sec(默认值)、interval-30-secinterval-1-mininterval-5-mininterval-10-mininterval-15-min
    • FILTER_EXPRESSION:定义要保留的日志的表达式。表达式的长度上限为 2,048 个字符。 如需了解详情,请参阅日志过滤
    • SAMPLING_RATE:次要流采样率。次要流采样的范围可以设置为从大于 0.01.0(所有日志,默认)。如需了解详情,请参阅日志采样和处理
    • LOGGING_METADATA:您要包含在日志中的元数据注解:
      • 使用 include-all-metadata 可以包含所有元数据注解(默认值)。
      • 使用 exclude-all-metadata 可以排除所有元数据注解。
      • 使用 custom-metadata 可以包含元数据字段的自定义列表。如需指定元数据字段,请使用 --metadata-fields 参数:
        • --metadata-fields=METADATA_FIELDS:将 METADATA_FIELDS 替换为您要包含在日志中的元数据字段的英文逗号分隔列表。例如 src_instance,dst_instance。只有当 metadata 设置为 custom-metadata 时才能设置此项。

API

如需为 VLAN 连接创建 VPC 流日志配置,请使用 projects.locations.vpcFlowLogsConfigs.create 方法。您可以创建 VPC 流日志配置,并将其所有参数设置为默认值,也可以在创建配置时自定义默认值。

如需创建默认的 VPC 流日志配置,请在 API 调用中添加以下参数:

POST https://networkmanagement.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/vpcFlowLogsConfigs?vpc_flow_logs_config_id=CONFIG_NAME
{
  "interconnectAttachment": "VLAN_ATTACHMENT"
}

如需创建自定义 VPC 流日志配置,请指定要自定义的每个参数。

例如,若要在创建 VPC 流日志配置时自定义汇总间隔、过滤、次要采样率和元数据参数,请在 API 调用中添加以下参数:

POST https://networkmanagement.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/vpcFlowLogsConfigs?vpc_flow_logs_config_id=CONFIG_NAME
{
  "interconnectAttachment": "VLAN_ATTACHMENT",
  "aggregationInterval": "AGGREGATION_INTERVAL",
  "filterExpr": "FILTER_EXPRESSION",
  "flowSampling": SAMPLING_RATE,
  "metadata": "LOGGING_METADATA"
}

替换以下内容:

  • PROJECT_ID:您要在其中创建 VPC 流日志配置的 Google Cloud 项目的 ID。必须与 VLAN 连接位于同一项目中。
  • CONFIG_NAME:VPC 流日志配置的名称。
  • VLAN_ATTACHMENT:您要记录的 VLAN 连接。必须采用以下格式:projects/PROJECT_ID/regions/REGION/interconnectAttachments/NAME
    • PROJECT_ID:包含 VLAN 连接的 Google Cloud 项目的 ID。
    • REGION:VLAN 连接的区域。
    • NAME:VLAN 连接的名称。
如需在自定义配置中设置可选参数,请替换以下内容:
  • AGGREGATION_INTERVAL:由此配置生成的流日志的汇总时间间隔。此时间间隔可以设置为以下任何值:INTERVAL_5_SEC(默认值)、INTERVAL_30_SECINTERVAL_1_MININTERVAL_5_MININTERVAL_10_MININTERVAL_15_MIN
  • FILTER_EXPRESSION:定义要保留的日志的表达式。表达式的长度上限为 2,048 个字符。 如需了解详情,请参阅日志过滤
  • SAMPLING_RATE:次要流采样率。次要流采样的范围可以设置为从大于 0.01.0(所有日志,默认)。如需了解详情,请参阅日志采样和处理
  • LOGGING_METADATA:您要包含在日志中的元数据注解:
    • 使用 INCLUDE_ALL_METADATA 可以包含所有元数据注解(默认值)。
    • 使用 EXCLUDE_ALL_METADATA 可以排除所有元数据注解。
    • 使用 CUSTOM_METADATA 可以包含元数据字段的自定义列表。如需指定元数据字段,请使用 metadataFields 参数:
      • metadataFields: METADATA_FIELDS:将 METADATA_FIELDS 替换为您要包含在日志中的元数据字段的英文逗号分隔列表。例如 src_instance,dst_instance。只有当 metadata 设置为 CUSTOM_METADATA 时才能设置此项。

您可以为单个 VLAN 连接添加多项 VPC 流日志配置。每个 VPC 流日志配置都会生成一组单独的流日志。

为 Cloud VPN 隧道启用 VPC 流日志

控制台

  1. 在 Google Cloud 控制台中,转到 VPN 页面。

    转到 VPN

  2. Cloud VPN 隧道标签页中,选择一个或多个 Cloud VPN 隧道,然后点击列表顶部的选择栏中的 管理流日志

  3. 管理流日志中,点击添加新配置

  4. 为新的 VPC 流日志配置输入一个名称

  5. 可选:调整汇总时间间隔以及高级设置部分中的任意设置:

    • 是否配置日志过滤。默认情况下,仅保留与过滤条件匹配的日志处于取消选中状态。
    • 是否在最终日志条目中包含元数据。默认情况下,元数据注解包括所有字段。
    • 次要采样率100% 表示系统会保留主要流日志采样流程生成的所有条目。您无法配置主要流日志采样率。如需了解详情,请参阅日志采样和处理
  6. 点击保存

gcloud

如需为 Cloud VPN 隧道创建 VPC 流日志配置,请使用 gcloud beta network-management vpc-flow-logs-configs create 命令。您可以创建 VPC 流日志配置,并将其所有参数设置为默认值,也可以在创建配置时自定义默认值。

在 gcloud CLI 中,将您的项目设置为 Cloud VPN 隧道的 Google Cloud 项目 ID,然后运行以下命令之一:

  • 如需创建默认的 VPC 流日志配置,请运行以下命令:

    gcloud beta network-management vpc-flow-logs-configs create CONFIG_NAME \
        --location=global \
        --vpn-tunnel=VPN_TUNNEL
    
  • 如需创建自定义 VPC 流日志配置,请指定您要自定义的每个参数。

    例如,如需在创建 VPC 流日志配置时自定义汇总间隔、过滤、次要采样率和元数据参数,请运行以下命令:

    gcloud beta network-management vpc-flow-logs-configs create CONFIG_NAME \
        --location=global \
        --vpn-tunnel=VPN_TUNNEL \
        --aggregation-interval=AGGREGATION_INTERVAL \
        --filter-expr=FILTER_EXPRESSION \
        --flow-sampling=SAMPLING_RATE \
        --metadata=LOGGING_METADATA
    

    替换以下内容:

    • CONFIG_NAME:VPC 流日志配置的名称。
    • VPN_TUNNEL:您要记录的 Cloud VPN 隧道。必须采用以下格式指定:projects/PROJECT_ID/regions/REGION/vpnTunnels/NAME。替换以下内容:
      • PROJECT_ID:包含 Cloud VPN 隧道的 Google Cloud 项目的 ID。必须在此项目中创建 VPC 流日志配置。
      • REGION:Cloud VPN 隧道的区域。
      • NAME:Cloud VPN 隧道的名称。

    如需在自定义配置中设置可选参数,请替换以下内容:

    • AGGREGATION_INTERVAL:由此配置生成的流日志的汇总时间间隔。此时间间隔可以设置为以下任何值:interval-5-sec(默认值)、interval-30-secinterval-1-mininterval-5-mininterval-10-mininterval-15-min
    • FILTER_EXPRESSION:定义要保留的日志的表达式。表达式的长度上限为 2,048 个字符。 如需了解详情,请参阅日志过滤
    • SAMPLING_RATE:次要流采样率。次要流采样的范围可以设置为从大于 0.01.0(所有日志,默认)。如需了解详情,请参阅日志采样和处理
    • LOGGING_METADATA:您要包含在日志中的元数据注解:
      • 使用 include-all-metadata 可以包含所有元数据注解(默认值)。
      • 使用 exclude-all-metadata 可以排除所有元数据注解。
      • 使用 custom-metadata 可以包含元数据字段的自定义列表。如需指定元数据字段,请使用 --metadata-fields 参数:
        • --metadata-fields=METADATA_FIELDS:将 METADATA_FIELDS 替换为您要包含在日志中的元数据字段的英文逗号分隔列表。例如 src_instance,dst_instance。只有当 metadata 设置为 custom-metadata 时才能设置此项。

API

如需为 Cloud VPN 隧道创建 VPC 流日志配置,请使用 projects.locations.vpcFlowLogsConfigs.create 方法。您可以创建 VPC 流日志配置,并将其所有参数设置为默认值,也可以在创建配置时自定义默认值。

如需创建默认的 VPC 流日志配置,请在 API 调用中添加以下参数:

POST https://networkmanagement.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/vpcFlowLogsConfigs?vpc_flow_logs_config_id=CONFIG_NAME
{
  "vpnTunnel": "VPN_TUNNEL"
}

如需创建自定义 VPC 流日志配置,请指定您要自定义的每个参数。

例如,若要在创建 VPC 流日志配置时自定义汇总间隔、过滤、次要采样率和元数据参数,请在 API 调用中添加以下参数:

POST https://networkmanagement.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/vpcFlowLogsConfigs?vpc_flow_logs_config_id=CONFIG_NAME
{
  "vpnTunnel": "VPN_TUNNEL",
  "aggregationInterval": "AGGREGATION_INTERVAL",
  "filterExpr": "FILTER_EXPRESSION",
  "flowSampling": SAMPLING_RATE,
  "metadata": "LOGGING_METADATA"
}

替换以下内容:

  • PROJECT_ID:您要在其中创建 VPC 流日志配置的 Google Cloud 项目的 ID。必须与 Cloud VPN 隧道位于同一项目中。
  • CONFIG_NAME:VPC 流日志配置的名称。
  • VPN_TUNNEL:您要记录的 Cloud VPN 隧道。必须采用以下格式:projects/PROJECT_ID/regions/REGION/vpnTunnels/NAME
    • PROJECT_ID:包含 Cloud VPN 隧道的 Google Cloud 项目的 ID。
    • REGION:Cloud VPN 隧道的区域。
    • NAME:Cloud VPN 隧道的名称。
如需在自定义配置中设置可选参数,请替换以下内容:
  • AGGREGATION_INTERVAL:由此配置生成的流日志的汇总时间间隔。此时间间隔可以设置为以下任何值:INTERVAL_5_SEC(默认值)、INTERVAL_30_SECINTERVAL_1_MININTERVAL_5_MININTERVAL_10_MININTERVAL_15_MIN
  • FILTER_EXPRESSION:定义要保留的日志的表达式。表达式的长度上限为 2,048 个字符。 如需了解详情,请参阅日志过滤
  • SAMPLING_RATE:次要流采样率。次要流采样的范围可以设置为从大于 0.01.0(所有日志,默认)。如需了解详情,请参阅日志采样和处理
  • LOGGING_METADATA:您要包含在日志中的元数据注解:
    • 使用 INCLUDE_ALL_METADATA 可以包含所有元数据注解(默认值)。
    • 使用 EXCLUDE_ALL_METADATA 可以排除所有元数据注解。
    • 使用 CUSTOM_METADATA 可以包含元数据字段的自定义列表。如需指定元数据字段,请使用 metadataFields 参数:
      • metadataFields: METADATA_FIELDS:将 METADATA_FIELDS 替换为您要包含在日志中的元数据字段的英文逗号分隔列表。例如 src_instance,dst_instance。只有当 metadata 设置为 CUSTOM_METADATA 时才能设置此项。

您可以为单个 Cloud VPN 隧道添加多项 VPC 流日志配置。每个 VPC 流日志配置都会生成一组单独的流日志。

查看 VPC 流日志配置状态

您可以查看以下信息:

  • 哪些子网启用了 VPC 流日志
  • 哪些 VLAN 连接和 Cloud VPN 隧道启用了 VPC 流日志(预览版)

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

您可以检查 VPC 网络中的哪些子网启用了 VPC 流日志。如需查看 Google Cloud 项目中启用了 VPC 流日志的所有子网,请参阅查看 VPC 流日志配置

控制台

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

    进入 VPC 网络页面

  2. 点击要查看子网的 VPC 网络。

  3. 点击子网标签页,然后查看流日志列,了解日志记录功能是处于开启还是关闭状态。

gcloud

运行以下命令:

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

替换以下内容:

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

查看项目中的哪些连接和隧道启用了 VPC 流日志

您可以检查 Google Cloud 项目中的哪些 VLAN 连接和 Cloud VPN 隧道启用了 VPC 流日志。如需查看 Google Cloud 项目中 VLAN 连接和 Cloud VPN 隧道的所有 VPC 流日志配置,请参阅查看 VPC 流日志配置

控制台

在 Google Cloud 控制台中,执行以下操作:

  • 如需查看哪些 VLAN 连接启用了 VPC 流日志,请执行以下操作:

    1. 前往互连页面。

      前往“互连”

    2. 点击 VLAN 连接标签页,然后查看流日志列,了解日志记录功能是处于开启还是关闭状态。

  • 如需查看哪些 Cloud VPN 隧道启用了 VPC 流日志,请执行以下操作:

    1. 前往 VPN 页面。

      转到 VPN

    2. 点击 Cloud VPN 隧道标签页,然后查看流日志列,了解日志记录功能是处于开启还是关闭状态。

查看 VPC 流日志配置

为子网、VLAN 连接或 Cloud VPN 隧道配置 VPC 流日志时,Google Cloud 会使用您设置的配置值为子网、VLAN 连接或 VPN 隧道创建 VPC 流日志配置。单个 VLAN 连接或 Cloud VPN 隧道可以有一项或多项 VPC 流日志配置。启用了 VPC 流日志的子网只能有一项 VPC 流日志配置。

您可以通过检查 VPC 流日志配置的状态来查看哪些 VLAN 连接和 Cloud VPN 隧道启用或停用了流日志。如果 VPC 流日志配置的状态为“开启”,则表示使用此配置的 VLAN 连接或 Cloud VPN 隧道的流日志处于开启状态。您无法关闭子网的 VPC 流日志配置,只能将其删除。

控制台

  1. 在 Google Cloud 控制台中,前往 VPC 流日志页面。

    前往 VPC 流日志

  2. 点击子网VLAN 连接VPN 隧道标签页。

    • 子网列出了具有活跃 VPC 流日志配置的子网。
    • VLAN 连接列出了具有活跃或暂停的 VPC 流日志配置的 Cloud Interconnect VLAN 连接。
    • VPN 隧道列出了具有活跃或暂停的 VPC 流日志配置的 Cloud VPN 隧道。

gcloud

如需查看 VLAN 连接和 Cloud VPN 隧道的 VPC 流日志配置,请使用 gcloud beta network-management vpc-flow-logs-configs listgcloud beta network-management vpc-flow-logs-configs describe 命令。

运行下列其中一个命令:

  • 如需查看 Google Cloud 项目中的所有 VPC 流日志配置,请运行以下命令:

    gcloud beta network-management vpc-flow-logs-configs list --location=global
    
  • 如需查看单个 VPC 流日志配置,请运行以下命令:

    gcloud beta network-management vpc-flow-logs-configs describe CONFIG_NAME \
        --location=global
    

    CONFIG_NAME 替换为您要查看的 VPC 流日志配置的名称。

API

如需查看 Google Cloud 项目中 VLAN 连接和 Cloud VPN 隧道的所有 VPC 流日志配置,请使用 projects.locations.vpcFlowLogsConfigs.list 方法

GET https://networkmanagement.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/vpcFlowLogsConfigs

如需查看单个 VPC 流日志配置,请使用 projects.locations.vpcFlowLogsConfigs.get 方法

GET https://networkmanagement.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/vpcFlowLogsConfigs/CONFIG_NAME

替换以下内容:

  • PROJECT_ID:包含您要查看的一项或多项 VPC 流日志配置的 Google Cloud 项目的 ID。
  • CONFIG_NAME:VPC 流日志配置的名称。

更新 VPC 流日志配置

您可以修改日志采样参数。如需了解您可以控制的参数,请参阅日志采样和处理。如需自定义元数据字段,请使用 gcloud CLI 或 API。

更新子网的配置参数

控制台

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

    进入 VPC 网络页面

  2. 当前项目中的子网下,点击您要更新的子网。

  3. 点击修改

  4. 可选:调整以下任意设置:

    • 汇总时间间隔。 默认情况下,汇总时间间隔设置为 5 秒
    • 是否配置日志过滤。默认情况下,仅保留与过滤条件匹配的日志处于取消选中状态。
    • 是否在最终日志条目中包含元数据。默认情况下,元数据注解包括所有字段。
    • 次要采样率50% 表示系统会保留主要流日志采样流程生成的一半条目。您无法配置主要流日志采样率。如需了解详情,请参阅日志采样和处理
  5. 点击保存

或者,您可以通过使用 VPC 网络页面上当前项目中的子网下的  管理流日志菜单来更新 VPC 流日志配置参数。

gcloud

运行以下命令:

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

请替换以下内容:

  • AGGREGATION_INTERVAL:该子网中流日志的汇总时间间隔。该时间间隔可以设置为以下任何值:5 秒(默认)、30 秒、1 分钟、5 分钟、10 分钟或 15 分钟。
  • SAMPLING_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 方法。

更新 VLAN 连接和 Cloud VPN 隧道的配置参数

控制台

  1. 在 Google Cloud 控制台中,前往 VPC 流日志页面。

    前往 VPC 流日志

  2. 选择 VLAN 连接VPN 隧道标签页:

    • 如需更新 VLAN 连接的 VPC 流日志参数,请选择 VLAN 连接
    • 如需更新 Cloud VPN 隧道的 VPC 流日志参数,请选择 VPN 隧道
  3. 选择您要更新的一项或多项 VPC 流日志配置,然后点击修改

  4. 可选:调整以下任意设置:

    • 汇总时间间隔。 默认情况下,汇总时间间隔设置为 5 秒
    • 是将 VPC 流日志配置的状态设置为开启还是关闭。开启状态表示所选 VPC 流日志配置处于活跃状态并生成流日志。
    • 是否配置日志过滤。默认情况下,仅保留与过滤条件匹配的日志处于取消选中状态。
    • 是否在最终日志条目中包含元数据。默认情况下,元数据注解包括所有字段。
    • 次要采样率100% 表示系统会保留主要流日志采样流程生成的所有条目。您无法配置主要流日志采样率。如需了解详情,请参阅日志采样和处理
  5. 点击保存

或者,您可以通过使用互连页面上 VLAN 连接标签页和 VPN 页面上 VPN 隧道标签页中的  管理流日志菜单来更新 VPC 流日志配置参数。

gcloud

如需更新 VLAN 连接或 Cloud VPN 隧道的 VPC 流日志配置,请使用 gcloud beta network-management vpc-flow-logs-configs update 命令

使用以下一个或多个可选参数运行 gcloud beta network-management vpc-flow-logs-configs update 命令:

gcloud beta network-management vpc-flow-logs-configs update CONFIG_NAME \
    --location=global \
    [--interconnect-attachment=VLAN_ATTACHMENT | --vpn-tunnel=VPN_TUNNEL] \
    [--aggregation-interval=AGGREGATION_INTERVAL] \
    [--filter-expr=FILTER_EXPRESSION] \
    [--flow-sampling=SAMPLING_RATE] \
    [--metadata=LOGGING_METADATA] \
    [--state=STATE]

例如,如需更新汇总间隔参数,请运行以下命令:

gcloud beta network-management vpc-flow-logs-configs update CONFIG_NAME \
    --location=global \
    --aggregation-interval=AGGREGATION_INTERVAL

替换以下内容:

  • CONFIG_NAME:您要更新的 VPC 流日志配置的名称。该配置位于要使用的 VLAN_ATTACHMENTVPN_TUNNEL 所在的 Google Cloud 项目中。

如需更新可选参数,请替换以下内容:

  • VLAN_ATTACHMENTVPN_TUNNEL
    • 如需更新 VLAN 连接的 VPC 流日志配置,请使用以下格式指定 VLAN 连接:projects/PROJECT_ID/regions/REGION/interconnectAttachments/NAME
    • 如需更新 Cloud VPN 隧道的 VPC 流日志配置,请使用以下格式指定 Cloud VPN 隧道:projects/PROJECT_ID/regions/REGION/vpnTunnels/NAME
    • 替换以下内容:
      • PROJECT_ID:包含 VLAN 连接或 Cloud VPN 隧道的 Google Cloud 项目的 ID。
      • REGION:VLAN 连接或 Cloud VPN 隧道的区域。
      • NAME:VLAN 连接或 Cloud VPN 隧道的名称。
  • AGGREGATION_INTERVAL:由此配置生成的流日志的汇总时间间隔。此时间间隔可以设置为以下任意值:interval-5-sec(默认值)、interval-30-secinterval-1-mininterval-5-mininterval-10-mininterval-15-min
  • FILTER_EXPRESSION:定义要保留的日志的表达式。表达式的长度上限为 2,048 个字符。 如需了解详情,请参阅日志过滤
  • SAMPLING_RATE:次要流采样率。次要流采样的范围可以设置为从大于 0.01.0(所有日志,默认)。如需了解详情,请参阅日志采样和处理
  • LOGGING_METADATA:您要包含在日志中的元数据注解:
    • 使用 include-all-metadata 可以包含所有元数据注解(默认值)。
    • 使用 exclude-all-metadata 可以排除所有元数据注解。
    • 使用 custom-metadata 可以包含元数据字段的自定义列表。如需指定元数据字段,请使用 --metadata-fields 参数:
      • --metadata-fields=METADATA_FIELDS:将 METADATA_FIELDS 替换为您要包含在日志中的元数据字段的英文逗号分隔列表。例如 src_instance,dst_instance。只有当 metadata 设置为 custom-metadata 时才能设置此项。
  • STATE:VPC 流日志配置的状态。可以是 enabled(默认值)或 disabled

API

如需更新 VPC 流日志配置,请使用 projects.locations.vpcFlowLogsConfigs.patch 方法。如需了解您可以修改的字段,请参阅 REST 资源:projects.locations.vpcFlowLogsConfigs

更新 VLAN 连接或 Cloud VPN 隧道的 VPC 流日志配置:

PATCH https://networkmanagement.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/vpcFlowLogsConfigs/CONFIG_NAME?updateMask=FIELDS
{
  ...fields to modify
}

替换以下内容:

  • PROJECT_ID:包含 VPC 流日志配置的 Google Cloud 项目的 ID。此 ID 与要使用此配置的 VLAN 连接或 Cloud VPN 隧道的项目 ID 相同。
  • CONFIG_NAME:您要更新的 VPC 流日志配置的名称。
  • FIELDS:您要更新的字段的名称(以英文逗号分隔)。例如:aggregationInterval,flowSampling,metadata

例如,如需更新 my-project 中 VPC 流日志配置 my-configaggregationInterval 字段,请使用以下 API 调用:

PATCH https://networkmanagement.googleapis.com/v1beta1/projects/my-project/locations/global/vpcFlowLogsConfigs/my-config?updateMask=aggregationInterval
{
  aggregationInterval:AGGREGATION_INTERVAL
}

AGGREGATION_INTERVAL 替换为此参数的任何受支持值。

停止日志收集

您可以为子网停用 VPC 流日志,这会停止日志收集并删除其 VPC 流日志配置。

您可以通过关闭所有活跃 VPC 流日志配置来暂停 VLAN 连接或 Cloud VPN 隧道的日志收集。您无法暂停子网的日志收集。

如果您不再需要 VPC 流日志配置,可以删除该配置。日志收集会停止,并且该配置会被删除。

为子网停用 VPC 流日志

控制台

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

    进入 VPC 网络页面

  2. 点击要更新的子网。

  3. 点击修改

  4. 流日志字段中,选择关闭

  5. 点击保存

gcloud

运行以下命令:

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 方法。

关闭 VPC 流日志配置

控制台

  1. 在 Google Cloud 控制台中,前往 VPC 流日志页面。

    前往 VPC 流日志

  2. 选择 VLAN 连接VPN 隧道标签页:

    • 如需为 VLAN 连接关闭 VPC 流日志配置,请选择 VLAN 连接
    • 如需为 Cloud VPN 隧道关闭 VPC 流日志配置,请选择 VPN 隧道
  3. 选择您要关闭的一项或多项 VPC 流日志配置,然后将配置状态更改为关闭全部关闭。只有当您的选择同时包含活跃和不活跃的 VPC 流日志配置时,更改配置状态菜单中的全部关闭选项才会显示。

gcloud

如需暂停 VPC 流日志配置的日志收集,请使用 gcloud beta network-management vpc-flow-logs-configs update 命令

运行以下命令:

gcloud beta network-management vpc-flow-logs-configs update CONFIG_NAME \
    --location=global \
    --state=disabled

CONFIG_NAME 替换为您要更新的 VPC 流日志配置的名称。该配置位于与要为其使用该配置的 VLAN 连接或 Cloud VPN 隧道位于同一 Google Cloud 项目中。

API

如需暂停 VPC 流日志配置的日志收集,请使用 projects.locations.vpcFlowLogsConfigs.patch 方法

暂停 VPC 流日志配置的日志收集:

PATCH https://networkmanagement.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/vpcFlowLogsConfigs/CONFIG_NAME?updateMask=state
{
  "state": "DISABLED"
}

替换以下内容:

  • PROJECT_ID:包含 VPC 流日志配置的 Google Cloud 项目的 ID。此 ID 与要使用此配置的 VLAN 连接或 Cloud VPN 隧道的项目 ID 相同。
  • CONFIG_NAME:您要更新的 VPC 流日志配置的名称。

删除 VPC 流日志配置

控制台

  1. 在 Google Cloud 控制台中,前往 VPC 流日志页面。

    前往 VPC 流日志

  2. 选择子网VLAN 连接VPN 隧道标签页:

    • 如需删除子网的 VPC 流日志配置,请选择子网
    • 如需删除 VLAN 连接的 VPC 流日志配置,请选择 VLAN 连接
    • 如需删除 Cloud VPN 隧道的 VPC 流日志配置,请选择 VPN 隧道
  3. 选择您要删除的一项或多项 VPC 流日志配置,然后点击删除

gcloud

如需删除 VLAN 连接或 Cloud VPN 隧道的 VPC 流日志配置,请使用 gcloud beta network-management vpc-flow-logs-configs delete 命令

运行以下命令:

gcloud beta network-management vpc-flow-logs-configs delete CONFIG_NAME \
    --location=global

CONFIG_NAME 替换为您要删除的 VPC 流日志配置的名称。

API

如需删除 VLAN 连接或 Cloud VPN 隧道的 VPC 流日志配置,请使用 projects.locations.vpcFlowLogsConfigs.delete 方法

DELETE https://networkmanagement.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/vpcFlowLogsConfigs/CONFIG_NAME

替换以下内容:

  • PROJECT_ID:包含您要删除的 VPC 流日志配置的 Google Cloud 项目的 ID。
  • CONFIG_NAME:VPC 流日志配置的名称。

问题排查

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

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

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

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

后续步骤