Rastrear o tráfego de saída com o Cloud Trace

Neste documento, explicamos como configurar o rastreamento de solicitações distribuídas para o Secure Web Proxy usando o Cloud Trace.

Para informações sobre os conceitos, principais benefícios e detalhes da arquitetura, consulte a Visão geral do rastreamento distribuído.

Antes de começar

  1. Conclua as etapas de configuração inicial.
  2. Ative a API Compute Engine, Network Services e API Cloud Trace no seu projeto.

    gcloud services enable \
        compute.googleapis.com \
        networkservices.googleapis.com \
        cloudtrace.googleapis.com
    
  3. Verifique se você tem uma instância de gateway do Secure Web Proxy ativa implantada. Para mais informações, consulte Implantar uma instância do Secure Web Proxy.

  4. Para gerar períodos de rastreamento distribuído no nível HTTP e propagar cabeçalhos de contexto de traces do W3C para solicitações HTTPS, ative a inspeção de TLS no gateway Secure Web Proxy.

Papéis e permissões

Para receber as permissões necessárias para configurar políticas de telemetria e visualizar rastreamentos, peça ao administrador para conceder a você os seguintes papéis do Identity and Access Management (IAM):

  • Para criar, atualizar ou excluir políticas de telemetria: Administrador dos serviços de rede (roles/networkservices.admin) ou Administrador de rede do Compute (roles/compute.networkAdmin)
  • Para ver e analisar intervalos de rastreamento no console Google Cloud : Usuário do Cloud Trace (roles/cloudtrace.user)
  • Para exportar intervalos de rastreamento para o Trace, verifique se as seguintes contas de serviço têm o papel de agente do Cloud Trace (roles/cloudtrace.agent):

    • Agente de serviço do Compute Engine: service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
    • Agente de serviço de segurança de rede: service-PROJECT_NUMBER@gcp-sa-networksecurity.iam.gserviceaccount.com
    • Contas de serviço máquina virtual (VMs) do cliente, se os aplicativos cliente gerarem ou propagarem intervalos

Esquema de configuração da política de telemetria

Para definir uma política de telemetria em um arquivo YAML, use o seguinte esquema:

    name: projects/PROJECT_ID/locations/REGION/telemetryPolicies/POLICY_NAME
    telemetryTarget:
      resources:
      - "//networkservices.googleapis.com/projects/PROJECT_ID/locations/REGION/gateways/GATEWAY_NAME"
    description: "OPTIONAL_DESCRIPTION"
    tracingConfiguration:
      samplingRate: SAMPLING_RATE
      parentBasedSampling:
        enabled: true
  

A tabela a seguir descreve os campos em uma política de telemetria:

Campo Tipo Descrição
name String Identificador exclusivo da política de telemetria.
telemetryTarget.resources Lista de strings URLs de recursos dos gateways do Secure Web Proxy a que esta política se aplica. Os gateways precisam estar na mesma região da política.

Formato: //networkservices.googleapis.com/projects/PROJECT_ID/locations/REGION/gateways/GATEWAY_NAME

Como alternativa, use o formato de nome abreviado: projects/PROJECT_ID/locations/REGION/gateways/GATEWAY_NAME.

description String Opcional. Esse campo fornece uma descrição legível da política de telemetria.
tracingConfiguration.samplingRate Ponto flutuante Proporção de solicitações a serem rastreadas, especificada como um número decimal entre 0.0 (0%) e 1.0 (100%). Por exemplo, 0.01 faz a amostragem de 1% das solicitações.
tracingConfiguration.parentBasedSampling.enabled Booleano Indica se você quer ativar decisões de amostragem de rastreamento upstream (true ou false).

Configurar o rastreamento distribuído

Para aplicar uma política de rastreamento ao gateway do Secure Web Proxy usando a Google Cloud CLI, faça o seguinte:

  1. Crie um arquivo de política YAML chamado swp-tracing-policy.yaml.

    cat <<EOF > swp-tracing-policy.yaml
    name: projects/PROJECT_ID/locations/REGION/telemetryPolicies/my-swp-tracing-policy
    telemetryTarget:
      resources:
        - "//networkservices.googleapis.com/projects/PROJECT_ID/locations/REGION/gateways/GATEWAY_NAME"
    description: "Distributed tracing policy for the Secure Web Proxy gateway"
    tracingConfiguration:
      samplingRate: 0.01
      parentBasedSampling:
        enabled: true
    EOF
    

    Substitua:

    • PROJECT_ID: ID do seu projeto Google Cloud
    • REGION: região em que o gateway do Secure Web Proxy está implantado, como us-central1
    • GATEWAY_NAME: nome da instância de gateway do Secure Web Proxy.
  2. Importe a política de telemetria usando o comando gcloud beta network-services telemetry-policies import:

    gcloud beta network-services telemetry-policies import my-swp-tracing-policy \
        --source=swp-tracing-policy.yaml \
        --location=REGION
    
  3. Verifique se a política foi aplicada usando o comando gcloud beta network-services telemetry-policies describe:

    gcloud beta network-services telemetry-policies describe my-swp-tracing-policy \
        --location=REGION
    

Anexar ou remover gateways de destino

Para atualizar a definição de política ou anexar vários gateways regionais, faça o seguinte:

  1. Atualize a lista telemetryTarget.resources no arquivo swp-tracing-policy.yaml para incluir todos os URIs de recursos do gateway de destino.

    telemetryTarget:
      resources:
        - "//networkservices.googleapis.com/projects/PROJECT_ID/locations/us-central1/gateways/prod-swp-uc1"
        - "//networkservices.googleapis.com/projects/PROJECT_ID/locations/us-central1/gateways/staging-swp-uc1"
    
  2. Importe a política de telemetria atualizada usando o comando gcloud beta network-services telemetry-policies import:

    gcloud beta network-services telemetry-policies import my-swp-tracing-policy \
        --source=swp-tracing-policy.yaml \
        --location=REGION
    

    Substitua:

    • PROJECT_ID: ID do seu projeto Google Cloud
    • REGION: região em que o gateway do Secure Web Proxy está implantado, como us-central1

Visualizar e analisar rastreamentos no Trace

  1. No console Google Cloud , acesse a página Explorador de traces.

    Acessar o Explorador de traces

  2. Selecionar o projeto Google Cloud .

  3. No campo Filtro, pesquise traces usando vários atributos.

  4. Clique em qualquer trace no gráfico de dispersão ou na visualização da linha do tempo para inspecionar os detalhes do período, como duração total, latência de processamento do proxy e detalhes do IP do servidor externo.

Correlacionar traces com registros e métricas

O Secure Web Proxy oferece correlação entre rastreamentos, registros e métricas:

  • Correlação de registro e rastreamento: cada entrada de registro de transação de proxy gravada no Cloud Logging contém um campo trace com o formato: projects/PROJECT_ID/traces/TRACE_ID.

    • No Análise de registros, clique na entrada de registro e selecione Ver detalhes do trace para navegar diretamente até o período correspondente no Trace.
    • No Trace, clique em Mostrar registros no painel Detalhes do trace para ver todos os registros de transações associados a essa solicitação.
  • Correlação de métricas: compare os picos de latência observados nas métricas do Cloud Monitoring, como networkservices.googleapis.com/https/total_latencies, com os detalhamentos de intervalos de rastreamento para identificar se um pico de latência ocorreu no proxy ou no servidor de origem externa.

A seguir