APM-Java-Agent durch Deployment bereitstellen

Nach erfolgreichem Provisioning des APM-Java-Agent können Sie den APM-Java-Agent durch Deployment bereitstellen.

Um den APM-Java-Agent in einer beliebigen Java-Anwendung bereitzustellen, müssen Sie den Parameter -javaagent zum JVM-Startskript hinzufügen. Je nach Java-Umgebung, Anwendungsserver oder Microservice verfügen Benutzer über Shell- oder Bat-Startskripte oder eine andere Möglichkeit zur Ausführung der Java-Befehlszeile.

In den folgenden Beispielen wird beschrieben, wie Sie den APM-Java-Agent auf den folgenden Java-Anwendungen bereitstellen:

Oracle WebLogic Server

Nachfolgend finden Sie Informationen zum Deployment des APM-Java-Agent auf Oracle WebLogic Server.

  1. Legen Sie eine Variable fest, die auf das Zielverzeichnis des Anwendungsservers verweist. Dies ist das Verzeichnis, in dem der APM-Java-Agent durch Provisioning bereitgestellt wird.

    Legen Sie die Variable $DOMAIN_HOME so fest, dass sie auf das Domainverzeichnis des Oracle WebLogic-Servers verweist, und vergewissern Sie sich, dass der APM-Java-Agent im selben Zielverzeichnis durch Provisioning bereitgestellt wurde, bevor Sie den nächsten Schritt ausführen.

    Anwendungsserver Variableninformationen für Zielverzeichnis
    Oracle WebLogic Server Legen Sie die Variable $DOMAIN_HOME so fest, dass sie auf die Domain des Oracle WebLogic-Servers verweist.
    export DOMAIN_HOME=<Oracle WebLogic Server Domain>
  2. Erstellen Sie eine Backupkopie der Datei startWebLogic.sh:
    cd $DOMAIN_HOME/bin
    cp startWebLogic.sh startWebLogic.sh.orig
  3. Bearbeiten Sie in einem Texteditor das ursprüngliche Skript startWebLogic.sh, und fügen Sie die Option von -javaagent hinzu.
    1. Wenn Sie den APM-Java-Agent auf dem Oracle WebLogic-Administrationsserver und Managed Servern durch Deployment bereitstellen, fügen Sie der Gruppe von JAVA_OPTIONS nach dem Aufruf von setDomainEnv.sh die folgende Option von -javaagent hinzu:
      JAVA_OPTIONS="${JAVA_OPTIONS} -javaagent:$DOMAIN_HOME/oracle-apm-agent/bootstrap/ApmAgent.jar"
    2. Wenn Sie den APM-Java-Agent nur auf Managed Servern durch Deployment bereitstellen, fügen Sie der Gruppe von JAVA_OPTIONS in einer if-Anweisung nach dem Aufruf von setDomainEnv.sh die folgende Option von -javaagent hinzu:
      if [ "$SERVER_NAME" != "AdminServer" ] ; then
              set JAVA_OPTIONS="${JAVA_OPTIONS} -javaagent:$DOMAIN_HOME/oracle-apm-agent/bootstrap/ApmAgent.jar"
      fi
  4. Stoppen Sie den Oracle WebLogic-Server, und starten Sie ihn neu:
    cd $DOMAIN_HOME/bin
    ./stopWebLogic.sh
    cd ..
    nohup ./startWebLogic.sh >& startup.log &

    Wenn Sie Managed Server verwenden, stoppen Sie diese ebenfalls, und starten Sie sie neu:

    cd $DOMAIN_HOME/bin
            ./stopManagedWebLogic.sh {SERVER_NAME} {ADMIN_URL} {USER_NAME} {PASSWORD}
            nohup ./startManagedWebLogic.sh {SERVER_NAME} {ADMIN_URL} >& {SERVER_NAME}.log &
    Hinweis

    Beachten Sie, dass die Version $DOMAIN_HOME von startWebLogic.sh verwendet wird, obwohl Sie die Version $DOMAIN_HOME/bin bearbeitet haben. Wenn Sie den Befehl von einer höheren Ebene aufrufen (von $DOMAIN_HOME), wird der Befehl von einer niedrigeren Ebene aufgerufen (von $DOMAIN_HOME/bin). Der Befehl stopWebLogic.sh wird jedoch aus dem Verzeichnis $DOMAIN_HOME/bin aufgerufen.

