Configura los registros de flujo de VPC

En esta página, se describe cómo configurar los registros de flujo de VPC. Se supone que conoces los conceptos descritos en Registros de flujo de VPC y Acerca de los registros de flujo de VPC.

Habilita los registros de flujo de VPC

Cuando habilitas los registros de flujo de VPC, se habilita el registro en todas las VMs de una subred. Sin embargo, puedes reducir la cantidad de información que se escribe en el registro. Para más detalles sobre los parámetros que puedes controlar, consulta Muestreo y procesamiento de registros.

Para personalizar los campos de metadatos o configurar el filtrado de registros, usa la Google Cloud CLI o su API.

Habilita los registros de flujo de VPC cuando crees una subred

Consola

  1. En la consola de Google Cloud, ve a la página Redes de VPC.

    Ir a las redes de VPC

  2. Haz clic en la red en la que quieres agregar una subred.

  3. Haz clic en Agregar subred.

  4. En Registros de flujo, selecciona Activado.

  5. Si deseas ajustar el muestreo y la agregación de registros, haz clic en Configurar registros y ajusta cualquiera de las siguientes opciones:

    • El Intervalo de agregación
    • Indica si se deben incluir metadatos en las entradas de registro finales. De forma predeterminada, Incluir metadatos incluye todos los campos.
    • La tasa de muestreo. 100% significa que se conservan todas las entradas.
  6. Propaga los demás campos como corresponda.

  7. Haz clic en Agregar.

gcloud

  1. En la consola de Google Cloud, activa Cloud Shell.

    Activar Cloud Shell

    En la parte inferior de la consola de Google Cloud, se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

  2. Ejecuta el siguiente comando:

    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]
    

    Reemplaza lo siguiente:

    • AGGREGATION_INTERVAL: el intervalo de agregación para los registros de flujo en esa subred. El intervalo se puede establecer en cualquiera de las siguientes opciones: 5 s (predeterminado), 30 s, 1 min, 5 min, 10 min o 15 min.
    • SAMPLE_RATE: La tasa de muestreo de flujo. El muestreo de flujo se puede establecer desde 0.0 (sin muestreo) hasta 1.0 (todos los registros). El valor predeterminado es 0.5.
    • FILTER_EXPRESSION: Es una expresión que define qué registros deseas conservar. La expresión tiene un límite de 2,048 caracteres. Para obtener más detalles, consulta Filtrado de registros.
    • LOGGING_METADATA: Las anotaciones de metadatos que deseas incluir en los registros:

      • Usa include-all para incluir todas las anotaciones de metadatos.
      • Usa exclude-all para excluir todas las anotaciones de metadatos (predeterminado).
      • Usa custom para incluir una lista personalizada de los campos de metadatos que especifiques en METADATA_FIELDS.
    • METADATA_FIELDS: una lista separada por comas de los campos de metadatos que deseas incluir en los registros. Por ejemplo, src_instance,dst_instance solo se puede configurar si LOGGING_METADATA se establece como custom.

API

Habilita los registros de flujo de VPC cuando crees una nueva subred.

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"
}

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto en el que se creará la subred.
  • REGION: La región en la que se creará la subred.
  • AGGREGATION_INTERVAL: El intervalo de agregación para los registros de flujo en la subred. El intervalo se puede establecer en cualquiera de las siguientes opciones: INTERVAL_5_SEC, INTERVAL_30_SEC, INTERVAL_1_MIN, INTERVAL_5_MIN, INTERVAL_10_MIN o INTERVAL_15_MIN.
  • SAMPLING_RATE: La tasa de muestreo de flujo. El muestreo de flujo se puede establecer desde 0.0 (sin muestreo) hasta 1.0 (todos los registros). El valor predeterminado es .0.5.
  • EXPRESSION: La expresión de filtro que usas para filtrar qué registros se escriben. La expresión tiene un límite de 2,048 caracteres. Para obtener más detalles, consulta Filtrado de registros.
  • METADATA_SETTING: Las anotaciones de metadatos que deseas incluir en los registros:

    • Usa INCLUDE_ALL_METADATA para incluir todas las anotaciones de metadatos.
    • Usa EXCLUDE_ALL_METADATA para excluir todas las anotaciones de metadatos (predeterminado).
    • Usa custom para incluir una lista personalizada de los campos de metadatos que especifiques en METADATA_FIELDS.
  • METADATA_FIELDS: Los campos de metadatos que deseas capturar cuando configuras metadata: CUSTOM_METADATA. Esta es una lista de campos de metadatos separados por comas, como src_instance, src_vpc.project_id.

  • IP_RANGE: El rango de direcciones IP internas principal de la subred.

  • NETWORK_URL: La URL de la red de VPC en la que se creará la subred.

  • SUBNET_NAME: Es un nombre de la subred.

