Acerca de los registros de flujo de VPC

En esta página se describe el formato de los registros de flujo de VPC, incluidos los campos base y de metadatos disponibles. También se explica cómo puedes usar el filtrado de registros para que solo se generen los registros que cumplan determinados criterios.

Formato de registro

Los registros de registro contienen campos base, que son los campos principales de cada registro de registro, y campos de metadatos que añaden información adicional. Los campos de metadatos se pueden omitir para ahorrar costes de almacenamiento.

Algunos campos de registro tienen un formato de varios campos, con más de un dato en un campo determinado. Por ejemplo, el campo connection tiene el formato IpConnection y contiene la dirección IP y el puerto de origen y de destino, además del protocolo, en un solo campo. Estos campos multifield se describen debajo de la tabla de formato de registro.

Los valores de los campos de metadatos no se basan en la ruta del plano de datos, sino que son aproximaciones y pueden faltar o ser incorrectos. A diferencia de los campos de metadatos, los valores de los campos base se toman directamente de los encabezados de los paquetes.

Campo Formato de campo Tipo de campo: metadatos básicos u opcionales
conexión IpConnection
Tupla de 5 elementos que describe el flujo.
Base
reportero cadena
El lado que ha informado del flujo.
  • En el caso de las máquinas virtuales, el valor de reporter puede ser SRC o DEST.
  • En el caso de las pasarelas, como las vinculaciones de VLAN de Cloud Interconnect y los túneles de Cloud VPN, el reporter puede ser SRC_GATEWAY o DEST_GATEWAY.
Base
rtt_msec int64
Latencia medida durante el intervalo de tiempo. Este campo se rellena de la siguiente manera:
  • Se rellena con el tráfico TCP que se comunica desde las VMs.
  • No se rellena en el caso de las vinculaciones de VLAN y los túneles de Cloud VPN.

La latencia medida es el tiempo transcurrido entre el envío de un SEQ y la recepción de un ACK correspondiente. La latencia es la suma del RTT de la red y el tiempo que tarda la aplicación.

Base
bytes_sent int64
Cantidad de bytes enviados del origen al destino.
Base
packets_sent int64
Número de paquetes enviados desde la fuente al destino.
Base
start_time string
Marca de tiempo (formato de cadena de fecha RFC 3339) del primer paquete observado durante el intervalo de tiempo agregado.
Base
end_time string
Marca de tiempo (formato de cadena de fecha RFC 3339) del último paquete observado durante el intervalo de tiempo agregado.
Base
Campos de metadatos de origen y destino
src_gateway GatewayDetails
Si el origen del flujo es un endpoint on-premise u otro endpoint de nube conectado a Google Cloud a través de una pasarela, como un adjunto de VLAN de Cloud Interconnect o un túnel de Cloud VPN, y se cumple alguna de las siguientes condiciones, este campo se rellena con los detalles de la pasarela:
  • La pasarela de origen es la que informa del flujo.
  • El destino del flujo es el reportero y se cumple alguna de las siguientes condiciones:
    • La puerta de enlace de origen está en el mismo proyecto que el destino del flujo.
    • Registros de flujo de VPC está configurado a nivel de organización y las anotaciones entre proyectos no están inhabilitadas.1
Metadatos
dest_gateway GatewayDetails
Si el destino del flujo es un endpoint on-premise u otro endpoint en la nube que está conectado a Google Cloud a través de una pasarela, como un adjunto de VLAN para Cloud Interconnect o un túnel de Cloud VPN, y se cumple alguna de las siguientes condiciones, este campo se rellena con los detalles de la pasarela:
  • La pasarela de destino es la que informa del flujo.
  • La fuente del flujo es el reportero y se cumple una de las siguientes condiciones:
    • La puerta de enlace de destino está en el mismo proyecto que el origen del flujo.
    • Registros de flujo de VPC está configurado a nivel de organización y las anotaciones entre proyectos no están inhabilitadas.1