Nachdem der APM-Java-Agent erfolgreich durch Deployment bereitgestellt wurde, wird die Meldung Oracle APM Agent: Initialized AgentInstance im Serverstartlog angezeigt.

Apache Tomcat-Server

Nachfolgend finden Sie Informationen zum Deployment des APM-Java-Agent auf dem Apache Tomcat-Server.

  1. Legen Sie eine Variable fest, die auf das Zielverzeichnis des Anwendungsservers verweist. Dies ist das Verzeichnis, in dem der APM-Java-Agent durch Provisioning bereitgestellt wird.

    Legen Sie die Variable $CATALINA_HOME so fest, dass sie auf das Domainverzeichnis des Apache Tomcat-Servers verweist, und vergewissern Sie sich, dass der APM-Java-Agent im selben Zielverzeichnis durch Provisioning bereitgestellt wurde, bevor Sie den nächsten Schritt ausführen.

    Anwendungsserver Variableninformationen für Zielverzeichnis
    Apache Tomcat-Server Legen Sie die Variable $CATALINA_HOME so fest, dass sie auf das Zielverzeichnis des Apache Tomcat-Servers verweist.
    • Wenn Sie eine Bash-Shell verwenden:
      export CATALINA_HOME=<Apache Tomcat Server destination directory>
    • Wenn Sie eine C-Shell verwenden:
      setenv CATALINA_HOME "<Apache Tomcat Server destination directory>"
  2. Erstellen Sie eine Backupkopie der Datei catalina.sh.
    $ cd $CATALINA_HOME/bin
    $ cp catalina.sh catalina.sh.orig
  3. Bearbeiten Sie in einem Texteditor die ursprüngliche Datei catalina.sh, und fügen Sie die folgende Option von -javaagent zu CATALINA_OPTS hinzu. Nehmen Sie die Änderung außerhalb von if-Anweisungen oder Codeblöcken vor, die beim Hochfahren des Servers möglicherweise nicht ausgeführt werden. Dadurch wird sichergestellt, dass das Kennzeichen -javaagent immer den Serverstartoptionen hinzugefügt wird.
    CATALINA_OPTS="${CATALINA_OPTS} -javaagent:$CATALINA_HOME/oracle-apm-agent/bootstrap/ApmAgent.jar"
  4. Stoppen Sie den Apache Tomcat-Server, und starten Sie ihn neu:
    $ cd $CATALINA_HOME/bin                      
    $ ./shutdown.sh
    $ ./startup.sh

Nachdem der APM-Java-Agent erfolgreich durch Deployment bereitgestellt wurde, wird die Meldung Oracle APM Agent: Initialized AgentInstance im Serverstartlog angezeigt.

Weitere Informationen finden Sie im Tutorial APM-Java-Agent auf einem Tomcat-Anwendungsserver installieren.

Jetty-Server

Im Folgenden wird beschrieben, wie Sie den APM-Java-Agent auf dem Jetty-Server bereitstellen.

  1. Legen Sie eine Variable fest, die auf das Zielverzeichnis des Anwendungsservers verweist. Dies ist das Verzeichnis, in dem der APM-Java-Agent durch Provisioning bereitgestellt wird.

    Legen Sie die Variable JETTY_HOME so an, dass sie auf das Zielverzeichnis des Jetty-Servers verweist (wo die Jetty-Software extrahiert wurde), und vergewissern sie sich, dass der APM-Java-Agent im selben Zielverzeichnis durch Provisioning bereitgestellt wurde, bevor Sie den nächsten Schritt ausführen.

  2. Starten Sie den Jetty-Server.
    java -javaagent:/<Destination_Directory>/oracle-apm-agent/bootstrap/ApmAgent.jar -jar $JETTY_HOME/start.jar

Nachdem der APM-Java-Agent erfolgreich durch Deployment bereitgestellt wurde, wird die Meldung Oracle APM Agent: Initialized AgentInstance im Serverstartlog angezeigt.

Spring Boot

Nachfolgend finden Sie Informationen zum Deployment eines APM-Java-Agent auf einem Spring Boot-Microservice mit eingebettetem Apache Tomcat.