Para obtener más información, consulta el método subnetworks.insert.

Terraform

Puedes usar un módulo de Terraform para crear una subred y una red de VPC en modo personalizado.

En el siguiente ejemplo, se crean tres subredes de la siguiente manera:

  • subnet-01 tiene inhabilitados los registros de flujo de VPC. Cuando creas una subred, los registros de flujo de VPC se inhabilitan, a menos que los habilites de manera explícita.
  • subnet-02 tiene habilitados los registros de flujo de VPC con la configuración de registro de flujo predeterminada.
  • subnet-03 tiene habilitados los registros de flujo de VPC con algunos parámetros de configuración personalizados.
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"
    }
  ]
}

Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.

Habilita los registros de flujo de VPC en una subred existente

Consola

  1. En la consola de Google Cloud, ve a la página Redes de VPC.

    Ir a las redes de VPC

  2. Haz clic en la subred que quieres actualizar.

  3. Haz clic en Edit.

  4. En Registros de flujo, selecciona Activado.

  5. Si deseas ajustar el muestreo y la agregación de registros, haz clic en Configurar registros y ajusta cualquiera de las siguientes opciones:

    • El Intervalo de agregación
    • Indica si se deben incluir metadatos en las entradas de registro finales. De forma predeterminada, Incluir metadatos incluye todos los campos.
    • La tasa de muestreo. 100% significa que se conservan todas las entradas.
  6. Haz clic en Guardar.

gcloud

  1. En la consola de Google Cloud, activa Cloud Shell.

    Activar Cloud Shell

    En la parte inferior de la consola de Google Cloud, se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

  2. Ejecuta el siguiente comando:

    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]
    

    Reemplaza lo siguiente:

    • AGGREGATION_INTERVAL: el intervalo de agregación para los registros de flujo en esa subred. El intervalo se puede establecer en cualquiera de las siguientes opciones: 5 s (predeterminado), 30 s, 1 min, 5 min, 10 min o 15 min.
    • SAMPLE_RATE: La tasa de muestreo de flujo. El muestreo de flujo se puede establecer desde 0.0 (sin muestreo) hasta 1.0 (todos los registros). El valor predeterminado es 0.5.
    • FILTER_EXPRESSION: Es una expresión que define qué registros deseas conservar. La expresión tiene un límite de 2,048 caracteres. Para obtener más detalles, consulta Filtrado de registros.
    • LOGGING_METADATA: Las anotaciones de metadatos que deseas incluir en los registros:

      • Usa include-all para incluir todas las anotaciones de metadatos.
      • Usa exclude-all para excluir todas las anotaciones de metadatos (predeterminado).
      • Usa custom para incluir una lista personalizada de los campos de metadatos que especifiques en METADATA_FIELDS.
    • METADATA_FIELDS: una lista separada por comas de los campos de metadatos que deseas incluir en los registros. Por ejemplo, src_instance,dst_instance solo se puede configurar si LOGGING_METADATA se establece como custom.

API

Habilita los registros de flujo de VPC en una subred existente.

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

Reemplaza lo siguiente:

Para obtener más información, consulta el método subnetworks.patch.

Consulta el volumen de registro estimado para las subredes existentes

La consola de Google Cloud proporciona una estimación del volumen de registro para las subredes existentes, que luego puedes usar para estimar el costo de habilitar los registros de flujo. La estimación se basa en los flujos capturados en intervalos de 5 segundos para la subred en los últimos 7 días. Además, el tamaño de cada registro depende de si habilitas las anotaciones de metadatos.

Consola

  1. En la consola de Google Cloud, ve a la página Redes de VPC.

    Ir a las redes de VPC

  2. Haz clic en la subred cuyos costos deseas calcular.

  3. Haz clic en Edit.

  4. En Registros de flujo, selecciona Activado.

  5. Haz clic en Configurar registros.

  6. Consulta Registros estimados generados por día para ver la estimación.

  7. Haz clic en Cancelar para que no se guarde ninguno de tus cambios.

Visualiza qué subredes tienen habilitados los registros de flujo de VPC

Puedes verificar qué subredes en una red tienen habilitados los registros de flujo de VPC.

Consola

  1. En la consola de Google Cloud, ve a la página Redes de VPC.

    Ir a las redes de VPC

  2. Haz clic en la red de VPC en la que deseas ver las subredes.

  3. Haz clic en la pestaña Subredes y consulta la columna Registros de flujo para ver si el registro está activado o desactivado.

gcloud

  1. En la consola de Google Cloud, activa Cloud Shell.

    Activar Cloud Shell

    En la parte inferior de la consola de Google Cloud, se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

  2. Ejecuta el siguiente comando:

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

    Reemplaza lo siguiente:

    • PROJECT_ID es el ID del proyecto que consultas.
    • NETWORK es el nombre de la red que contiene las subredes.