Metadatos
src_gke_details GkeDetails
Si la fuente del flujo es un endpoint de Google Kubernetes Engine (GKE), este campo se rellena con los detalles del endpoint de GKE.
Metadatos
dest_gke_details GkeDetails
Si el destino del flujo es un endpoint de GKE, este campo se rellena con los detalles del endpoint de GKE.
Metadatos
src_google_service GoogleServiceDetails
Si la fuente del flujo es un servicio de Google, este campo se rellena con los detalles del servicio.
Metadatos
dest_google_service GoogleServiceDetails
Si el destino del flujo es un servicio de Google, este campo se rellena con los detalles del servicio.
Metadatos
src_instance InstanceDetails
Si la fuente del flujo es una VM ubicada en una red de VPC y se cumple alguna de las siguientes condiciones, este campo se rellena con los detalles de la instancia de VM:
  • La máquina virtual de origen es la que informa del flujo.
  • El destino del flujo es el reportero y se cumple alguna de las siguientes condiciones:
    • La VM de origen o la red de VPC a la que está conectada la VM de origen se encuentran en el mismo proyecto que el destino del flujo.
    • Registros de flujo de VPC está configurado a nivel de organización y las anotaciones entre proyectos no están inhabilitadas.1
Metadatos
dest_instance InstanceDetails
Si el destino del flujo es una VM ubicada en una red de VPC y se cumple alguna de las siguientes condiciones, este campo se rellena con los detalles de la instancia de VM.
  • La VM de destino es la que informa del flujo.
  • La fuente del flujo es el reportero y se cumple una de las siguientes condiciones:
    • La VM de destino o la red de VPC a la que está conectada la VM de destino se encuentran en el mismo proyecto que el origen del flujo.
    • Registros de flujo de VPC está configurado a nivel de organización y las anotaciones entre proyectos no están inhabilitadas.1
Metadatos
src_location GeographicDetails
Si el origen del flujo es una dirección IP pública fuera de la red de VPC, este campo se rellena con los metadatos de ubicación disponibles.
Metadatos
dest_location GeographicDetails
Si el destino del flujo es una dirección IP pública fuera de la red de VPC, este campo se rellena con los metadatos de ubicación disponibles.
Metadatos
src_vpc VpcDetails
Si el origen del flujo es una VM ubicada en una red de VPC y se cumple alguna de las siguientes condiciones, este campo se rellena con los detalles de la red de VPC:
  • La máquina virtual de origen es la que informa del flujo.
  • El destino del flujo es el reportero y se cumple alguna de las siguientes condiciones:
    • La VM de origen o la red de VPC a la que está conectada la VM de origen se encuentran en el mismo proyecto que el destino del flujo.
    • Registros de flujo de VPC está configurado a nivel de organización y las anotaciones entre proyectos no están inhabilitadas.1
Metadatos
dest_vpc VpcDetails
Si el destino del flujo es una VM ubicada en una red de VPC y se cumple alguna de las siguientes condiciones, este campo se rellena con los detalles de la red de VPC:
  • La VM de destino es la que informa del flujo.
  • La fuente del flujo es el reportero y se cumple una de las siguientes condiciones:
    • La VM de destino o la red de VPC a la que está conectada la VM de destino se encuentran en el mismo proyecto que el origen del flujo.
    • Registros de flujo de VPC está configurado a nivel de organización y las anotaciones entre proyectos no están inhabilitadas.1
Metadatos
Otros campos de metadatos
internet_routing_details InternetRoutingDetails
Si el flujo es entre Google Cloud e Internet, este campo se rellena con los detalles de la ruta. Solo está disponible para flujos de salida.
Metadatos
load_balancing LoadBalancingDetails
Si el flujo pasa por un balanceador de carga con una de las siguientes configuraciones, este campo se rellena con los detalles de Cloud Load Balancing:
  • El reportero del flujo es el cliente del balanceador de carga y el tipo de balanceador de carga es APPLICATION_LOAD_BALANCER, PROXY_NETWORK_LOAD_BALANCER, PASSTHROUGH_NETWORK_LOAD_BALANCER o PROTOCOL_FORWARDING.
  • El reportero del flujo es el backend del balanceador de carga y el tipo de balanceador de carga es PASSTHROUGH_NETWORK_LOAD_BALANCER o PROTOCOL_FORWARDING.
Metadatos
network_service NetworkServiceDetails
Si se define el encabezado Differentiated Services Code Point (DSCP), este campo se rellena con los detalles del servicio de red.
Metadatos
psc PrivateServiceConnectDetails
Si el flujo pasa por Private Service Connect en cualquiera de las siguientes configuraciones, este campo se rellena con los detalles de Private Service Connect:
  • El reportero del tráfico de Private Service Connect es un consumidor y usa un endpoint de Private Service Connect que tiene como destino un servicio publicado o APIs de Google globales.
  • El reportero del tráfico de Private Service Connect es un productor y usa un balanceador de carga de red de paso a través interno o un reenvío de protocolo interno.