Es wird davon ausgegangen, dass Sie die erforderlichen Aufgaben abgeschlossen und den APM-Java-Agent durch Provisioning bereitgestellt haben. Außerdem müssen Sie sich vergewissern, dass Sie der Datei application.properties der Spring Boot-Anwendung die folgenden Eigenschaften hinzugefügt haben, um Apache Tomcat-MBeans zu aktivieren:
spring.jmx.enabled=true
server.tomcat.mbeanregistry.enabled=true

Alternativ können Sie die obigen Eigenschaften hinzufügen: spring.jmx.enabled und server.tomcat.mbeanregistry.enabled als Systemeigenschaften in der Befehlszeile.

Um den APM-Java-Agent durch Deployment bereitzustellen, fügen Sie dem Startskript des Microservice die folgende Option von -javaagent hinzu. Beachten Sie, dass <Destination Directory> das Verzeichnis angibt, in dem Sie den Agent durch Provisioning bereitgestellt haben.
java -javaagent:<Destination Directory>/oracle-apm-agent/bootstrap/ApmAgent.jar -jar target/<microservice.jar>

Nachdem der APM-Java-Agent erfolgreich durch Deployment bereitgestellt wurde, wird die Meldung Oracle APM Agent: Initialized AgentInstance im Microservice-Startlog angezeigt.

JBoss-Server

Im Folgenden wird beschrieben, wie Sie den APM-Java-Agent auf dem JBoss-Server bereitstellen.

Die folgenden Anweisungen gelten für JBoss EAP und Wildfly.

  1. Legen Sie eine Variable fest, die auf das Zielverzeichnis des Anwendungsservers verweist. Dies ist das Verzeichnis, in dem der APM-Java-Agent durch Provisioning bereitgestellt wird.

    Legen Sie die Variable $JBOSS_HOME so fest, dass sie auf das Zielverzeichnis des JBoss-Servers verweist, und bestätigen Sie, dass der APM-Java-Agent in demselben Zielverzeichnis bereitgestellt wurde, bevor Sie den nächsten Schritt ausführen.

    Anwendungsserver Variableninformationen für Zielverzeichnis
    JBoss-Server

    Legen Sie die Variable $JBOSS_HOME so fest, dass sie auf das Zielverzeichnis des Servers JBoss verweist.

    • Wenn Sie eine Bash-Shell verwenden:
      export JBOSS_HOME=<JBoss Server destination directory>
    • Wenn Sie eine C-Shell verwenden:
      setenv JBOSS_HOME "<JBoss Server destination directory>"
  2. Erstellen Sie eine Kopie der Datei standalone.conf:
    cd $JBOSS_HOME/bin
    cp standalone.conf standalone.conf.orig
  3. Verwenden Sie einen Texteditor, bearbeiten Sie die ursprüngliche Datei standalone.conf, und fügen Sie die folgenden Java-Optionen zu JAVA_OPTS hinzu. Nehmen Sie die Änderung außerhalb von if-Anweisungen oder Codeblöcken vor, die beim Hochfahren des Servers möglicherweise nicht ausgeführt werden.
    • Fügen Sie die Option -javaagent zu JAVA_OPTS hinzu.
      JAVA_OPTS="$JAVA_OPTS -javaagent:$JBOSS_HOME/oracle-apm-agent/bootstrap/ApmAgent.jar"
    • Bearbeiten Sie die Java-Eigenschaft jboss.modules.system.pkgs, um "com.oracle.apm" einzuschließen.

      Beispiel:

      JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=org.jboss.byteman,org.jboss.logmanager,com.oracle.apm"
      Hinweis

      Jede Umgebung ist unterschiedlich. Die Eigenschaft des Jboss-Servers kann andere Packages enthalten als im obigen Beispiel.
  4. JBoss-Server stoppen und neu starten:
    cd $JBOSS_HOME/bin                      
    ./jboss-cli.sh -c :shutdown                        
    nohup ./standalone.sh -b 0.0.0.0&> startup.log &

Nachdem der APM-Java-Agent erfolgreich durch Deployment bereitgestellt wurde, wird die Meldung Oracle APM Agent: Initialized AgentInstance im Serverstartlog angezeigt.

Docker und Kubernetes