Actualiza los parámetros de registros de flujo de VPC

Puedes modificar los parámetros de muestreo de registros. Consulta Muestreo y procesamiento de registros para obtener más información de los parámetros que puedes controlar.

Para personalizar los campos de metadatos o configurar el filtrado de registros, usa la API de gcloud o CLI.

Consola

  1. En la consola de Google Cloud, ve a la página Redes de VPC.

    Ir a las redes de VPC

  2. Haz clic en la subred que quieres actualizar.

  3. Haz clic en Editar.

  4. Si deseas ajustar el muestreo y la agregación de registros, haz clic en Configurar registros y ajusta cualquiera de las siguientes opciones:

    • El Intervalo de agregación
    • Indica si se deben incluir metadatos en las entradas de registro finales. De forma predeterminada, Incluir metadatos incluye todos los campos.
    • La tasa de muestreo. 100% significa que se conservan todas las entradas.
  5. Haz clic en Guardar.

gcloud

  1. En la consola de Google Cloud, activa Cloud Shell.

    Activar Cloud Shell

    En la parte inferior de la consola de Google Cloud, se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

  2. Ejecuta el siguiente comando:

    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] \
    

    Reemplaza lo siguiente:

    • AGGREGATION_INTERVAL: El intervalo de agregación para los registros de flujo en esa subred. El intervalo se puede establecer en cualquiera de las siguientes opciones: 5 s (predeterminado), 30 s, 1 min, 5 min, 10 min o 15 min.
    • SAMPLE_RATE: La tasa de muestreo de flujo. El muestreo de flujo se puede establecer desde 0.0 (sin muestreo) hasta 1.0 (todos los registros). El valor predeterminado es 0.5.
    • FILTER_EXPRESSION: Una expresión que define qué registros deseas conservar. La expresión tiene un límite de 2,048 caracteres. Para obtener más detalles, consulta Filtrado de registros.
    • LOGGING_METADATA: Las anotaciones de metadatos que deseas incluir en los registros:

      • Usa include-all para incluir todas las anotaciones de metadatos.
      • Usa exclude-all para excluir todas las anotaciones de metadatos (predeterminado).
      • Usa custom para incluir una lista personalizada de los campos de metadatos que especifiques en METADATA_FIELDS.
    • METADATA_FIELDS: una lista separada por comas de los campos de metadatos que deseas incluir en los registros. Por ejemplo, src_instance,dst_instance solo se puede configurar si LOGGING_METADATA se establece como custom.

API

Modifica los campos de muestreo de registros para actualizar los comportamientos de los registros de flujo de VPC.

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

Reemplaza lo siguiente:

Para obtener más información, consulta el método subnetworks.patch.

Inhabilita los registros de flujo de VPC en una subred

Consola

  1. En la consola de Google Cloud, ve a la página Redes de VPC.

    Ir a las redes de VPC

  2. Haz clic en la subred que quieres actualizar.

  3. Haz clic en Edit.

  4. En Registros de flujo, selecciona Desactivado.

  5. Haz clic en Guardar.

gcloud

  1. En la consola de Google Cloud, activa Cloud Shell.

    Activar Cloud Shell

    En la parte inferior de la consola de Google Cloud, se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

  2. Ejecuta el siguiente comando:

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

API

Inhabilita los registros de flujo de VPC en una subred para dejar de recopilar registros.

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

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto en el que está la subred.
  • REGION: La región en la que se encuentra la subred.
  • SUBNET_NAME: Es el nombre de la subred existente.
  • SUBNET_FINGERPRINT: Es el ID de huella digital de la subred existente, que se proporciona cuando describes una subred.

Para obtener más información, consulta el método subnetworks.patch.

Soluciona problemas

Los registros de flujo parecen estar inhabilitados aunque los hayas habilitado

  • Cuando configuras una subred de solo proxy para balanceador de cargas de aplicaciones internos y usas el comando gcloud compute networks subnets para habilitar los registros de flujo de VPC, parece que el comando se ejecuta con éxito, pero los registros de flujo en realidad no están habilitados. La marca --enable-flow-logs no se aplica cuando también incluyes la marca --purpose=INTERNAL_HTTPS_LOAD_BALANCER.

    Si usas la consola de Google Cloud o la API para habilitar los registros de flujo, verás el mensaje de error: “Valor no válido para el campo ‘resource.enableFlowLogs’: ‘true’. Campo no válido configurado en la subred con el propósito INTERNAL_HTTPS_LOAD_BALANCEER”.

    Debido a que las subredes de solo proxy no tienen VM, no admiten los registros de flujo de VPC. Este es el comportamiento esperado.

¿Qué sigue?