Metadatos
rdma_traffic_type Cadena
Tipo de tráfico RDMA. Se rellena con el tráfico de GPU a GPU entre VMs. Puede ser GPUDirect-TCPXO o RoCE.
Metadatos
1 Si los registros de flujo de VPC están configurados a nivel de organización, de forma predeterminada, los registros de flujo entre proyectos incluyen detalles sobre ambos lados del flujo. Las anotaciones entre proyectos están disponibles para los flujos a través de la VPC compartida, el emparejamiento entre redes de VPC y Network Connectivity Center. Para obtener más información, consulta Anotaciones entre proyectos.

Formato de campo IpConnection

Campo Tipo Descripción
protocolo int32 Número de protocolo de IANA:
  • Se rellena en el caso de los flujos TCP, UDP, ICMP, ESP y GRE.
  • No se rellena en los flujos de RDMA.
src_ip cadena Dirección IP de origen. Se rellena en todos los flujos.
dest_ip cadena Dirección IP de destino. Se rellena en todos los flujos.
src_port int32 Puerto de origen:
  • Se rellena en los flujos TCP y UDP.
  • No se rellena en los flujos ICMP, ESP, GRE y RDMA
dest_port int32 Puerto de destino:
  • Se rellena en los flujos TCP y UDP.
  • No se rellena en los flujos ICMP, ESP, GRE y RDMA

Formato del campo GatewayDetails

Campo Tipo Descripción
project_id cadena Google Cloud ID del proyecto de la pasarela
ubicación cadena Región de la pasarela
name cadena Nombre de la pasarela
tipo cadena Tipo de la pasarela. Puede ser INTERCONNECT_ATTACHMENT o VPN_TUNNEL.
vpc VpcDetails Detalles de la red de VPC de la pasarela
interconnect_name cadena Si el tipo de pasarela es INTERCONNECT_ATTACHMENT, este campo se rellena con el nombre de la conexión de Cloud Interconnect en la que se ha configurado la vinculación de VLAN.
interconnect_project_number int64 Si el tipo de pasarela es INTERCONNECT_ATTACHMENT, este campo se rellena con el número de proyecto de la conexión de Cloud Interconnect en la que se ha configurado la vinculación de VLAN. Google Cloud

Formato del campo GkeDetails

Campo Tipo Descripción
clúster ClusterDetails Metadatos del clúster de GKE
pod PodDetails Metadatos de los pods de GKE, que se rellenan cuando el origen o el destino del tráfico es un pod
servicio ServiceDetails Metadatos de servicio de GKE, rellenados solo en los puntos de conexión de servicio. El registro contiene hasta dos servicios. Si hay más de dos servicios relevantes, este campo contiene un solo servicio con un marcador especial MANY_SERVICES.

Formato del campo ClusterDetails

Campo Tipo Descripción
cluster_location cadena Ubicación del clúster. Puede ser una zona o una región, en función de si el clúster es zonal o regional.
cluster_name cadena Nombre del clúster de GKE.

Formato del campo PodDetails

Campo Tipo Descripción
pod_name cadena Nombre del pod
pod_namespace cadena Espacio de nombres del pod
pod_workload WorkloadDetails Metadatos sobre el recurso de carga de trabajo de nivel superior que controla el pod.
Formato del campo WorkloadDetails
Campo Tipo Descripción
workload_name cadena Nombre del controlador de carga de trabajo de nivel superior
workload_type cadena Tipo de controlador de carga de trabajo de nivel superior. Puede ser DEPLOYMENT, REPLICA_SET, STATEFUL_SET, DAEMON_SET, JOB, CRON_JOB o REPLICATION_CONTROLLER.

Formato del campo ServiceDetails

Campo Tipo Descripción
service_name cadena Nombre del servicio. Si hay más de dos servicios relevantes, el campo se define como un marcador especial MANY_SERVICES.
service_namespace cadena Espacio de nombres del servicio

Ejemplo:

Si hay dos servicios, el campo Servicio tendrá este aspecto:

service: [
 0: {
  service_name: "my-lb-service"
  service_namespace: "default"
 }
 1: {
  service_name: "my-lb-service2"
  service_namespace: "default"
 }
]

Si hay más de dos servicios, el campo Servicio tendrá este aspecto:

