Stackdriver Debugger für Java einrichten

Auf dieser Seite wird gezeigt, wie Sie Ihre Umgebung und Ihre Java-Anwendung für die Verwendung von Stackdriver Debugger konfigurieren. In einigen Umgebungen müssen Sie, damit der Stackdriver Debugger-Agent Daten senden kann, den Zugriffsbereich explizit angeben. Es wird empfohlen, den größtmöglichen Zugriffsbereich festzulegen und anschließend den Zugriff mit Cloud Identity and Access Management einzuschränken. Geben Sie den Zugriffsbereich entsprechend dieser Best Practice für alle Cloud APIs mit der Option cloud-platform an.

App Engine-Standardumgebung

Der Debugger ist standardmäßig aktiviert. Eine Konfiguration ist nicht erforderlich. Die Seite "Fehlerbehebung" in der GCP Console versucht, automatisch die Java-Quelldateien anzuzeigen, die zum Erstellen der App verwendet werden.

Weitere Informationen finden Sie unter Quellcode automatisch auswählen.

Flexible App Engine-Umgebung

Der Debugger ist standardmäßig für die Java-Laufzeit aktiviert. Eine Konfiguration ist nicht erforderlich. Die Seite "Fehlerbehebung" in der GCP Console versucht, automatisch die Java-Quelldateien anzuzeigen, die zum Erstellen der App verwendet werden.

Der Debugger ist standardmäßig für benutzerdefinierte Laufzeiten enthalten, die die von Google bereitgestellten Basis-Images für Java verwenden. Wenn der Standardeinstiegspunkt verwendet wird, ist keine Konfiguration erforderlich. Die Seite "Fehlerbehebung" in der GCP Console versucht, automatisch die Java-Quelldateien anzuzeigen, die zum Erstellen der App verwendet werden.

Folgen Sie der Anleitung zur Einrichtung von Compute Engine, um Stackdriver Debugger mit benutzerdefinierten Laufzeiten zu verwenden, die mit anderen Basis-Images erstellt wurden.

Weitere Informationen finden Sie unter Quellcode automatisch auswählen.

Google Kubernetes Engine

  1. Erstellen Sie Ihren Cluster mit einem der folgenden Zugriffsbereiche:
    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/cloud_debugger

    So erstellen Sie einen Cluster mit gcloud:

    1. (Optional) Aktualisieren Sie gcloud auf die neueste Version:
      gcloud components update
    2. Legen Sie Ihre standardmäßige Projekt-ID fest:
      gcloud config set project [PROJECT_ID]
    3. Wenn Sie mit zonalen Clustern arbeiten, legen Sie Ihre standardmäßige Compute-Zone fest:
      gcloud config set compute/zone [COMPUTE_ZONE]
    4. Wenn Sie mit regionalen Clustern arbeiten, legen Sie Ihre standardmäßige Compute-Region fest:
      gcloud config set compute/region [COMPUTE_REGION]
    5. Führen Sie den Befehl zum Erstellen aus:
      gcloud container clusters create example-cluster-name --scopes https://www.googleapis.com/auth/cloud-platform

    Ausführliche Informationen zum Erstellen eines Clusters finden Sie unter Cluster erstellen.

  2. Folgen Sie der Anleitung für Compute Engine.

Compute Engine

Sie können Stackdriver Debugger für jede Java-App nutzen, die auf einer Google Compute Engine-Instanz ausgeführt wird. Wir empfehlen die Aktivierung auf allen Instanzen, auf denen Ihre App läuft.

  1. Stellen Sie sicher, dass auf Ihren Compute Engine VM-Instanzen Folgendes ausgeführt wird:

    • Ein 64-Bit-Debian-Linux-Image
    • Java JDK Version 7, 8 oder 9
  2. Stellen Sie sicher, dass Ihre Compute Engine-VM-Instanzen mit der Zugriffsbereichsoption Vollen Zugriff auf alle Cloud-APIs zulassen eingerichtet sind oder einen der folgenden Zugriffsbereiche haben:

    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/cloud_debugger
  3. Laden Sie das vorgefertigte Agent-Paket herunter:

    mkdir /opt/cdbg
    wget -qO- https://storage.googleapis.com/cloud-debugger/compute-java/debian-wheezy/cdbg_java_agent_gce.tar.gz | \
        tar xvz -C /opt/cdbg
    
  4. Fügen Sie den Agent Ihrem Java-Aufruf hinzu:
    (Wenn Sie Tomcat oder Jetty verwenden, lesen Sie den Abschnitt Webserver.)

    java -agentpath:/opt/cdbg/cdbg_java_agent.so \
      -Dcom.google.cdbg.module=MODULE \
      -Dcom.google.cdbg.version=VERSION \
      -jar PATH_TO_JAR_FILE
    

    Dabei gilt:

    • PATH_TO_JAR_FILE ist der relative Pfad zur JAR-Datei der App. Beispiel: ~/myapp.jar

    • MODULE ist der Name der App. Zusammen mit der Version identifiziert er die App in der GCP Console. Beispiele: MyApp, Backend oder Frontend

    • VERSION ist die Version der App, z. B. die Build-ID. Die GCP Console zeigt die laufende App als MODULE - VERSION an. Beispiele: v1.0, build_147 oder v20160520.

