Tracer le trafic sortant avec Cloud Trace

Ce document explique comment configurer le traçage des requêtes distribuées pour Secure Web Proxy à l'aide de Cloud Trace.

Pour en savoir plus sur les concepts, les principaux avantages et les détails de l'architecture, consultez la présentation du traçage distribué.

Avant de commencer

  1. Suivez la procédure de configuration initiale.
  2. Activez les API Compute Engine, Network Services et API Cloud Trace dans votre projet.

    gcloud services enable \
        compute.googleapis.com \
        networkservices.googleapis.com \
        cloudtrace.googleapis.com
    
  3. Assurez-vous qu'une instance de passerelle Secure Web Proxy active est déployée. Pour en savoir plus, consultez Déployer une instance Secure Web Proxy.

  4. Pour générer des spans de trace distribuée au niveau HTTP et propager les en-têtes de contexte de trace W3C pour les requêtes HTTPS, vous devez activer l'inspection TLS sur votre passerelle Secure Web Proxy.

Rôles et autorisations

Pour obtenir les autorisations nécessaires pour configurer les règles de télémétrie et afficher les traces, demandez à votre administrateur de vous accorder les rôles IAM (Identity and Access Management) suivants :

  • Pour créer, modifier ou supprimer des règles de télémétrie : Administrateur des services réseau (roles/networkservices.admin) ou Administrateur de réseau Compute (roles/compute.networkAdmin)
  • Pour afficher et analyser les étendues de trace dans la console Google Cloud  : Utilisateur Cloud Trace (roles/cloudtrace.user)
  • Pour exporter des étendues de trace vers Trace, assurez-vous que les comptes de service suivants disposent du rôle Agent Cloud Trace (roles/cloudtrace.agent) :

    • Agent de service Compute Engine : service-PROJECT_NUMBER@compute-system.
    • Agent de service de sécurité du réseau : service-PROJECT_NUMBER@gcp-sa-networksecurity.
    • Comptes de service des machines virtuelles (VM) clientes, si les applications clientes génèrent ou propagent des spans

Schéma de configuration des règles de télémétrie

Pour définir une règle de télémétrie dans un fichier YAML, utilisez le schéma suivant :

    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
  

Le tableau suivant décrit les champs d'une règle de télémétrie :

Champ Type Description
name Chaîne Identifiant unique de la règle de télémétrie.
telemetryTarget.resources Liste de chaînes URL des ressources des passerelles Secure Web Proxy auxquelles cette règle s'applique. Vos passerelles doivent se trouver dans la même région que la règle.

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

Vous pouvez également utiliser le format de nom court : projects/PROJECT_ID/locations/REGION/gateways/GATEWAY_NAME.

description Chaîne Facultatif. Ce champ fournit une description lisible de la règle de télémétrie.
tracingConfiguration.samplingRate Float Proportion des requêtes à tracer, spécifiée sous la forme d'un nombre décimal compris entre 0.0 (0%) et 1.0 (100%). Par exemple, 0.01 échantillonne 1% des requêtes.
tracingConfiguration.parentBasedSampling.enabled Booléen Indique si vous souhaitez activer les décisions d'échantillonnage des traces en amont (true ou false).

Configurer le traçage distribué

Pour appliquer une règle de traçage à votre passerelle Secure Web Proxy à l'aide de Google Cloud CLI, procédez comme suit :

  1. Créez un fichier de règles YAML nommé 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
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID de votre projet Google Cloud
    • REGION : région où votre passerelle Secure Web Proxy est déployée, par exemple us-central1
    • GATEWAY_NAME : nom de l'instance de passerelle Secure Web Proxy
  2. Importez la règle de télémétrie à l'aide de la commande 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. Vérifiez que la règle est appliquée à l'aide de la commande gcloud beta network-services telemetry-policies describe :

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

Associer ou dissocier des passerelles cibles

Pour mettre à jour la définition de la règle ou associer plusieurs passerelles régionales, procédez comme suit :

  1. Mettez à jour la liste telemetryTarget.resources dans le fichier swp-tracing-policy.yaml pour inclure tous les URI de ressources de passerelle cibles.

    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. Importez la règle de télémétrie mise à jour à l'aide de la commande 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
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID de votre projet Google Cloud
    • REGION : région où votre passerelle Secure Web Proxy est déployée, par exemple us-central1

Afficher et analyser les traces dans Trace

  1. Dans la console Google Cloud , accédez à la page Explorateur Trace.

    Accéder à l'explorateur Trace

  2. Sélectionnez votre projet Google Cloud .

  3. Dans le champ Filtre, recherchez des traces à l'aide de différents attributs.

  4. Cliquez sur une trace dans le graphique à nuage de points ou dans la vue chronologique pour inspecter les détails du segment, tels que la durée totale, la latence de traitement du proxy et les détails de l'adresse IP du serveur externe.

Corréler les traces avec les journaux et les métriques

Secure Web Proxy fournit une corrélation entre les traces, les journaux et les métriques :

  • Corrélation entre les journaux et les traces : chaque entrée de journal de transaction de proxy écrite dans Cloud Logging contient un champ trace au format projects/PROJECT_ID/traces/TRACE_ID.

    • Dans l'explorateur de journaux, cliquez sur l'entrée de journal, puis sélectionnez Afficher les détails de la trace pour accéder directement à la portée correspondante dans Trace.
    • Dans Trace, cliquez sur Afficher les journaux dans le volet Détails de la trace pour afficher tous les journaux de transactions associés à cette requête.
  • Corrélation des métriques : comparez les pics de latence observés dans les métriques Cloud Monitoring, telles que networkservices.googleapis.com/https/total_latencies, avec les répartitions des segments de trace pour identifier si un pic de latence s'est produit dans le proxy ou au niveau du serveur d'origine externe.

Étapes suivantes