service: [
 0: {
  service_name: "MANY_SERVICES"
 }
]

Formato del campo GoogleServiceDetails

Campo Tipo Descripción
tipo cadena

El tipo de servicio, GOOGLE_API o GOOGLE_VPC_HOSTED_SERVICE:

service_name cadena

Nombre del servicio. Por ejemplo, pubsub.googleapis.com.

Limitaciones:

  • Puede que falte el nombre del servicio en las solicitudes a las APIs de Google que tardan más de 60 segundos en completarse.
  • Si una VM o una pasarela usa la misma tupla de 5 elementos para conectarse a varios servicios, el registro de log contiene el nombre de solo uno de los servicios, seleccionado de forma aleatoria.
conectividad cadena

Método de acceso. En el caso del tipo GOOGLE_API, el campo de conectividad puede ser uno de los siguientes:

  • PUBLIC_IP, si se accede a la API desde una VM con una dirección IP externa
  • PRIVATE_GOOGLE_ACCESS o DIRECT_CONNECTIVITY, si se accede a la API a través de Acceso privado a Google
  • PRIVATE_SERVICE_CONNECT_FOR_GOOGLE_APIS, si se accede a la API a través de endpoints de Private Service Connect

En el caso del tipo GOOGLE_VPC_HOSTED_SERVICE, el campo de conectividad puede ser uno de los siguientes:

  • PUBLIC_IP, si se accede al servicio a través de conectividad de IP pública
  • PRIVATE_SERVICES_ACCESS, si se accede al servicio a través del acceso privado a servicios
  • PRIVATE_SERVICE_CONNECT_ENDPOINT o PRIVATE_SERVICE_CONNECT_INTERFACE, si se accede al servicio a través de Private Service Connect
private_domain cadena

Dominio privado o paquete de APIs de Private Service Connect. El campo private_domain puede ser uno de los siguientes:

  • En el caso del método de acceso PRIVATE_GOOGLE_ACCESS: private.googleapis.com o restricted.googleapis.com
  • En el caso del método de acceso DIRECT_CONNECTIVITY: restricted.googleapis.com
  • En el caso del método de acceso PRIVATE_SERVICE_CONNECT_FOR_GOOGLE_APIS : all-apis o vpc-sc

Formato de campo InstanceDetails

Campo Tipo Descripción
project_id cadena ID del Google Cloud proyecto que contiene el recurso de VM
región cadena Región de la VM
vm_name cadena Nombre de instancia de la VM
zona cadena Zona de la VM
managed_instance_group InstanceGroupDetails Si la VM forma parte de un grupo de instancias gestionado, este campo se rellena con los detalles del grupo de instancias.

Formato del campo InstanceGroupDetails

Campo Tipo Descripción
name cadena Nombre del grupo de instancias
región cadena Si el grupo de instancias es regional, este campo se rellena con la región del grupo de instancias.
zona cadena Si el grupo de instancias es zonal, este campo se rellena con la zona del grupo de instancias.

Formato del campo GeographicDetails

Campo Tipo Descripción
asn int32 El ASN de la red externa a la que pertenece este endpoint.
ciudad cadena Ciudad para endpoints externos
continente cadena Continente de los endpoints externos
país cadena País de los endpoints externos, representado como códigos de país ISO 3166-1 alfa-3.
región cadena Región de los endpoints externos

Formato del campo VpcDetails

Campo Tipo Descripción
project_id cadena ID del proyecto Google Cloud que contiene la VPC. En una configuración de VPC compartida, project_id es el ID del proyecto host.
subnetwork_name cadena Nombre de la subred, si procede
subnetwork_region cadena Región de la subred, si procede
vpc_name cadena Nombre de la red

Formato del campo InternetRoutingDetails

Campo Tipo Descripción
egress_as_path AsPath Lista de rutas de AS relevantes. Si hay varias rutas de AS disponibles para el flujo, el campo puede contener más de una ruta de AS.

Formato de campo AsPath

Campo Tipo Descripción
as_details AsDetails Lista de detalles de AS de todos los sistemas de la ruta de AS. La lista empieza con el primer sistema autónomo que es externo a la red de Google Cloudy termina con el sistema autónomo al que pertenece la dirección IP remota.

Formato del campo AsDetails

Campo Tipo Descripción
asn uint32 El número de sistema autónomo (ASN) del SA

Formato del campo LoadBalancingDetails

