Ausgehenden Traffic mit Cloud Trace verfolgen

In diesem Dokument wird beschrieben, wie Sie die verteilte Anforderungsverfolgung für Secure Web Proxy mit Cloud Trace konfigurieren.

Informationen zu den Konzepten, den wichtigsten Vorteilen und den Architekturdetails finden Sie unter Übersicht über verteiltes Tracing.

Hinweis

  1. Führen Sie die Schritte zur Ersteinrichtung aus.
  2. Aktivieren Sie die Compute Engine API, die Network Services API und die Cloud Trace API in Ihrem Projekt.

    gcloud services enable \
        compute.googleapis.com \
        networkservices.googleapis.com \
        cloudtrace.googleapis.com
    
  3. Sie benötigen eine aktive Gateway-Instanz für Secure Web Proxy. Weitere Informationen finden Sie unter Secure Web Proxy-Instanz bereitstellen.

  4. Wenn Sie verteilte Tracing-Spans auf HTTP-Ebene generieren und W3C-Trace-Kontextheader für HTTPS-Anfragen weitergeben möchten, müssen Sie die TLS-Prüfung für Ihr Secure Web Proxy-Gateway aktivieren.

Rollen und Berechtigungen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen (Identity and Access Management) zuzuweisen, um die Berechtigungen zu erhalten, die zum Konfigurieren von Telemetrierichtlinien und zum Aufrufen von Traces erforderlich sind:

  • So erstellen, aktualisieren oder löschen Sie Telemetrierichtlinien: Network Services Admin (roles/networkservices.admin) oder Compute Network Admin (roles/compute.networkAdmin)
  • So rufen Sie Trace-Spans in der Google Cloud Konsole auf und analysieren sie: Cloud Trace User (roles/cloudtrace.user)
  • Wenn Sie Trace-Spans in Trace exportieren möchten, müssen die folgenden Dienstkonten die Cloud Trace-Agent-Rolle (roles/cloudtrace.agent) haben:

    • Compute Engine-Dienst-Agent: service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
    • Netzwerksicherheits-Dienst-Agent: service-PROJECT_NUMBER@gcp-sa-networksecurity.iam.gserviceaccount.com
    • Dienstkonten für Client-VMs, wenn Clientanwendungen Spans generieren oder weitergeben

Schema für die Telemetrierichtlinienkonfiguration

Verwenden Sie das folgende Schema, um eine Telemetrierichtlinie in einer YAML-Datei zu definieren:

    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
  

In der folgenden Tabelle werden die Felder in einer Telemetrierichtlinie beschrieben:

Feld Typ Beschreibung
name String Eindeutige Kennung der Telemetrierichtlinie.
telemetryTarget.resources Liste mit Zeichenfolgen Ressourcen-URLs der Secure Web Proxy-Gateways, für die diese Richtlinie gilt. Ihre Gateways müssen sich in derselben Region wie die Richtlinie befinden.

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

Alternativ können Sie das Kurznamenformat verwenden: projects/PROJECT_ID/locations/REGION/gateways/GATEWAY_NAME.

description String Optional. Dieses Feld enthält eine für Menschen lesbare Beschreibung der Telemetrierichtlinie.
tracingConfiguration.samplingRate Float Anteil der zu verfolgenden Anfragen, angegeben als Dezimalzahl zwischen 0.0 (0%) und 1.0 (100%). Beispiel: 0.01 wählt 1% der Anfragen als Stichprobe aus.
tracingConfiguration.parentBasedSampling.enabled Boolesch Gibt an, ob Sie vorgelagerte Entscheidungen zur Trace-Erfassung aktivieren möchten (true oder false).

Verteiltes Tracing konfigurieren

So wenden Sie eine Tracing-Richtlinie mithilfe der Google Cloud CLI auf Ihr Secure Web Proxy-Gateway an:

  1. Erstellen Sie eine YAML-Richtliniendatei mit dem Namen 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
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: ID Ihres Google Cloud -Projekts
    • REGION: Region, in der Ihr Secure Web Proxy-Gateway bereitgestellt wird, z. B. us-central1
    • GATEWAY_NAME: Name Ihrer Secure Web Proxy-Gateway-Instanz
  2. Importieren Sie die Telemetrierichtlinie mit dem Befehl 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. Prüfen Sie mit dem Befehl gcloud beta network-services telemetry-policies describe, ob die Richtlinie angewendet wird:

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

Ziel-Gateways anhängen oder trennen

So aktualisieren Sie die Richtliniendefinition oder hängen mehrere regionale Gateways an:

  1. Aktualisieren Sie die Liste telemetryTarget.resources in der Datei swp-tracing-policy.yaml, damit sie alle Ziel-Gateway-Ressourcen-URIs enthält.

    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. Importieren Sie die aktualisierte Telemetrierichtlinie mit dem Befehl 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
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: ID Ihres Google Cloud -Projekts
    • REGION: Region, in der Ihr Secure Web Proxy-Gateway bereitgestellt wird, z. B. us-central1

Traces in Trace ansehen und analysieren

  1. Rufen Sie in der Google Cloud Console die Seite Trace Explorer auf.

    Zum Trace Explorer

  2. Wählen Sie Ihr Google Cloud Projekt aus.

  3. Suchen Sie im Feld Filter anhand verschiedener Attribute nach Traces.

  4. Klicken Sie im Streudiagramm oder in der Zeitachse auf einen beliebigen Trace, um die Spandetails zu prüfen, z. B. die Gesamtdauer, die Latenz der Proxyverarbeitung und die IP-Details des externen Servers.

Traces mit Logs und Messwerten korrelieren

Secure Web Proxy bietet eine Korrelation zwischen Traces, Logs und Messwerten:

  • Log-Trace-Korrelation: Jeder Proxy-Transaktionslogeintrag, der in Cloud Logging geschrieben wird, enthält ein trace-Feld mit dem Format: projects/PROJECT_ID/traces/TRACE_ID.

    • Klicken Sie im Log-Explorer auf den Logeintrag und wählen Sie dann Trace-Details ansehen aus, um direkt zum entsprechenden Span in Trace zu gelangen.
    • Klicken Sie in Trace im Bereich Trace-Details auf Logs ansehen, um alle Transaktionslogs aufzurufen, die mit dieser Anfrage verknüpft sind.
  • Messwertkorrelation: Vergleichen Sie Latenzspitzen, die in Cloud Monitoring-Messwerten wie networkservices.googleapis.com/https/total_latencies beobachtet werden, mit Aufschlüsselungen von Trace-Spans, um festzustellen, ob eine Latenzspitze im Proxy oder auf dem externen Ursprungsserver aufgetreten ist.

Nächste Schritte