Im Folgenden wird beschrieben, wie Sie einen APM-Java-Agent in einem Docker-Container und Oracle Container Engine for Kubernetes (OKE) bereitstellen.

Für das Deployment des APM-Java-Agent in Docker- und Kubernetes-Umgebungen sind verschiedene Optionen verfügbar. Prüfen Sie unten, und wählen Sie das Szenario aus, das Ihren Geschäftsanforderungen entspricht:
  1. APM-Java-Agent im Docker-Containerimage bereitstellen
  2. APM-Java-Agent mit OpenTelemetry-Operator bereitstellen
  3. APM-Java-Agent auf einem gemounteten Volume bereitstellen

APM-Java-Agent im Docker-Containerimage bereitstellen

Hier finden Sie Informationen zum Deployment eines APM-Java-Agent in einem Docker-Containerimage und in Oracle Container Engine for Kubernetes (OKE).

Abbildung 3-1: APM-Java-Agent in Docker-Containerimage bereitstellen

APM-Java-Agent in Docker-Containerimage bereitstellen

Empfehlung:

Verwenden Sie diese Option, wenn Änderungen am Docker-Containerimage möglich sind.

Beispiel: Wenn Sie die APM-Agent-Konfiguration ändern müssen, können Sie Änderungen am Docker-Image vornehmen.

So stellen Sie den APM-Java-Agent bereit:

  1. Bevor Sie fortfahren, bestätigen Sie, dass Sie die Voraussetzungen erfüllt und den APM-Java-Agent bereitgestellt haben.
    Hinweis

    Beim Provisioning des APM-Java-Agent wird empfohlen, ihn an einem beliebigen Speicherort Ihres lokalen Rechners bereitzustellen und anschließend in ein Docker-Image zu kopieren.
  2. Ändern Sie Dockerfile, um den APM-Java-Agent in ein Docker-Image zu kopieren:
    COPY <DESTINATION_DIRECTORY>/oracle-apm-agent <Docker_Image_Directory>/oracle-apm-agent/

    Beachten Sie, dass <DESTINATION_DIRECTORY> den Speicherort auf Ihrem lokalen Rechner angibt, an dem Sie den APM-Java-Agent durch Provisioning bereitgestellt haben, und <Docker_Image_Directory> das Verzeichnis im Docker-Image angibt, in das Sie den APM-Java-Agent kopieren. <Docker_Image_Directory> kann auch das Zielverzeichnis des Anwendungsservers in Docker sein, z.B. $DOMAIN_HOME, wenn Sie mit Oracle WebLogic Server arbeiten.

  3. Fügen Sie dem Startskript des Anwendungsservers die folgende Option von -javaagent hinzu:
    java -javaagent:<Docker_Image_Directory>/oracle-apm-agent/bootstrap/ApmAgent.jar -jar target/<appserver.jar>
  4. Erstellen Sie mit dem integrierten APM-Java-Agent und dem geänderten Startskript ein neues Docker-Image, und übertragen Sie das Image per Push in die Registry.

Wenn Sie Ihre Docker-Container mit Kubernetes verwalten, aktualisieren Sie die Kubernetes-Konfiguration so, dass das neue Docker-Image verwendet wird, und starten Sie den Kubernetes-Pod neu.

Außerdem können Sie mit der Downward-API weitere Dimensionen festlegen, die vom Kubernetes-Pod gemeldet werden sollen, indem Sie die folgenden Umgebungs- und Volume-Einstellungen in die Deployment-Spezifikation (yaml-Datei) des Kubernetes-Pods kopieren. Informationen zur Downward-API finden Sie unter The Downward API in der Kubernetes-Dokumentation.

Umgebungseinstellungen

spec:
  containers:
  - name: <container-name>
    image: image: <your-registry>/<your-docker-image>:latest
    env:
      - name: APM_ATTRIBUTES_K8S_POD_NAME
        valueFrom:
          fieldRef:
            fieldPath: metadata.name
      - name: APM_ATTRIBUTES_K8S_NAMESPACE_NAME
        valueFrom:
          fieldRef:
            fieldPath: metadata.namespace
      - name: APM_ATTRIBUTES_K8S_NODE_NAME
        valueFrom:
          fieldRef:
            fieldPath: spec.nodeName

Volume-Einstellungen