Campo Tipo Descripción
forwarding_rule_project_id cadena Google Cloud ID de proyecto de la regla de reenvío
reportero cadena Reportero de Cloud Load Balancing. Puede ser CLIENT o BACKEND.
  • Si el reportero del flujo es el cliente del balanceador de carga, este campo se define como CLIENT.
  • Si el reportero del flujo es el backend del balanceador de carga, este campo se define como BACKEND.
tipo cadena Tipo de balanceador de carga. Puede ser APPLICATION_LOAD_BALANCER, PROXY_NETWORK_LOAD_BALANCER, PASSTHROUGH_NETWORK_LOAD_BALANCER o PROTOCOL_FORWARDING.
scheme cadena Esquema del balanceador de carga. Puede ser EXTERNAL_MANAGED, INTERNAL_MANAGED, EXTERNAL, INTERNAL o INTERNAL_SELF_MANAGED.
url_map_name cadena Nombre del mapa de URLs. Se rellena si el tipo de balanceador de carga es APPLICATION_LOAD_BALANCER.
forwarding_rule_name cadena Nombre de la regla de reenvío
backend_service_name cadena Nombre del servicio de backend. Se rellena si el reportero es BACKEND y el tipo de balanceador de carga es PASSTHROUGH_NETWORK_LOAD_BALANCER. Si el tipo de grupo de backend es TARGET_POOL, este campo no se rellena.
backend_group_name cadena Nombre del grupo de backend. Se rellena si el reportero es BACKEND y el tipo de balanceador de carga es PASSTHROUGH_NETWORK_LOAD_BALANCER.
backend_group_type cadena Tipo del grupo de backend. Puede ser INSTANCE_GROUP, NETWORK_ENDPOINT_GROUP o TARGET_POOL. Se rellena si el reportero es BACKEND y el tipo de balanceador de carga es PASSTHROUGH_NETWORK_LOAD_BALANCER.
backend_group_location cadena Ubicación del grupo de backend. Puede ser una zona o una región, en función de si el ámbito del grupo de backend es zonal o regional. Se rellena si el reportero es BACKEND y el tipo de balanceador de carga es PASSTHROUGH_NETWORK_LOAD_BALANCER. Si el tipo de grupo de backend es TARGET_POOL, este campo no se rellena.
vpc VpcDetails Detalles de la red de VPC del balanceador de carga

Formato del campo NetworkServiceDetails

Campo Tipo Descripción
dscp int32 Si el campo Servicios Diferenciados está presente en los encabezados de los paquetes, este campo se rellena con el valor DSCP.

Formato del campo PrivateServiceConnectDetails

Campo Tipo Descripción
reportero cadena Reportero de Private Service Connect. Puede ser CONSUMER o PRODUCER.
psc_endpoint PrivateServiceConnectEndpointDetails Detalles del endpoint. Se rellena si el denunciante es CONSUMER.
psc_attachment PrivateServiceConnectAttachmentDetails Detalles de la vinculación de servicio. Se rellena si el flujo de tráfico incluye un productor de Private Service Connect.

Formato del campo PrivateServiceConnectEndpointDetails

Campo Tipo Descripción
project_id cadena Google Cloud ID del proyecto del endpoint de Private Service Connect
región cadena Región del endpoint. No se rellena si el tipo de servicio de destino es GLOBAL_GOOGLE_APIS.
psc_connection_id cadena ID de conexión de Private Service Connect
target_service_type cadena Tipo de servicio de destino. Puede ser GLOBAL_GOOGLE_APIS o PUBLISHED_SERVICE.
vpc VpcDetails Detalles de la red de VPC del endpoint de Private Service Connect

Formato del campo PrivateServiceConnectAttachmentDetails

Campo Tipo Descripción
project_id cadena Google Cloud ID del proyecto del archivo adjunto de servicio
región cadena Región de la vinculación de servicio
vpc VpcDetails Detalles de la red de VPC del adjunto de servicio

Anotaciones de metadatos