Der Debugger ist jetzt bereit für die Verwendung mit Ihrer App.

Unter Quellcode automatisch auswählen erfahren Sie, wie die dem Quellcode der bereitgestellten App entsprechenden Dateien automatisch in der Cloud Platform Console angezeigt werden.

Webserver

Java-Webserver starten in der Regel mit einem Bootstrap-Vorgang und die Anpassung der Java-Optionen erfolgt bei jedem Webserver auf andere Art.

Tomcat

Fügen Sie diese Zeile zu /etc/default/tomcat7 oder /etc/default/tomcat8 hinzu:

JAVA_OPTS="${JAVA_OPTS} -agentpath:/opt/cdbg/cdbg_java_agent.so \
  -Dcom.google.cdbg.module=MODULE \
  -Dcom.google.cdbg.version=VERSION"

Wenn Sie Tomcat in einem Docker-Container ausführen, fügen Sie stattdessen diese Zeile in Dockerfile ein:

ENV JAVA_OPTS -agentpath:/opt/cdbg/cdbg_java_agent.so \
              -Dcom.google.cdbg.module=MODULE \
              -Dcom.google.cdbg.version=VERSION

Jetty

Fügen Sie diese Zeilen zu /var/lib/jetty/start.d hinzu:

--exec
-agentpath:/opt/cdbg/cdbg_java_agent.so
-Dcom.google.cdbg.module=MODULE
-Dcom.google.cdbg.version=VERSION

Lokal und an anderer Stelle

  1. Laden Sie das vorgefertigte Agent-Paket des Debuggers herunter:

    mkdir /opt/cdbg
    wget -qO- https://storage.googleapis.com/cloud-debugger/compute-java/debian-wheezy/cdbg_java_agent_service_account.tar.gz | \
        tar xvz -C /opt/cdbg
    
  2. Laden Sie Anmeldedaten für das Dienstkonto herunter.
    Wenn Sie den Stackdriver Debugger-Agent für Java auf Computern verwenden möchten, die nicht von der Google Cloud Platform gehostet werden, muss sich der Agent mithilfe der Anmeldedaten eines GCP-Dienstkontos beim Stackdriver Debugger-Dienst authentifizieren.

    Verwenden Sie die Seite "Dienstkonten" der GCP Console, um eine Anmeldedatendatei für ein bestehendes oder neues Dienstkonto zu erstellen. Das Dienstkonto muss mindestens die Rolle Stackdriver Debugger Agent haben.

    Fügen Sie die JSON-Datei des Dienstkontos zusammen mit dem Java-Debugger-Agent ein.

  3. Fügen Sie den Agent Ihrem Java-Aufruf hinzu:

    java -agentpath:/opt/cdbg/cdbg_java_agent.so \
      -Dcom.google.cdbg.module=MODULE \
      -Dcom.google.cdbg.version=VERSION \
      -Dcom.google.cdbg.auth.serviceaccount.enable=true
      -Dcom.google.cdbg.auth.serviceaccount.jsonfile=/opt/cdbg/gcp-svc.json
      -jar PATH_TO_JAR_FILE
    

    Dabei gilt:

    • PATH_TO_JAR_FILE ist der relative Pfad zur JAR-Datei der App. Beispiel: ~/myapp.jar

    • MODULE ist der Name der App. Zusammen mit der Version identifiziert er die App in der GCP Console. Beispiele: MyApp, Backend oder Frontend

    • VERSION ist die Version der App, z. B. die Build-ID. Die GCP Console zeigt die laufende App als MODULE - VERSION an. Beispiele: v1.0, build_147 oder v20160520.

    • Die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS kann anstelle der Systemeigenschaft auth.serviceaccount.jsonfile verwendet werden.

Der Debugger ist jetzt bereit für die Verwendung mit Ihrer App.

Auf der Seite "Fehlerbehebung" der GCP Console können die lokalen Quelldateien ohne Hochladen für die lokale Entwicklung angezeigt werden. Weitere Informationen finden Sie unter Quellcode manuell auswählen.

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Stackdriver Debugger-Dokumentation