spec:
  containers:
  - name: <container-name>
    image: image: <your-registry>/<your-docker-image>:latest
    volumeMounts:
      - name: apm-attributes-k8s
        mountPath: /etc/apm-attributes-k8s
    volumes:
      - name: apm-attributes-k8s
        downwardAPI:
         items:
           - path: "labels"
             fieldRef:
               fieldPath: metadata.labels
           - path: "annotations"
             fieldRef:
               fieldPath: metadata.annotations
Hinweis

Wenn für das Kubernetes-Deployment keine Labels und/oder Annotationen vorhanden sind, verursacht die Downward-API beim Deployment der Anwendung einen Fehler. In diesem Fall müssen Sie den Eintrag für die Downward-API entfernen, der metadata.labels und/oder metadata.annotations entspricht.

APM-Java-Agent mit OpenTelemetry-Operator bereitstellen

Im Folgenden finden Sie Informationen zum Deployment eines APM-Java-Agent mit dem Operator OpenTelemetry, um den APM-Java-Agent automatisch in die Java-Anwendungspods zu injizieren und zu konfigurieren, die auf Kubernetes-(K8s-)Clustern ausgeführt werden.

Abbildung 3-2: APM-Java-Agent mit dem Operator OpenTelemetry bereitstellen

APM-Java-Agent mit OpenTelemetry-Operator bereitstellen

Empfehlung:

Verwenden Sie diese Option, wenn das Docker-Containerimage nicht aktualisiert werden kann und Sie APM-Java-Agent-Konfigurationsänderungen lieber mit der benutzerdefinierten Kubernetes-Ressource (CR) vornehmen möchten, um den APM-Agent beim Start automatisch in die JVMs zu injizieren.

Überlegungen zu Docker und Kubernetes:
  • Vermeiden Sie bei der Docker-Imageversionierung die Verwendung des Tags :latest beim Deployment von Containern in der Produktion, da es schwieriger ist, zu verfolgen, welche Version des Images ausgeführt wird und ein ordnungsgemäßes Rollback schwieriger ist. Geben Sie stattdessen ein aussagekräftiges Tag wie v1.12.1.3 an.
  • Erstellen Sie für Kubernetes Backups der benutzerdefinierten Kubernetes-Ressourcen (CRs) und Configmaps.

Voraussetzung: Installieren Sie den Operator OpenTelemetry im Kubernetes-Cluster.

Es stehen drei verschiedene Optionen zur Verfügung: Operatorreleasemanifest, Operator-Helm-Diagramm oder Operatorhub.

In den meisten Fällen sollte ein cert-manager installiert werden. Wenn die Helm-Diagrammoption verwendet wird, können Sie stattdessen ein selbstsigniertes Zertifikat generieren.

Wenn der Cert-Manager installiert werden muss, führen Sie den folgenden Befehl aus:
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.14.2/cert-manager.yaml

Um den Operator OpenTelemetry zu installieren, führen Sie den folgenden Befehl aus:

kubectl apply -f https://github.com/open-telemetry/opentelemetry-operator/releases/latest/download/opentelemetry-operator.yaml

APM-Java-Agent bereitstellen