Los registros de registro contienen campos base y campos de metadatos. En la sección Formato de registro se indica qué campos son de metadatos de tipo y cuáles son de tipo base. Todos los campos base se incluyen siempre. Puedes personalizar los campos de metadatos que quieras conservar.

  • Si seleccionas todos los metadatos, se incluirán todos los campos de metadatos del formato de registro de flujo de VPC en los registros de flujo. Cuando se añaden nuevos campos de metadatos al formato de registro, los registros de flujo incluyen automáticamente los nuevos campos.

  • Si no selecciona ningún metadato, se omitirán todos los campos de metadatos.

  • Si seleccionas metadatos personalizados, puedes especificar los campos de metadatos que quieras incluir por el campo principal, como src_vpc, o por sus nombres completos, como src_vpc.project_id.

    Cuando se añaden nuevos campos de metadatos al formato de registro, se excluyen de los registros de flujo, a menos que estén dentro de un campo principal que hayas especificado que se incluya.

    • Si especificas metadatos personalizados mediante campos principales, cuando se añadan nuevos campos de metadatos al formato de registro de ese campo principal, los registros de flujo incluirán automáticamente los nuevos campos.

    • Si especifica metadatos personalizados con el nombre completo del campo, los nuevos campos de metadatos que se añadan al campo principal se excluirán de los registros de flujo.

Para obtener información sobre cómo personalizar los campos de metadatos, consulta Habilitar registros de flujo de VPC o Actualizar la configuración de registros de flujo de VPC.

Anotaciones de metadatos de GKE

Los flujos que tienen un endpoint en un clúster de GKE se pueden anotar con anotaciones de metadatos de GKE, que pueden incluir detalles del clúster, el pod y el servicio del endpoint.

Anotaciones de servicio de GKE

El tráfico enviado a ClusterIP, NodePort o LoadBalancer puede recibir anotaciones de servicio. Si se envía a un NodePort o a un LoadBalancer, el flujo recibe la anotación de Service en ambos saltos de la conexión.

El tráfico enviado directamente al puerto de servicio de un pod se anota con una anotación de servicio en el endpoint de destino.

El tráfico enviado al puerto de servicio de un pod en el que el pod respalda más de un servicio en el mismo puerto de servicio se anota con varios servicios en el endpoint de destino. Esta opción está limitada a dos servicios. Si hay más, el endpoint se anotará con un marcador especial MANY_SERVICES.

Anotaciones de pods en el tráfico de Internet

El tráfico entre un pod e Internet no recibe anotaciones de pod de forma predeterminada. Los registros de flujo de VPC no pueden añadir anotaciones de pods porque, para que los paquetes lleguen a Internet, el agente de enmascaramiento traduce la dirección IP del pod a la dirección IP del nodo antes de que los registros de flujo de VPC vean el paquete.

Debido al enmascaramiento, las anotaciones de Pod solo se pueden ver si los destinos están en los destinos predeterminados sin enmascaramiento o en una lista nonMasqueradeCIDRs personalizada. Si incluyes destinos de Internet en una lista nonMasqueradeCIDRs personalizada, debes proporcionar una forma de traducir las direcciones IP de los pods internos antes de que se envíen a Internet. En los clústeres privados y no privados, puedes usar Cloud NAT. Consulta más detalles sobre la interacción con GKE.

Anotaciones entre proyectos

Si los registros de flujo de VPC están habilitados a nivel de organización, los flujos que atraviesen VPC compartida, emparejamiento entre redes de VPC y Network Connectivity Center se anotarán con anotaciones entre proyectos. Las anotaciones entre proyectos están habilitadas de forma predeterminada. Puedes inhabilitar estas anotaciones si quieres.

  • Si las anotaciones entre proyectos están habilitadas, los registros de registro de los flujos entre recursos de diferentes proyectos incluyen información sobre ambos lados del flujo.
  • Si las anotaciones entre proyectos están inhabilitadas, los registros de registro solo incluyen información sobre el reportero del flujo.

Si VPC Flow Logs está habilitado a nivel de proyecto, los flujos entre recursos de diferentes proyectos no se anotan con anotaciones entre proyectos.

Filtrado de registros

Cuando habilitas los registros de flujo de VPC, puedes definir un filtro basado en campos de metadatos y de base que solo conserve los registros que coincidan con el filtro. Todos los demás registros se descartan antes de escribirse en Logging.

Puede filtrar por cualquier subconjunto de campos de la sección Formato de registro, excepto por los siguientes:

  • rtt_msec
  • bytes_sent
  • packets_sent
  • start_time
  • end_time

El filtrado de registros de flujo de VPC usa CEL, un lenguaje de expresiones insertado para expresiones lógicas basadas en atributos. Las expresiones de filtro de los registros de flujo de VPC tienen un límite de 2048 caracteres. Para obtener más información, consulta Operadores lógicos de CEL admitidos.

