Traccia il traffico in uscita con Cloud Trace

Questo documento spiega come configurare il tracciamento distribuito delle richieste per Secure Web Proxy utilizzando Cloud Trace.

Per informazioni su concetti, vantaggi principali e dettagli dell'architettura, consulta la panoramica di Distributed Tracing.

Prima di iniziare

  1. Completa i passaggi di configurazione iniziale.
  2. Abilita l'API Compute Engine, l'API Network Services e l'Cloud Trace API nel tuo progetto.

    gcloud services enable \
        compute.googleapis.com \
        networkservices.googleapis.com \
        cloudtrace.googleapis.com
    
  3. Assicurati di aver eseguito il deployment di un'istanza di gateway Secure Web Proxy attiva. Per saperne di più, consulta Deploy un'istanza Secure Web Proxy.

  4. Per generare intervalli di traccia distribuita a livello HTTP e propagare le intestazioni del contesto della traccia W3C per le richieste HTTPS, devi attivare l'ispezione TLS sul gateway Secure Web Proxy.

Ruoli e autorizzazioni

Per ottenere le autorizzazioni necessarie per configurare le policy di telemetria e visualizzare le tracce, chiedi all'amministratore di concederti i seguenti ruoli IAM (Identity and Access Management):

  • Per creare, aggiornare o eliminare criteri di telemetria: Network Services Admin (roles/networkservices.admin) o Compute Network Admin (roles/compute.networkAdmin)
  • Per visualizzare e analizzare gli intervalli di traccia nella console Google Cloud : Utente Cloud Trace (roles/cloudtrace.user)
  • Per esportare gli span di traccia in Trace, assicurati che i seguenti service account dispongano del ruolo Agente Cloud Trace (roles/cloudtrace.agent):

    • Service agent Compute Engine: service-PROJECT_NUMBER@compute-system.
    • Service agent per la sicurezza della rete: service-PROJECT_NUMBER@gcp-sa-networksecurity.
    • Service account della macchina virtuale (VM) client, se le applicazioni client generano o propagano gli span

Schema di configurazione delle policy di telemetria

Per definire una policy di telemetria in un file YAML, utilizza il seguente schema:

    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
  

La tabella seguente descrive i campi di una policy di telemetria:

Campo Tipo Descrizione
name Stringa Identificatore univoco del criterio di telemetria.
telemetryTarget.resources Elenco di stringhe URL delle risorse dei gateway Secure Web Proxy a cui si applica questa policy. I gateway devono trovarsi nella stessa regione del criterio.

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

In alternativa, utilizza il formato del nome breve: projects/PROJECT_ID/locations/REGION/gateways/GATEWAY_NAME.

description Stringa Facoltativo. Questo campo fornisce una descrizione leggibile della policy di telemetria.
tracingConfiguration.samplingRate Numero in virgola mobile Proporzione di richieste da tracciare, specificata come numero decimale compreso tra 0.0 (0%) e 1.0 (100%). Ad esempio, 0.01 campiona l'1% delle richieste.
tracingConfiguration.parentBasedSampling.enabled Booleano Indica se vuoi attivare le decisioni di campionamento delle tracce upstream (true o false).

Configurare il tracciamento distribuito

Per applicare una policy di tracciamento al gateway Secure Web Proxy utilizzando Google Cloud CLI, segui questi passaggi:

  1. Crea un file di policy YAML denominato 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
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto
    • REGION: la regione in cui viene deployment del gateway Secure Web Proxy, ad esempio us-central1
    • GATEWAY_NAME: il nome dell'istanza gateway Secure Web Proxy
  2. Importa la policy di telemetria utilizzando il 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. Verifica che la policy sia applicata utilizzando il comando gcloud beta network-services telemetry-policies describe:

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

Collegare o scollegare i gateway di destinazione

Per aggiornare la definizione della policy o allegare più gateway regionali:

  1. Aggiorna l'elenco telemetryTarget.resources nel file swp-tracing-policy.yaml in modo da includere tutti gli URI delle risorse gateway di destinazione.

    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. Importa la policy di telemetria aggiornata utilizzando il 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
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto
    • REGION: la regione in cui viene deployment del gateway Secure Web Proxy, ad esempio us-central1

Visualizzare e analizzare le tracce in Trace

  1. Nella console Google Cloud , vai alla pagina Esplora tracce.

    Vai a Esplora tracce

  2. Selezionare il tuo progetto Google Cloud .

  3. Nel campo Filtro, cerca le tracce utilizzando vari attributi.

  4. Fai clic su una traccia nel grafico a dispersione o nella visualizzazione cronologica per esaminare i dettagli dello span, come durata totale, latenza di elaborazione del proxy e dettagli dell'IP del server esterno.

Correlare le tracce con log e metriche

Secure Web Proxy fornisce la correlazione tra tracce, log e metriche:

  • Correlazione log-trace: ogni voce di log delle transazioni proxy scritta in Cloud Logging contiene un campo trace con il formato: projects/PROJECT_ID/traces/TRACE_ID.

    • In Esplora log, fai clic sulla voce di log e poi seleziona Visualizza dettagli trace per passare direttamente allo span corrispondente in Trace.
    • In Trace, fai clic su Mostra log nel riquadro Dettagli traccia per visualizzare tutti i log delle transazioni associati alla richiesta.
  • Correlazione delle metriche: confronta i picchi di latenza osservati nelle metriche di Cloud Monitoring, ad esempio networkservices.googleapis.com/https/total_latencies, con le suddivisioni degli intervalli di traccia per identificare se si è verificato un picco di latenza all'interno del proxy o nel server di origine esterno.

Passaggi successivi