So stellen Sie den APM-Java-Agent bereit:

  1. Erstellen Sie eine benutzerdefinierte Kubernetes-Ressource (CR).

    Um die automatische Instrumentierung zu verwalten, muss dem Operator OpenTelemetry Informationen zum APM-Java-Agent und seiner Konfiguration mit der Benutzerdefinierten Ressourcendefinition (CRD) bereitgestellt werden.

    Diese benutzerdefinierte Ressource wird vom Operator verwendet, um den Agent in den Pod zu kopieren und ihm die erforderliche Konfiguration hinzuzufügen.

    Um die CR zu erstellen, führen Sie den folgenden Befehl aus:
    kubectl apply -f - <<EOF
    apiVersion: opentelemetry.io/v1alpha1
    kind: Instrumentation
    metadata:
      name: inst-apm-java
      namespace: opentelemetry-operator-system
    spec:
      java:
        image: container-registry.oracle.com/oci_observability_management/oci-apm-java-agent:1.15.0.516
        env:
          - name: OTEL_com_oracle_apm_agent_data_upload_endpoint
            value: <data-upload-endpoint>
          - name: OTEL_com_oracle_apm_agent_private_data_key
            value: <private-data-key>
    EOF
    Dabei gilt:
    Die erstellte CR kann mit dem folgenden Befehl abgefragt werden:
    kubectl get otelinst -n opentelemetry-operator-system
    Alle Endpunkte und Umgebungsvariablen müssen korrekt sein, damit die automatische Instrumentierung ordnungsgemäß funktioniert.
  2. Fügen Sie die Kubernetes-Annotation hinzu.

    Der Operator OpenTelemetry verwendet die Kubernetes-Annotation, um zu entscheiden, welche Pods automatisch mit dem APM-Java-Agent injiziert werden sollen.

    Die Anmerkung kann einem Namespace hinzugefügt werden. In diesem Fall werden alle Pods in diesem Namespace injiziert. Die Annotation kann auch einzelnen PodSpec-Objekten hinzugefügt werden, die als Teil von Deployment, Statefulset und anderen Ressourcen verfügbar sind.

    Anmerkung:
    instrumentation.opentelemetry.io/inject-java: "opentelemetry-operator-system/inst-apm-java"
    So beginnen Sie mit der Bearbeitung des Namespace:
    • Führen Sie den folgenden Befehl aus:
      kubectl edit namespace <your-namespace-name>
    • Bearbeiten Sie den Namespace, nachdem der Editor geöffnet wurde. Beispiel: der vi-Editor.
    • Fügen Sie die Anmerkung zum Namespace hinzu. Denken Sie daran, Einrückung ist sehr wichtig, um es als gültige YAML-Datei zu machen.
    Beispiel:
    apiVersion: v1
    kind: Namespace
    metadata:
      labels:
        kubernetes.io/metadata.name: mynamespace
      annotations:
        instrumentation.opentelemetry.io/inject-java: "opentelemetry-operator-system/inst-apm-java"
      name: mynamespace
    spec:
  3. Starten Sie den Kubernetes-Pod neu.

    Um den Pod neu zu starten, in den Sie den APM-Java-Agent automatisch injizieren möchten, führen Sie den folgenden Befehl aus:

    kubectl delete pod <your-pod-name> -n <your-namespace-name>
  4. Prüfen Sie den Kubernetes-Pod.
    Um zu prüfen, ob Ihr Pod nach dem Neustart automatisch mit dem APM-Java-Agent injiziert wurde, führen Sie den folgenden Befehl aus:
    kubectl get pod <your-pod-name> -n <your-namespace-name> -o yaml

Sie können jetzt zum nächsten Schritt gehen: APM-Java-Agent-Deployment prüfen.

Hinweis

Weitere Informationen zum Deployment eines APM-Java-Agent mit dem Operator OpenTelemetry finden Sie im Blog: APM-Java-Agent mit dem Operator OpenTelemetry automatisch in Kubernetes-Umgebungen bereitstellen

APM-Java-Agent auf einem gemounteten Volume bereitstellen

Im Folgenden finden Sie Informationen zum Deployment eines APM-Java-Agent in Oracle Container Engine for Kubernetes (OKE) mit einem gemounteten Volume.

Abbildung 3-3: APM-Java-Agent auf einem gemounteten Volume bereitstellen

APM-Java-Agent auf einem gemounteten Volume bereitstellen
Empfehlung:
  • Verwenden Sie diese Option, wenn keine Änderungen am Docker-Containerimage vorgenommen werden können und Sie lieber ein gemeinsam verwendetes gemountetes Volume verwenden möchten, wenn Änderungen am APM-Java-Agent erforderlich sind.

    • Beispiel 1: Wenn Sie häufige Konfigurationsänderungen am APM-Agent vornehmen müssen, muss das Containerimage aktualisiert werden. Dies ist jedoch nicht möglich.
    • Beispiel 2: Wenn der Benutzer, der den APM-Agent bereitstellt, nicht über den erforderlichen Zugriff oder die erforderlichen Berechtigungen zum Neuerstellen eines Containerimages verfügt.
  • Sichern Sie für die Docking-Imageversionierung die Binär- und Konfigurationsdateien.

