Os registros de fluxo de VPC registram uma amostra de fluxos de rede enviados e recebidos por instâncias de VM, incluindo instâncias usadas como nós do GKE. Esses registros são usados para monitoramento de rede, perícia forense, análise de segurança em tempo real e otimização de despesas.
Presume-se que você esteja familiarizado com os conceitos descritos na Visão geral dos registros de fluxo de VPC.
Ativar os registros de fluxo de VPC
Quando você ativa os registros de fluxo de VPC, isso ocorre em todas as VMs de uma sub-rede. No entanto, é possível reduzir a quantidade de informações gravadas na geração de registros. Consulte Amostragem e agregação de registros para ver detalhes sobre os parâmetros que é possível controlar.
Ativar os registros de fluxo de VPC quando você cria uma sub-rede
Console
- Acesse a página "Redes VPC" no Console do Google Cloud.
Acessar a página "Redes VPC" - Clique na rede em que você quer adicionar uma sub-rede.
- Clique em Adicionar sub-rede.
- Em Registros de fluxo, selecione Ativado.
- Se você quiser ajustar a amostragem e a agregação de registros, clique em Configurar registros e ajuste um dos itens a seguir:
- Intervalo de agregação
- Indica se é necessário Incluir metadados nas entradas de registro finais
Por padrão, Incluir metadados inclui apenas determinados campos. Consulte Como personalizar campos de metadados para detalhes. Para personalizar os campos de metadados, use a interface de linha de comandogcloud
ou a API. - a taxa de amostragem.
100%
significa que todas as entradas são mantidas.
- Preencha outros campos conforme apropriado.
- Clique em Adicionar.
gcloud
gcloud compute networks subnets create SUBNET_NAME \ --enable-flow-logs \ [--logging-aggregation-interval=AGGREGATION_INTERVAL \ [--logging-flow-sampling=0.0...1.0] \ [--logging-filter-expr=EXPRESSION] \ [--logging-metadata=(include-all | exclude-all | custom)] \ [--logging-metadata-fields=FIELDS] \ [other flags as needed]
em que
--logging-aggregation-interval=
AGGREGATION_INTERVAL
define o intervalo de agregação para registros de fluxo nessa sub-rede. O intervalo de tempo pode ser configurado para: 5 s (padrão), 30 s, 1 min, 5 min, 10 min ou 15 min.--logging-flow-sampling
é a taxa de amostragem de fluxo. A amostragem de fluxo pode ser definida de0.0
(sem amostragem) a1.0
(todos os registros). O padrão é0.5
.--logging-filter-expr=
EXPRESSION
limita a coleta de registros apenas aos registros que correspondem à expressão. Para detalhes, consulte Filtragem de registros.--logging-metadata=(include-all | exclude-all | custom)
ativa, desativa ou define anotações de metadados de registro comocustom
. Se definido comocustom
, também especifica--logging-metadata-fields
. O padrão éinclude-all
. Observação: nem todos os campos estão incluídos eminclude-all
. Consulte Como personalizar campos de metadados para detalhes.--logging-metadata-fields
a lista separada por vírgulas de campos de metadados que você quer incluir nos registros. Exemplo:--logging-metadata-fields=src_instance,dst_instance
. Só pode ser definido se--logging-metadata=custom
.
API
Ative os registros de fluxo de VPC quando criar uma nova sub-rede.
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" }
Substitua os marcadores por valores válidos:
PROJECT_ID
é o ID do projeto em que a sub-rede será criada.REGION
é a região em que a sub-rede será criada.AGGREGATION_INTERVAL
define o intervalo de agregação para registros de fluxo nessa sub-rede. O intervalo pode ser definido como qualquer um dos seguintes:INTERVAL_5_SEC
,INTERVAL_30_SEC
,INTERVAL_1_MIN
,INTERVAL_5_MIN
,INTERVAL_10_MIN
ouINTERVAL_15_MIN
.SAMPLING_RATE
é a taxa de amostragem de fluxo. A amostragem de fluxo pode ser definida de0.0
(sem amostragem) a1.0
(todos os registros). O padrão é.0.5
.EXPRESSION
é a expressão de filtro usada para filtrar quais registros realmente serão gravados. Para detalhes, consulte Filtragem de registros.METADATA_SETTING
especifica se todos os metadados são registrados (INCLUDE_ALL_METADATA
), nenhum metadado é registrado (EXCLUDE_ALL_METADATA
) ou apenas metadados específicos são registrados (CUSTOM_METADATA
). Se este campo estiver definido comoCUSTOM_METADATA
, preencha também o campometadataFields
. Nem todos os campos estão incluídos emINCLUDE_ALL_METADATA
. Consulte Como personalizar campos de metadados para detalhes.METADATA_FIELDS
são os campos de metadados que você quer capturar depois de definirmetadata: CUSTOM_METADATA
. Esta é uma lista separada por vírgulas de campos de metadados, comosrc_instance, src_vpc.project_id
.IP_RANGE
é o intervalo de endereços IP principal da sub-rede;NETWORK_URL
é o URL da rede VPC em que a sub-rede será criada.SUBNET_NAME
é um nome para a sub-rede.
Para mais informações, consulte o método subnetworks.insert
.
Ativar os registros de fluxo de VPC para uma sub-rede existente
Console
- Acesse a página "Redes VPC" no Console do Google Cloud.
Acessar a página "Redes VPC" - Clique na sub-rede que você quer atualizar.
- Clique em Editar.
- Em Registros de fluxo, selecione Ativado.
- Se você quiser ajustar a amostragem e a agregação de registros, clique em Configurar registros e ajuste um dos itens a seguir:
- Intervalo de agregação
- Indica se é necessário Incluir metadados nas entradas de registro finais
Por padrão, Incluir metadados inclui apenas determinados campos. Consulte Como personalizar campos de metadados para detalhes. Para personalizar os campos de metadados, use a interface de linha de comandogcloud
ou a API. - a taxa de amostragem.
100%
significa que todas as entradas são mantidas.
- Clique em Salvar.
gcloud
gcloud compute networks subnets update SUBNET_NAME \ --enable-flow-logs \ [--logging-aggregation-interval=AGGREGATION_INTERVAL] \ [--logging-flow-sampling=0.0...1.0] \ [--logging-filter-expr=EXPRESSION] \ [--logging-metadata=(include-all | exclude-all | custom)] \ [--logging-metadata-fields=FIELDS]
em que
--logging-aggregation-interval=
AGGREGATION_INTERVAL
define o intervalo de agregação para registros de fluxo nessa sub-rede. O intervalo de tempo pode ser configurado para: 5 s (padrão), 30 s, 1 min, 5 min, 10 min ou 15 min.--logging-flow-sampling
é a taxa de amostragem de fluxo. A amostragem de fluxo pode ser definida de0.0
(sem amostragem) a1.0
(todos os registros). O padrão é.0.5
.--logging-filter-expr=
EXPRESSION
limita a coleta de registros apenas aos registros que correspondem à expressão. Para detalhes, consulte Filtragem de registros.--logging-metadata=(include-all | exclude-all | custom)
ativa, desativa ou define anotações de metadados de registro comocustom
. Se definido comocustom
, também especifica--logging-metadata-fields
. O padrão é "Ativado". Observação:include-all
não inclui anotações do GKE. Para ver as anotações do GKE, selecionecustom
e especifique-as.--logging-metadata-fields
a lista separada por vírgulas de campos de metadados que você quer incluir nos registros. Exemplo:--logging-metadata-fields=src_instance,dst_instance
. Só pode ser definido se--logging-metadata=custom
.
API
Ative os registros de fluxo de VPC para uma sub-rede 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" }
Substitua os marcadores por valores válidos:
PROJECT_ID
é o ID do projeto em que a sub-rede está localizada.REGION
é a região em que a sub-rede está localizada.SUBNET_NAME
é o nome da sub-rede existente.- SUBNET_FINGERPRINT é o ID de impressão digital da sub-rede atual, que é fornecido quando você descreve uma sub-rede.
- Para os outros campos de geração de registros, consulte Ativar os registros de fluxo de VPC quando você cria uma sub-rede.
Para mais informações, consulte o método subnetworks.patch
.
Como visualizar o volume de registro estimado para sub-redes atuais
O Console do Google Cloud fornece uma estimativa do seu volume de registro para sub-redes atuais, que pode ser usada para calcular o custo de ativação dos registros de fluxo. A estimativa é baseada em fluxos capturados em intervalos de 5 segundos para a sub-rede nos últimos 7 dias. Além disso, o tamanho de cada registro depende da ativação das anotações de metadados.
- Acesse a página "Redes VPC" no Console do Google Cloud.
Acessar a página "Redes VPC" - Clique na sub-rede para a qual queira estimar os custos.
- Clique em Editar.
- Em Registros de fluxo, selecione Ativado.
- Clique em Configurar registros.
- Visualize os Registros estimados gerados por dia para ver a estimativa.
- Clique em Cancelar para que nenhuma das suas alterações seja salva.
Como visualizar quais sub-redes têm registros de fluxo de VPC ativados
É possível verificar quais sub-redes de uma rede têm registros de fluxo de VPC ativados.
Console
- Acesse a página "Redes VPC" no Console do Google Cloud.
Acessar a página "Redes VPC" - Visualize a coluna Registros de fluxo para ver se a geração de registros está ativada ou desativada.
gcloud
gcloud compute networks subnets list \ --project PROJECT_ID \ --filter="network=NETWORK_URL" \ --format="csv(name,logConfig.enable)"
em que
PROJECT_ID
é o ID do projeto que você está consultando.NETWORK_URL
é o FQDN da rede que contém as sub-redes.
Atualizar parâmetros do registro de fluxo de VPC
É possível modificar os parâmetros de amostragem de registros. Consulte Amostragem e agregação de registos para ver detalhes sobre os parâmetros que você pode controlar.
Console
- Acesse a página "Redes VPC" no Console do Google Cloud.
Acessar a página "Redes VPC" - Clique na sub-rede que você quer atualizar.
- Clique em Editar.
- Clique em Configurar registros para ajustar a amostragem e a agregação de registros:
- Intervalo de agregação
- Indica se é necessário Incluir metadados nas entradas de registro finais
Por padrão, Incluir metadados inclui apenas determinados campos. Consulte Como personalizar campos de metadados para detalhes. Para personalizar os campos de metadados, use a interface de linha de comandogcloud
ou a API. - a taxa de amostragem.
100%
significa que todas as entradas são mantidas.
- Clique em Salvar.
gcloud
gcloud compute networks subnets update SUBNET_NAME \ [--logging-aggregation-interval=AGGREGATION_INTERVAL] \ [--logging-flow-sampling=0.0...1.0] \ [--logging-filter-expr=EXPRESSION] \ [--logging-metadata=(include-all | exclude-all | custom)] \ [--logging-metadata-fields=FIELDS]
em que
--logging-aggregation-interval=
AGGREGATION_INTERVAL
define o intervalo de agregação para registros de fluxo nessa sub-rede. O intervalo de tempo pode ser configurado para: 5 s (padrão), 30 s, 1 min, 5 min, 10 min ou 15 min.--logging-flow-sampling
é a taxa de amostragem de fluxo. A amostragem de fluxo pode ser definida de0.0
(sem amostragem) a1.0
(todos os registros). O padrão é.0.5
.--logging-filter-expr=
EXPRESSION
limita a coleta de registros apenas aos registros que correspondem à expressão. Para detalhes, consulte Filtragem de registros.--logging-metadata=(include-all | exclude-all | custom)
ativa, desativa ou define anotações de metadados de registro comocustom
. Se definido comocustom
, também especifica--logging-metadata-fields
. O padrão é "Ativado". Observação:include-all
não inclui anotações do GKE. Para ver as anotações do GKE, selecionecustom
e especifique-as.--logging-metadata-fields
a lista separada por vírgulas de campos de metadados que você quer incluir nos registros. Exemplo:--logging-metadata-fields=src_instance,dst_instance
. Só pode ser definido se--logging-metadata=custom
.
API
Modifique os campos da amostragem de registros para atualizar os comportamentos dos registros de fluxo da VPC.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME { "logConfig": { ...fields to modify }, "fingerprint": "SUBNETWORK_FINGERPRINT" }
Substitua os marcadores por valores válidos:
PROJECT_ID
é o ID do projeto em que a sub-rede está localizada.REGION
é a região em que a sub-rede está localizada.SUBNET_NAME
é o nome da sub-rede existente.- SUBNET_FINGERPRINT é o ID de impressão digital da sub-rede atual, que é fornecido quando você descreve uma sub-rede.
- Para os campos que podem ser modificados, consulte Ativar os registros de fluxo de VPC quando você cria uma sub-rede.
Para mais informações, consulte o método subnetworks.patch
.
Desativar os registros de fluxo de VPC para uma sub-rede
Console
- Acesse a página "Redes VPC" no Console do Google Cloud.
Acessar a página "Redes VPC" - Clique na sub-rede que você quer atualizar.
- Clique em Editar.
- Em Registros de fluxo, selecione Desativar.
- Clique em Salvar.
gcloud
gcloud compute networks subnets update SUBNET_NAME \ --no-enable-flow-logs
API
Desative registros de fluxo de VPC em uma sub-rede para interromper a coleta de registros.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME { "logConfig": { "enable": false }, "fingerprint": "SUBNETWORK_FINGERPRINT" }
Substitua os marcadores por valores válidos:
PROJECT_ID
é o ID do projeto em que a sub-rede está localizada.REGION
é a região em que a sub-rede está localizada.SUBNET_NAME
é o nome da sub-rede existente.- SUBNET_FINGERPRINT é o ID de impressão digital da sub-rede atual, que é fornecido quando você descreve uma sub-rede.
Para mais informações, consulte o método subnetworks.patch
.
Como acessar registros pelo Logging
Como configurar o IAM
Siga o guia de controle de acesso do Logging.
Veja os registros na página do visualizador de registros.
Você precisa do código dos seus projetos para esses comandos.
Como acessar todos os registros de fluxo
- Acesse a página "Registros" no Console do Google Cloud.
Acessar a página "Registros" - Selecione Sub-redes no primeiro menu suspenso.
- Selecione compute.googleapis.com/vpc_flows no segundo menu suspenso.
- Clique em OK.
Como alternativa:
- Acesse a página "Registros" no Console do Google Cloud.
Acessar a página "Registros" - No lado direito do campo Filtrar por rótulo ou pesquisa de texto, clique na seta para baixo e selecione Converter para filtro avançado.
- Cole o seguinte no campo. Substitua
PROJECT_ID
pelo código do projeto:resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows"
- Clique em Enviar filtro.
Acessar registros de uma sub-rede específica
- Acesse a página "Registros" no Console do Google Cloud.
Acessar a página "Registros" - No primeiro menu suspenso, mova o cursor para Sub-rede e mova-o para a direita para abrir o menu de seleção de sub-rede individual.
- No segundo menu suspenso, selecione compute.googleapis.com/vpc_flows.
- Clique em OK.
Como alternativa:
- Acesse a página "Registros" no Console do Google Cloud.
Acessar a página "Registros" - No lado direito do campo Filtrar por rótulo ou pesquisa de texto, clique na seta para baixo e selecione Converter para filtro avançado.
- Cole o seguinte no campo. Substitua
PROJECT_ID
pelo ID do projeto eSUBNET_NAME
pela sub-rede.resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" resource.labels.subnetwork_name="SUBNET_NAME"
- Clique em Enviar filtro.
Como acessar registros para uma VM específica
- Acesse a página "Registros" no Console do Google Cloud.
Acessar a página "Registros" - No lado direito do campo Filtrar por rótulo ou pesquisa de texto, clique na seta para baixo e selecione Converter para filtro avançado.
- Cole o seguinte no campo. Substitua
PROJECT_ID
pelo ID do projeto e VM_NAME pela VM.resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" jsonPayload.src_instance.vm_name="VM_NAME"
- Clique em Enviar filtro.
Como acessar registros de tráfego para um intervalo de sub-rede específico
- Acesse a página "Registros" no Console do Google Cloud.
Acessar a página "Registros" - No lado direito do campo Filtrar por rótulo ou pesquisa de texto, clique na seta para baixo e selecione Converter para filtro avançado.
- Cole o seguinte no campo. Substitua
PROJECT_ID
pelo ID do projeto eSUBNET_RANGE
por um intervalo CIDR (192.168.1.0/24
).resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" ip_in_net(jsonPayload.connection.dest_ip, SUBNET_RANGE)
- Clique em Enviar filtro.
Como acessar registros de um cluster específico do GKE
- Acesse a página "Registros" no Console do Google Cloud.
Acessar a página "Registros" - No lado direito do campo Filtrar por rótulo ou pesquisa de texto, clique na seta para baixo e selecione Converter para filtro avançado.
- Cole o seguinte no campo. Substitua
PROJECT_ID
pelo ID do projeto eSUBNET_NAME
pela sub-rede.resource.type="gce_subnetwork" logName="projects/{#project_id}/logs/vpc_flows" jsonPayload.src_gke_details.cluster.cluster_name="{#cluster_name}" OR jsonPayload.dest_gke_details.cluster.cluster_name="{#cluster_name}"
- Clique em Enviar filtro.
Acessar registros de portas e protocolos específicos
Para uma porta de destino individual
- Acesse a página "Registros" no Console do Google Cloud.
Acessar a página "Registros" - No lado direito do campo Filtrar por rótulo ou pesquisa de texto, clique na seta para baixo e selecione Converter para filtro avançado.
- Cole o seguinte no campo. Substitua
PROJECT_ID
pelo ID do projeto, PORT pela porta de destino e PROTOCOL pelo protocolo.resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" jsonPayload.connection.dest_port=PORT jsonPayload.connection.protocol=PROTOCOL
- Clique em Enviar filtro.
Para mais de uma porta de destino
- Acesse a página "Registros" no Console do Google Cloud.
Acessar a página "Registros" - No lado direito do campo Filtrar por rótulo ou pesquisa de texto, clique na seta para baixo e selecione Converter para filtro avançado.
- Cole o seguinte no campo. Substitua
PROJECT_ID
pelo ID do projeto, PORT1 e PORT2 pelas portas de destino e PROTOCOL pelo protocolo.resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" jsonPayload.connection.dest_port=(PORT1 OR PORT2) jsonPayload.connection.protocol=PROTOCOL
- Clique em Enviar filtro.
Exportar registros para BigQuery, Pub/Sub e destinos personalizados
Exporte registros de fluxo do Logging para um destino de sua escolha, conforme descrito na documentação do Logging. Consulte a seção anterior para obter exemplos de filtro.
Solução de problemas
Nenhum vpc_flows
aparece no recurso gce_subnetwork
do Logging
- Confirme se a geração de registros está ativada para a sub-rede especificada.
- Os fluxos de VPC são compatíveis apenas com redes VPC. Se você tiver uma rede legada, não verá nenhum registro.
- Em redes VPC compartilhadas, os registros só aparecem no projeto host, não nos projetos de serviço. Procure os registros no projeto host.
- Os filtros de exclusão do Logging bloqueiam registros especificados.
Verifique se não há regras de exclusão que descartem os registros de fluxo de VPC.
- Vá para Uso de recursos.
- Clique na guia Exclusões.
- Verifique se não há regras de exclusão que possam descartar os registros de fluxo de VPC.
Nenhum valor de RTT ou byte em alguns dos registros
- As medições de RTT talvez não sejam mostradas se não houver uma amostra com pacotes suficientes para capturar o RTT. É mais provável que isso aconteça para conexões de baixo volume.
- Não há valores de RTT disponíveis para fluxos de UDP.
- Alguns pacotes são enviados sem payload. Se os pacotes somente de cabeçalho foram incluídos na amostra, o valor dos bytes será 0.
Alguns fluxos não são mostrados
- Somente protocolos UDP e TCP são aceitos. Os registros de fluxo de VPC não são compatíveis com nenhum outro protocolo.
- Os registros são amostrados. Alguns pacotes em fluxos de volume muito baixo podem não ser mostrados.
Anotações do GKE ausentes em alguns registros
Consulte as anotações do GKE para entender os detalhes das anotações do GKE.
- Verifique se o Google Kubernetes Engine Monitoring está ativado no cluster. Em alguns casos, algumas das anotações poderão estar ausentes se o GKE Monitoring não estiver ativado. Para verificar se o GKE Monitoring está ativado no cluster, siga as instruções.
- Se o GKE Monitoring estiver ativado no cluster e você ainda estiver vendo as anotações do GKE ausentes, é possível verificar se o agente que envia atualizações de metadados para o Monitoring está enviando as atualizações com êxito. Para isso, visite o Painel da API Monitoring do projeto no Console do Cloud. Em alguns casos, pode haver erros por exceder o limite da API. Acesse o painel de cotas da API e verifique se há erros de cota excedida. Se houver erros de cota excedida, siga as instruções em Como gerenciar sua cota para solicitar um aumento de cota.
Registros ausentes para alguns fluxos do GKE
Verifique se a Visibilidade intranós está ativada no cluster. Caso contrário, os fluxos entre os pods no mesmo nó não serão registrados.
Os registros de fluxo parecem estar desativados, ainda que tenham sido ativados
Ao configurar uma sub-rede somente proxy para balanceadores de carga HTTP(S) internos e usar o comando
gcloud compute networks subnets
para ativar os registros de fluxo de VPC, o comando parece ter êxito, mas os registros de fluxo não estão realmente ativados. A sinalização--enable-flow-logs
não entra em vigor quando a sinalização--purpose=INTERNAL_HTTPS_LOAD_BALANCER
também é incluída.Ao usar o Console do Cloud ou a API para ativar os registros de fluxo, será exibida a seguinte mensagem de erro: "Valor inválido para o campo 'resource.enableFlowLogs': 'true'. Campo inválido definido na sub-rede com a finalidade INTERNAL_HTTPS_pload_ balanCER."
Como as sub-redes somente proxy não têm VMs, os registros de fluxo de VPC não são compatíveis. Este é o comportamento esperado.
Preço
São aplicados preços padrão para o Logging, BigQuery ou Pub/Sub. Os preços de registros de fluxo de VPC são descritos em Preços de telemetria de rede.
A seguir
- Veja a documentação do Logging
- Veja a documentação Exportação do Logging