Acerca dos registos de registos de fluxo de VPC
Esta página descreve o formato de registo dos registos de fluxo de VPC, incluindo os campos base e de metadados disponíveis. Também explica como pode usar a filtragem de registos para que apenas sejam gerados registos que correspondam a determinados critérios.
Formato de registo
Os registos de registo contêm campos de base, que são os campos principais de cada registo de registo, e campos de metadados que adicionam informações adicionais. Os campos de metadados podem ser omitidos para poupar custos de armazenamento.
Alguns campos de registo estão num formato de vários campos, com mais do que um elemento de dados num determinado campo. Por exemplo, o campo connection
está no formato IpConnection
, que contém o endereço IP e a porta de origem e destino, além do protocolo, num único campo. Estes campos de vários campos são descritos abaixo da tabela de formato de registo.
Os valores dos campos de metadados não se baseiam no caminho do plano de dados; são aproximações e podem estar em falta ou incorretos. Ao contrário dos campos de metadados, os valores dos campos base são retirados diretamente dos cabeçalhos dos pacotes.
Campo | Formato do campo | Tipo de campo: metadados básicos ou opcionais |
---|---|---|
ligação |
IpConnection
Tuplo de 5 elementos que descreve o fluxo. |
Base |
origem |
string
O lado que comunicou o fluxo.
|
Base |
rtt_msec |
int64
Latência medida durante o intervalo de tempo. Este campo é preenchido da seguinte forma:
A latência medida é o tempo decorrido entre o envio de um SEQ e a receção de um ACK correspondente. O resultado da latência é a soma do RTT da rede e de qualquer tempo consumido pela aplicação. |
Base |
bytes_sent |
int64
Quantidade de bytes enviados da origem para o destino. |
Base |
packets_sent |
int64
Número de pacotes enviados da origem para o destino. |
Base |
start_time |
string
Data/hora (formato de string de data RFC 3339) do primeiro pacote observado durante o intervalo de tempo agregado. |
Base |
end_time |
string
Data/hora (formato de string de data RFC 3339) do último pacote observado durante o intervalo de tempo agregado. |
Base |
Campos de metadados de origem e destino | ||
src_gateway |
GatewayDetails
Se a origem do fluxo for um ponto final nas instalações ou noutra nuvem que esteja ligado Google Cloud através de um gateway, como uma associação de VLAN para o Cloud Interconnect ou um túnel do Cloud VPN, e qualquer uma das seguintes condições for cumprida, este campo é preenchido com os detalhes do gateway:
|
Metadados |
dest_gateway |
GatewayDetails
Se o destino do fluxo for um ponto final nas instalações ou noutra nuvem que esteja ligado Google Cloud através de um gateway, como uma associação de VLAN para o Cloud Interconnect ou um túnel do Cloud VPN e qualquer uma das seguintes condições for cumprida, este campo é preenchido com os detalhes do gateway:
|
Metadados |
src_gke_details |
GkeDetails
Se a origem do fluxo for um ponto final do Google Kubernetes Engine (GKE), este campo é preenchido com detalhes do ponto final do GKE. |
Metadados |
dest_gke_details |
GkeDetails
Se o destino do fluxo for um ponto final do GKE, este campo é preenchido com os detalhes do ponto final do GKE. |
Metadados |
src_google_service |
GoogleServiceDetails
Se a origem do fluxo for um serviço Google, este campo é preenchido com detalhes do serviço. |
Metadados |
dest_google_service |
GoogleServiceDetails
Se o destino do fluxo for um serviço Google, este campo é preenchido com detalhes do serviço. |
Metadados |
src_instance |
InstanceDetails
Se a origem do fluxo for uma VM localizada numa rede VPC e qualquer uma das seguintes condições for cumprida, este campo é preenchido com detalhes da instância de VM:
|
Metadados |
dest_instance |
InstanceDetails
Se o destino do fluxo for uma VM localizada numa rede da VPC e qualquer uma das seguintes condições for cumprida, este campo é preenchido com detalhes da instância da VM.
|
Metadados |
src_location |
GeographicDetails
Se a origem do fluxo for um endereço IP público fora da rede VPC, este campo é preenchido com os metadados de localização disponíveis. |
Metadados |
dest_location |
GeographicDetails
Se o destino do fluxo for um endereço IP público fora da rede VPC, este campo é preenchido com os metadados de localização disponíveis. |
Metadados |
src_vpc |
VpcDetails
Se a origem do fluxo for uma VM localizada numa rede VPC e qualquer uma das seguintes condições for cumprida, este campo é preenchido com detalhes da rede VPC:
|
Metadados |
dest_vpc |
VpcDetails
Se o destino do fluxo for uma VM localizada numa rede VPC e qualquer uma das seguintes condições for cumprida, este campo é preenchido com detalhes da rede VPC:
|
Metadados |
Outros campos de metadados | ||
internet_routing_details |
InternetRoutingDetails
Se o fluxo for entre Google Cloud e a Internet, este campo é preenchido com detalhes de encaminhamento. Disponível apenas para fluxos de saída. |
Metadados |
load_balancing |
LoadBalancingDetails
Se o fluxo passar por um balanceador de carga numa das seguintes configurações, este campo é preenchido com detalhes do Cloud Load Balancing:
|
Metadados |
network_service |
NetworkServiceDetails
Se o cabeçalho do Differentiated Services Code Point (DSCP) estiver definido, este campo é preenchido com detalhes do serviço de rede. |
Metadados |
psc |
PrivateServiceConnectDetails
Se o fluxo passar pelo Private Service Connect numa das seguintes configurações, este campo é preenchido com detalhes do Private Service Connect:
|
Metadados |
rdma_traffic_type |
string
Tipo de tráfego RDMA. Preenchido para tráfego de GPU para GPU entre VMs. Pode ser GPUDirect-TCPXO ou RoCE .
|
Metadados |
Formato do campo IpConnection
Campo | Tipo | Descrição |
---|---|---|
protocolo | int32 | O número do protocolo da IANA:
|
src_ip | de string | Endereço IP de origem. Preenchido para todos os fluxos. |
dest_ip | de string | Endereço IP de destino. Preenchido para todos os fluxos. |
src_port | int32 | Porta de origem:
|
dest_port | int32 | Porta de destino:
|
Formato do campo GatewayDetails
Campo | Tipo | Descrição |
---|---|---|
project_id | de string | Google Cloud ID do projeto do gateway |
localização | de string | Região do gateway |
nome | de string | Nome do gateway |
escrever | de string |
Tipo de gateway. Pode ser INTERCONNECT_ATTACHMENT ou
VPN_TUNNEL .
|
vpc | VpcDetails | Detalhes da rede de VPC do gateway |
interconnect_name | de string |
Se o tipo do gateway for INTERCONNECT_ATTACHMENT ,
este campo é preenchido com o nome da ligação do Cloud Interconnect
na qual a associação de VLAN está configurada.
|
interconnect_project_number | int64 |
Se o tipo do gateway for INTERCONNECT_ATTACHMENT ,
este campo é preenchido com o Google Cloud número do projeto da
ligação do Cloud Interconnect na qual a associação de VLAN está
configurada.
|
Formato do campo GkeDetails
Campo | Tipo | Descrição |
---|---|---|
cluster | ClusterDetails | Metadados do cluster do GKE |
cápsula | PodDetails | Metadados do GKE Pod, preenchidos quando a origem ou o destino do tráfego é um Pod |
serviço | ServiceDetails |
Metadados do serviço GKE, preenchidos apenas nos pontos finais do serviço. O registo contém até dois serviços. Se existirem mais de dois serviços relevantes, este campo contém um único serviço com um marcador MANY_SERVICES especial.
|
Formato do campo ClusterDetails
Campo | Tipo | Descrição |
---|---|---|
cluster_location | de string | Localização do cluster. Pode ser uma zona ou uma região, consoante o cluster seja zonal ou regional. |
cluster_name | de string | Nome do cluster do GKE. |
Formato do campo PodDetails
Campo | Tipo | Descrição |
---|---|---|
pod_name | de string | Nome do agrupamento |
pod_namespace | de string | Espaço de nomes do agrupamento |
pod_workload | WorkloadDetails | Metadados sobre o recurso de carga de trabalho de nível superior que controla o Pod |
Formato do campo WorkloadDetails
Campo | Tipo | Descrição |
---|---|---|
workload_name | de string | Nome do controlador de carga de trabalho de nível superior |
workload_type | de string |
Tipo do controlador de carga de trabalho de nível superior. Pode ser
DEPLOYMENT , REPLICA_SET ,
STATEFUL_SET , DAEMON_SET , JOB ,
CRON_JOB ou
REPLICATION_CONTROLLER .
|
Formato do campo ServiceDetails
Campo | Tipo | Descrição |
---|---|---|
service_name | de string |
Nome do serviço. Se existirem mais de dois serviços relevantes, o campo
é definido como um marcador MANY_SERVICES especial.
|
service_namespace | de string | Espaço de nomes do serviço |
Exemplo:
Se existirem dois serviços, o campo Serviço tem o seguinte aspeto:
service: [ 0: { service_name: "my-lb-service" service_namespace: "default" } 1: { service_name: "my-lb-service2" service_namespace: "default" } ]
Se existirem mais de dois serviços, o campo Serviço tem o seguinte aspeto:
service: [ 0: { service_name: "MANY_SERVICES" } ]
Formato do campo GoogleServiceDetails
Campo | Tipo | Descrição |
---|---|---|
escrever | de string | O tipo de serviço,
|
service_name | de string | Nome do serviço. Por exemplo,
Limitações:
|
conetividade | de string | Método de acesso. Para o tipo
Para o tipo
|
private_domain | de string | Domínio privado ou pacote da API Private Service Connect. O campo private_domain pode ser um dos seguintes:
|
Formato do campo InstanceDetails
Campo | Tipo | Descrição |
---|---|---|
project_id | de string | ID do Google Cloud projeto que contém o recurso de VM |
região | de string | Região da VM |
vm_name | de string | Nome da instância da VM |
zona | de string | Zona da VM |
managed_instance_group | InstanceGroupDetails | Se a VM fizer parte de um grupo de instâncias geridas, este campo é preenchido com os detalhes do grupo de instâncias. |
Formato do campo InstanceGroupDetails
Campo | Tipo | Descrição |
---|---|---|
nome | de string | Nome do grupo de instâncias |
região | de string | Se o grupo de instâncias for regional, este campo é preenchido com a região do grupo de instâncias. |
zona | de string | Se o grupo de instâncias for zonal, este campo é preenchido com a zona do grupo de instâncias. |
Formato do campo GeographicDetails
Campo | Tipo | Descrição |
---|---|---|
asn | int32 | O ASN da rede externa à qual este ponto final pertence. |
cidade | de string | Cidade para pontos finais externos |
continente | de string | Continente para pontos finais externos |
country | de string | País para pontos finais externos, representado como códigos de países ISO 3166-1 alfa-3 |
região | de string | Região para pontos finais externos |
Formato do campo VpcDetails
Campo | Tipo | Descrição |
---|---|---|
project_id | de string | ID do Google Cloud projeto que contém a VPC. Numa configuração de VPC partilhada, project_id é o ID do projeto anfitrião. |
subnetwork_name | de string | Nome da sub-rede, se aplicável |
subnetwork_region | de string | Região da sub-rede, se aplicável |
vpc_name | de string | Nome da rede |
Formato do campo InternetRoutingDetails
Campo | Tipo | Descrição |
---|---|---|
egress_as_path | AsPath | Lista de caminhos de AS relevantes. Se existirem vários caminhos de SA disponíveis para o fluxo, o campo pode conter mais do que um caminho de SA. |
Formato do campo AsPath
Campo | Tipo | Descrição |
---|---|---|
as_details | AsDetails | Lista de detalhes do SA para todos os sistemas no caminho do SA. A lista começa pelo primeiro SA que é externo à rede de Google Cloude termina com o SA ao qual o endereço IP remoto pertence. |
Formato do campo AsDetails
Campo | Tipo | Descrição |
---|---|---|
asn | uint32 | O número do sistema autónomo (ASN) do SA |
Formato do campo LoadBalancingDetails
Campo | Tipo | Descrição |
---|---|---|
forwarding_rule_project_id | de string | Google Cloud ID do projeto da regra de encaminhamento |
origem | de string | Repórter do Cloud Load Balancing. Pode ser
CLIENT ou BACKEND .
|
escrever | de string | Tipo de balanceador de carga. Pode ser APPLICATION_LOAD_BALANCER ,
PROXY_NETWORK_LOAD_BALANCER ,
PASSTHROUGH_NETWORK_LOAD_BALANCER ,
ou PROTOCOL_FORWARDING . |
esquema | de string | Esquema do balanceador de carga. Pode ser EXTERNAL_MANAGED ,
INTERNAL_MANAGED , EXTERNAL ,
INTERNAL ou INTERNAL_SELF_MANAGED . |
url_map_name | de string | Nome do mapa de URLs. Preenchido se o tipo do balanceador de carga for APPLICATION_LOAD_BALANCER . |
forwarding_rule_name | de string | Nome da regra de encaminhamento |
backend_service_name | de string | Nome do serviço de back-end. Preenchido se o autor do relatório for BACKEND e o tipo de balanceador de carga for PASSTHROUGH_NETWORK_LOAD_BALANCER . Se o tipo de grupo de back-end for TARGET_POOL , este campo não é preenchido. |
backend_group_name | de string | Nome do grupo de back-end. Preenchido se o autor do relatório for BACKEND e o tipo de balanceador de carga for PASSTHROUGH_NETWORK_LOAD_BALANCER . |
backend_group_type | de string | Tipo do grupo de back-end. Pode ser INSTANCE_GROUP ,
NETWORK_ENDPOINT_GROUP ou TARGET_POOL .
Preenchido se o autor do relatório for BACKEND e o tipo de balanceador de carga for PASSTHROUGH_NETWORK_LOAD_BALANCER . |
backend_group_location | de string | Localização do grupo de back-end. Pode ser uma zona ou uma região, dependendo se o âmbito do grupo de back-end é zonal ou regional.
Preenchido se o autor do relatório for BACKEND e o tipo de balanceador de carga for PASSTHROUGH_NETWORK_LOAD_BALANCER . Se o tipo de grupo de back-end for TARGET_POOL , este campo não é preenchido. |
vpc | VpcDetails | Detalhes da rede da VPC do balanceador de carga |
Formato do campo NetworkServiceDetails
Campo | Tipo | Descrição |
---|---|---|
dscp | int32 | Se o campo Differentiated Services estiver presente nos cabeçalhos dos pacotes, este campo é preenchido com o valor DSCP. |
Formato do campo PrivateServiceConnectDetails
Campo | Tipo | Descrição |
---|---|---|
origem | de string | Denunciante do Private Service Connect.
Pode ser CONSUMER ou
PRODUCER . |
psc_endpoint | PrivateServiceConnectEndpointDetails |
Detalhes do ponto final. Preenchido se o denunciante for CONSUMER .
|
psc_attachment | PrivateServiceConnectAttachmentDetails | Detalhes do anexo de serviço. Preenchido se o fluxo de tráfego incluir um produtor do Private Service Connect. |
Formato do campo PrivateServiceConnectEndpointDetails
Campo | Tipo | Descrição |
---|---|---|
project_id | de string | Google Cloud ID do projeto do ponto final do Private Service Connect |
região | de string | Região do ponto final. Não preenchido se o tipo de serviço de destino for GLOBAL_GOOGLE_APIS . |
psc_connection_id | de string | ID da ligação do Private Service Connect |
target_service_type | de string | Tipo de serviço de destino. Pode ser GLOBAL_GOOGLE_APIS ou
PUBLISHED_SERVICE . |
vpc | VpcDetails | Detalhes da rede VPC do ponto final do Private Service Connect |
Formato do campo PrivateServiceConnectAttachmentDetails
Campo | Tipo | Descrição |
---|---|---|
project_id | de string | Google Cloud ID do projeto do anexo de serviço |
região | de string | Região da associação do serviço |
vpc | VpcDetails | Detalhes da rede VPC da associação de serviços |
Anotações de metadados
Os registos de registos contêm campos base e campos de metadados. A secção Formato do registo indica que campos são metadados de tipo e quais são de base de tipo. Todos os campos base estão sempre incluídos. Pode personalizar os campos de metadados que mantém.
Se selecionar todos os metadados, todos os campos de metadados no formato de registo dos registos de fluxo da VPC são incluídos nos registos de fluxo. Quando são adicionados novos campos de metadados ao formato de registo, os registos de fluxo incluem automaticamente os novos campos.
Se não selecionar metadados, omite todos os campos de metadados.
Se selecionar metadados personalizados, pode especificar os campos de metadados que quer incluir pelo campo principal, como
src_vpc
, ou pelos respetivos nomes completos, comosrc_vpc.project_id
Quando são adicionados novos campos de metadados ao formato de registo, são excluídos dos registos de fluxo, a menos que estejam num campo principal que tenha especificado para inclusão.
Se especificar metadados personalizados através de campos principais, quando forem adicionados novos campos de metadados ao formato de registo nesse campo principal, os registos de fluxo incluem automaticamente os novos campos.
Se especificar metadados personalizados através do nome completo do campo, os novos campos de metadados adicionados ao campo principal são excluídos dos registos do fluxo.
Para ver informações sobre como personalizar campos de metadados, consulte os artigos Ative os registos de fluxo de VPC ou Atualize a configuração dos registos de fluxo de VPC.
Anotações de metadados do GKE
Os fluxos que têm um ponto final num cluster do GKE podem ser anotados com anotações de metadados do GKE, que podem incluir detalhes do cluster, do pod e do serviço do ponto final.
Anotações de serviço do GKE
O tráfego enviado para um ClusterIP, um NodePort ou um LoadBalancer pode receber anotações de serviço. Se for enviado para um NodePort ou um LoadBalancer, o fluxo recebe a anotação do serviço em ambos os saltos da ligação.
O tráfego enviado diretamente para a porta de serviço de um pod é anotado com uma anotação de serviço no ponto final de destino.
O tráfego enviado para a porta de serviço de um pod em que o pod suporta mais do que um serviço na mesma porta de serviço é anotado com vários serviços no ponto final de destino. Este limite aplica-se a dois Serviços. Se existirem mais
do que isso, o ponto final é anotado com um marcador MANY_SERVICES
especial.
Anotações de agrupamentos de anúncios no tráfego da Internet
O tráfego entre um agrupamento e a Internet não recebe anotações de agrupamentos por predefinição. Os registos de fluxo da VPC não podem adicionar anotações de pods porque, para pacotes para a Internet, o agente de mascaramento traduz o endereço IP do pod para o endereço IP do nó antes de os registos de fluxo da VPC verem o pacote.
Devido ao mascaramento, as anotações de Pod só são visíveis se os destinos estiverem nos destinos predefinidos sem mascaramento ou numa lista nonMasqueradeCIDRs
personalizada.
Se incluir destinos da Internet numa lista personalizada nonMasqueradeCIDRs
, tem de fornecer uma forma de os endereços IP dos pods internos serem traduzidos antes de serem enviados para a Internet. Para clusters privados e não privados, pode usar o Cloud NAT. Consulte a interação do GKE para mais detalhes.
Anotações entre projetos
Se os registos de fluxo de VPC estiverem ativados ao nível da organização, os fluxos através da VPC partilhada, do intercâmbio das redes da VPC e do Network Connectivity Center são anotados com anotações entre projetos. As anotações entre projetos estão ativadas por predefinição. Opcionalmente, pode desativar estas anotações.
- Se as anotações entre projetos estiverem ativadas, os registos de registo para fluxos entre recursos em diferentes projetos incluem informações sobre ambos os lados do fluxo.
- Se as anotações entre projetos estiverem desativadas, os registos de registo incluem informações apenas sobre o autor do fluxo.
Se os registos de fluxo da VPC estiverem ativados ao nível do projeto, os fluxos entre recursos em projetos diferentes não são anotados com anotações entre projetos.
Filtragem de registos
Quando ativa os registos de fluxo de VPC, pode definir um filtro com base nos campos base e de metadados que apenas preserva os registos que correspondem ao filtro. Todos os outros registos são rejeitados antes de serem escritos no registo.
Pode filtrar qualquer subconjunto de campos listados no Formato de registo, exceto os seguintes campos:
rtt_msec
bytes_sent
packets_sent
start_time
end_time
A filtragem de registos de fluxo de VPC usa o IEC, um idioma de expressão incorporado para expressões lógicas baseadas em atributos. As expressões de filtro para registos de fluxo de VPC têm um limite de 2048 carateres. Para mais informações, consulte o artigo Operadores lógicos da CEL suportados.
Para mais informações sobre o CEL, consulte a introdução ao CEL e a definição da linguagem. A funcionalidade de filtro de geração suporta um subconjunto limitado da sintaxe CEL.
Para criar uma configuração dos registos de fluxo de VPC que use a filtragem de registos, consulte o artigo Ative os registos de fluxo de VPC. Para configurar a filtragem de registos para uma configuração de registos de fluxo de VPC existente, consulte o artigo Atualize a configuração dos registos de fluxo de VPC.
Operadores lógicos CEL suportados
Expressão | Tipos suportados | Descrição |
---|---|---|
true, false | Booleano | Constantes booleanas |
x == y x != y |
Booleano, Int, String | Operadores de comparação Exemplo: connection.protocol == 6 |
x && y x || y |
Booleano | Operadores lógicos booleanos Exemplo: connection.protocol == 6 && src_instance.vm_name == "vm_1" |
!x | Booleano | Negação |
1, 2.0, 0, ... | Int | Valores numéricos constantes |
x + y | String | Concatenação de strings |
"foo", 'foo', ... | String | Literal de string constante |
x.lower() | String | Devolve o valor em minúsculas da string |
x.upper() | String | Devolve o valor em maiúsculas da string |
x.contains(y) | String | Devolve true se a string contiver a substring especificada |
x.startsWith(y) | String | Devolve true se a string começar com a substring especificada |
x.endsWith(y) | String | Devolve true se a string terminar com a substring especificada |
inIpRange(X, Y) | String | Devolve true se X for um IP e Y for um intervalo de IPs que contém X Exemplo: inIpRange("1.2.3.1", "1.2.3.0/24") |
x.containsFieldValue(y) |
x: list y: map(string, string) |
Devolve true se a lista contiver um objeto com campos que correspondam aos pares de chave-valor especificados Exemplo: dest_gke_details.service.containsFieldValue({'service_name': 'service1', 'service_namespace': 'namespace1'}) |
has(x) | String | Devolve true se o campo estiver presente. |
Exemplos de filtros de registo
Se ativou os registos de fluxo de VPC para uma sub-rede através da API Compute Engine, use o comando gcloud compute networks subnets update
para configurar a filtragem (exemplos 1 a 3).
Para todas as outras configurações dos registos de fluxo da VPC, use o comando gcloud network-management vpc-flow-logs-configs update
(exemplos 4 a 6). As expressões de filtro nos exemplos 1 a 3 podem ser usadas com o comando gcloud network-management vpc-flow-logs-configs update
.
Exemplo 1. Limitar a recolha de registos a uma VM específica denominada my-vm
. Neste caso, apenas são registados os registos em que o campo src_instance
, conforme comunicado pela origem do tráfego, é my-vm
ou o campo dst_instance
, conforme comunicado pelo destino do tráfego, é 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')"
Exemplo 2. Limite a recolha de registos a pacotes cujos endereços IP de origem estejam na sub-rede 10.0.0.0/8
.
gcloud compute networks subnets update my-subnet \ --logging-filter-expr="inIpRange(connection.src_ip, '10.0.0.0/8')"
Exemplo 3. Limite a recolha de registos ao tráfego externo a uma rede da VPC.
gcloud compute networks subnets update my-subnet \ --logging-filter-expr '!(has(src_vpc.vpc_name) && has(dest_vpc.vpc_name))'
Exemplo 4. Limitar a recolha de registos a uma associação VLAN de destino específica ou a um túnel de VPN na nuvem, my-gateway
.
gcloud network-management vpc-flow-logs-configs update my-config \ --location=global \ --filter-expr="dest_gateway.name == 'my-gateway'"
Exemplo 5. Limite a recolha de registos a associações VLAN.
gcloud network-management vpc-flow-logs-configs update my-config \ --location=global \ --filter-expr="dest_gateway.type == 'INTERCONNECT_ATTACHMENT'"
Exemplo 6. Limite a recolha de registos a uma rede VPC de origem 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'"