So stellen Sie den APM-Java-Agent auf einem gemounteten Volume bereit:

  1. Bestätigen Sie, dass Sie die Voraussetzungsaufgaben für APM-Java-Agent abgeschlossen haben.

    Notieren Sie sich den Datenuploadendpunkt und den Datenschlüssel beim Erstellen der APM-Domain.

  2. Erstellen Sie ein neues Dateisystem, mit dem die Pods gemountet werden.

    Beim Erstellen des Dateisystems müssen Sie unbedingt dasselbe Compartment des virtuellen Cloud-Netzwerks (VCN) auswählen, das Kubernetes verwendet. Führen Sie dasselbe für das Subnetz-Compartment aus.

  3. Mounten Sie das Dateisystem in den Pods.

    Dieser Schritt erfordert Änderungen an den entsprechenden YAML-Dateien.

    Erstellen Sie die PersistentVolume und zugehörige Entitys in Kubernetes mit der folgenden yaml-Datei. Beachten Sie die folgenden Felder, die Sie für Ihre Umgebung bearbeiten müssen: mntTargetId, server und path.

    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
      name: oci-fss
    provisioner: oracle.com/oci-fss
    parameters:
      mntTargetId: ocid1.mounttarget.oc1.iad.xxxxxxxxxxxxxxxxxxxxxx
    ---
    apiVersion: v1
    kind: PersistentVolume
    metadata:
     name: oke-fsspv
    spec:
     storageClassName: oci-fss
     capacity:
      storage: 10Gi
     accessModes:
      - ReadWriteMany
     mountOptions:
      - nosuid
     nfs:
    # Replace this with the IP of your FSS file system in OCI
      server: 10.0.10.39
    # Replace this with the Path of your FSS file system in OCI
      path: "/fss-for-kub"
      readOnly: false
    ---
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
     name: oke-fsspvc
    spec:
     storageClassName: oci-fss
     accessModes:
     - ReadWriteMany
     resources:
      requests:
     # Although storage is provided here it is not used for FSS file systems
        storage: 10Gi
     volumeName: oke-fsspv

    Um die Änderungen anzuwenden, führen Sie kubectl apply -f <filename.yaml> aus

    Aktualisieren Sie anschließend die yaml-Datei, mit der die Pods verwaltet werden, und fügen Sie den Volume- und Volume-Mount hinzu.

    Um wirksam zu werden, erstellen Sie die Pods neu.

  4. Laden Sie die APM-Java-Agent-Datei herunter.

    Laden Sie die Datei herunter, und kopieren Sie sie auf das gemountete Volume.

    Anweisungen zum Herunterladen finden Sie unter APM-Java-Agent-Software herunterladen.

    Kopieren Sie es nach dem Herunterladen auf das gemountete Volume.

  5. APM-Java-Agent durch Provisioning bereitstellen.

    Melden Sie sich bei einem der Container an, um den APM-Java Agent bereitzustellen, suchen Sie die JAR-Datei APM-java-agent-installer, und führen Sie Folgendes aus:

    java -jar ./apm-java-agent-installer-<version>.jar provision-agent -service-name=<Name of the Service> -destination=<Destination_Directory> -private-data-key=<Agent installation key generated during APM domain creation> -data-upload-endpoint=<dataUploadEndpoint URL generated during APM domain creation>

    Anweisungen zum Provisioning finden Sie unter APM-Java-Agent bereitstellen.

  6. APM-Java-Agent durch Deployment bereitstellen.

    Stellen Sie den APM-Java-Agent bereit, indem Sie den Speicherort von oracle-APM-agent für den Microservice in der yaml-Datei angeben.

    Fügen Sie das Argument -javaagent und den Speicherort der JAR-Datei des APM-Agent zum java-Befehl jedes Microservice hinzu:

    java -javaagent:<Mounted Volume>/oracle-apm-agent/bootstrap/ApmAgent.jar
  7. Starten Sie Kubernetes neu.

    Erstellen Sie die Pods neu, indem Sie kubectl apply -f <filename.yaml> ausführen.

    Sie können jetzt zum nächsten Schritt gehen: APM-Java-Agent-Deployment prüfen.

Hinweis

Weitere Informationen zum Deployment eines APM-Java-Agent auf einem gemounteten Volume finden Sie im Video: Kubernetes Spring Boot Instrumentation for Distributed Tracing oder im Blog: Application Performance Monitoring: Instrument Java on Kubernetes for Monitoring and Diagnostics.