Como usar registros de fluxo da VPC

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 podem ser 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

  1. Acesse a página "Redes VPC" no Console do Google Cloud.
    Acessar a página "Redes VPC"
  2. Clique na rede em que você quer adicionar uma sub-rede.
  3. Clique em Adicionar sub-rede.
  4. Em Registros de fluxo, selecione Ativar.
  5. 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 ver mais detalhes. Para personalizar os campos de metadados, use a interface de linha de comando gcloud ou a API.
    • a taxa de amostragem. 100% significa que todas as entradas são mantidas.
  6. Preencha outros campos conforme apropriado.
  7. 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 de 0.0 (sem amostragem) a 1.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 como custom. Se definido como custom, também especifica --logging-metadata-fields. O padrão é include-all. Observação: nem todos os campos estão incluídos em include-all. Consulte Como personalizar campos de metadados para mais 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://www.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 na 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 ou INTERVAL_15_MIN.
  • sampling-rate é a taxa de amostragem de fluxo. A amostragem de fluxo pode ser definida de 0.0 (sem amostragem) a 1.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 como CUSTOM_METADATA, preencha também o campo metadataFields. Nem todos os campos estão incluídos em INCLUDE_ALL_METADATA. Consulte Como personalizar campos de metadados para mais detalhes.
  • metadata-fields são os campos de metadados que você quer capturar depois de definir metadata: CUSTOM_METADATA. Esta é uma lista separada por vírgulas de campos de metadados, como src_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 ver mais informações, consulte o método subnetworks.insert.

Ativar os registros de fluxo de VPC para uma sub-rede existente

Console

  1. Acesse a página "Redes VPC" no Console do Google Cloud.
    Acessar a página "Redes VPC"
  2. Clique na sub-rede que você quer atualizar.
  3. Clique em Editar.
  4. Em Registros de fluxo, selecione Ativar.
  5. 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 ver mais detalhes. Para personalizar os campos de metadados, use a interface de linha de comando gcloud ou a API.
    • a taxa de amostragem. 100% significa que todas as entradas são mantidas.
  6. 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 de 0.0 (sem amostragem) a 1.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 como custom. Se definido como custom, 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, selecione custom 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://www.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:

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.

  1. Acesse a página "Redes VPC" no Console do Google Cloud.
    Acessar a página "Redes VPC"
  2. Clique na sub-rede para a qual queira estimar os custos.
  3. Clique em Editar.
  4. Em Registros de fluxo, selecione Ativar.
  5. Clique em Configurar registros.
  6. Visualize os Registros estimados gerados por dia para ver a estimativa.
  7. 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

  1. Acesse a página "Redes VPC" no Console do Google Cloud.
    Acessar a página "Redes VPC"
  2. 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)"

onde

  • 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 é possível controlar.

Console

  1. Acesse a página "Redes VPC" no Console do Google Cloud.
    Acessar a página "Redes VPC"
  2. Clique na sub-rede que você quer atualizar.
  3. Clique em Edit.
  4. 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 ver mais detalhes. Para personalizar os campos de metadados, use a interface de linha de comando gcloud ou a API.
    • a taxa de amostragem. 100% significa que todas as entradas são mantidas.
  5. 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 de 0.0 (sem amostragem) a 1.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 como custom. Se definido como custom, 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, selecione custom 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://www.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:

Para ver mais informações, consulte o método subnetworks.patch.

Desativar os registros de fluxo de VPC para uma sub-rede

Console

  1. Acesse a página "Redes VPC" no Console do Google Cloud.
    Acessar a página "Redes VPC"
  2. Clique na sub-rede que você quer atualizar.
  3. Clique em Editar.
  4. Em Registros de fluxo, selecione Desativar.
  5. 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://www.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 existente, 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 do projeto para esses comandos.

Acessar todos os registros de fluxo

  1. Acesse a página "Registros" no Console do Google Cloud.
    Acessar a página "Registros"
  2. Selecione Sub-rede do GCE no primeiro menu suspenso.
  3. Selecione vpc_flows no segundo menu suspenso.
  4. Clique em OK.

Como alternativa:

  1. Acesse a página "Registros" no Console do Google Cloud.
    Acessar a página "Registros"
  2. 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.
  3. 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"
    
  4. Clique em Enviar filtro.

Acessar registros de uma sub-rede específica

  1. Acesse a página "Registros" no Console do Google Cloud.
    Acessar a página "Registros"
  2. No primeiro menu suspenso, mova o cursor para Sub-rede do GCE e mova-o para a direita para abrir o menu de seleção de sub-rede individual.
  3. No segundo menu suspenso, selecione vpc_flows.
  4. Clique em OK.

Como alternativa:

  1. Acesse a página "Registros" no Console do Google Cloud.
    Acessar a página "Registros"
  2. 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.
  3. Cole o seguinte no campo. Substitua project-id pelo ID do projeto e subnet-name pela sub-rede.
    resource.type="gce_subnetwork"
    logName="projects/project-id/logs/compute.googleapis.com%2Fvpc_flows"
    resource.labels.subnetwork_name="subnet-name"
    
  4. Clique em Enviar filtro.

Como acessar registros para uma VM específica

  1. Acesse a página "Registros" no Console do Google Cloud.
    Acessar a página "Registros"
  2. 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.
  3. 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"
    
  4. Clique em Enviar filtro.

Como acessar registros de tráfego para um intervalo de sub-rede específico

  1. Acesse a página "Registros" no Console do Google Cloud.
    Acessar a página "Registros"
  2. 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.
  3. Cole o seguinte no campo. Substitua project-id pelo ID do projeto e subnet-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)
    
  4. Clique em Enviar filtro.

Como acessar registros de um cluster específico do GKE

  1. Acesse a página "Registros" no Console do Google Cloud.
    Acessar a página "Registros"
  2. 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.
  3. Cole o seguinte no campo. Substitua project-id pelo ID do projeto e subnet-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}"
    
  4. Clique em Enviar filtro.

Acessar registros de portas e protocolos específicos

Para uma porta de destino individual

  1. Acesse a página "Registros" no Console do Google Cloud.
    Acessar a página "Registros"
  2. 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.
  3. 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
    
  4. Clique em Enviar filtro.

Para mais de uma porta de destino

  1. Acesse a página "Registros" no Console do Google Cloud.
    Acessar a página "Registros"
  2. 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.
  3. 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
    
  4. Clique em Enviar filtro.

Como 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.
    1. Vá para Uso de recursos.
    2. Clique na guia Exclusões.
    3. 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, mesmo que você os tenha ativado

  • 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