Para obtener más información sobre CEL, consulta la introducción a CEL y la definición del lenguaje. La función de filtro de generación admite un subconjunto limitado de la sintaxis de CEL.

Para crear una configuración de registros de flujo de VPC que use el filtrado de registros, consulta Habilitar registros de flujo de VPC. Para configurar el filtrado de registros en una configuración de registros de flujo de VPC, consulta Actualizar la configuración de registros de flujo de VPC.

Operadores lógicos de CEL admitidos

Expresión Tipos admitidos Descripción
true, false Booleano Constantes booleanas

x == y

x != y

Booleano, Int, Cadena

Operadores de comparación

Ejemplo: connection.protocol == 6

x && y

x || y

Booleano

Operadores lógicos booleanos

Ejemplo: connection.protocol == 6 && src_instance.vm_name == "vm_1"

!x Booleano Negación
1, 2.0, 0, ... Entero Literales numéricos constantes
x + y Cadena Concatenación de cadenas
"foo", 'foo', ... Cadena Literal de cadena constante
x.lower() Cadena Devuelve el valor en minúsculas de la cadena.
x.upper() Cadena Devuelve el valor en mayúsculas de la cadena.
x.contains(y) Cadena Devuelve el valor "true" si la cadena contiene la subcadena especificada.
x.startsWith(y) Cadena Devuelve true si la cadena empieza por la subcadena especificada.
x.endsWith(y) Cadena Devuelve true si la cadena termina con la subcadena especificada.
inIpRange(X, Y) Cadena

Devuelve true si X es una IP e Y es un intervalo de IPs que contiene X.

Ejemplo: inIpRange("1.2.3.1", "1.2.3.0/24")

x.containsFieldValue(y) x: lista
y: mapa(cadena, cadena)

Devuelve true si la lista contiene un objeto con campos que coinciden con los pares clave-valor especificados.

Ejemplo: dest_gke_details.service.containsFieldValue({'service_name': 'service1', 'service_namespace': 'namespace1'})

has(x) Cadena

Devuelve el valor "true" si el campo está presente.

Ejemplos de filtros de registro

Si has habilitado los registros de flujo de VPC para una subred mediante la API de Compute Engine, usa el comando gcloud compute networks subnets update para configurar el filtrado (ejemplos 1-3).

Para el resto de las configuraciones de registros de flujo de VPC, usa el gcloud network-management vpc-flow-logs-configs updatecomando (ejemplos del 4 al 6). Las expresiones de filtro de los ejemplos 1 a 3 se pueden usar con el comando gcloud network-management vpc-flow-logs-configs update.

Ejemplo 1. Limita la recogida de registros a una VM específica llamada my-vm. En este caso, solo se registran los registros en los que el campo src_instance, según la fuente del tráfico, es my-vm o el campo dst_instance, según el destino del tráfico, es my-vm.

gcloud compute networks subnets update my-subnet \
    --logging-filter-expr="(src_instance.vm_name == 'my-vm' && reporter=='SRC') || (dest_instance.vm_name == 'my-vm' && reporter=='DEST')"

Ejemplo 2: Limita la recogida de registros a los paquetes cuyas direcciones IP de origen estén en la subred 10.0.0.0/8.

gcloud compute networks subnets update my-subnet \
    --logging-filter-expr="inIpRange(connection.src_ip, '10.0.0.0/8')"

Ejemplo 3: Limita la recogida de registros al tráfico externo a una red de VPC.

gcloud compute networks subnets update my-subnet \
    --logging-filter-expr '!(has(src_vpc.vpc_name) && has(dest_vpc.vpc_name))'

Ejemplo 4: Limita la recogida de registros a una vinculación de VLAN o un túnel VPN de Cloud de destino específicos, my-gateway.

gcloud network-management vpc-flow-logs-configs update my-config \
    --location=global \
    --filter-expr="dest_gateway.name == 'my-gateway'"

Ejemplo 5: Limita la recogida de registros a las vinculaciones de VLAN.

gcloud network-management vpc-flow-logs-configs update my-config \
    --location=global \
    --filter-expr="dest_gateway.type == 'INTERCONNECT_ATTACHMENT'"

Ejemplo 6: Limita la recogida de registros a una red de VPC de origen específica, my-network.

gcloud beta network-management vpc-flow-logs-configs update my-config \
    --location=global \
    --filter-expr="src_vpc.vpc_name == 'my-network'"

Siguientes pasos