Tous les produits
Search
Centre de documentation

Application Real-Time Monitoring Service:Customize the mount path for a Java agent

Dernière mise à jour :Aug 10, 2026

Par défaut, le composant ack-onepilot injecte la variable d'environnement JAVA_TOOL_OPTIONS dans vos pods pour définir le chemin de montage de l'agent Java. Pour utiliser un chemin personnalisé, par exemple afin de gérer les chemins des agents via une ConfigMap Kubernetes ou de stocker les fichiers de l'agent sur une revendication de volume persistant (PVC), désactivez l'injection automatique et spécifiez manuellement le chemin.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

Fonctionnement

Dans un déploiement standard, ack-onepilot définit le chemin de montage de l'agent Java en injectant la variable d'environnement JAVA_TOOL_OPTIONS. Le chemin par défaut est /home/admin/.opt/AliyunJavaAgent/aliyun-java-agent.jar.

Pour utiliser un chemin de montage personnalisé, ajoutez le libellé disableJavaToolOptionsInjection: "true" au modèle de pod. Cette action indique à ack-onepilot de cesser d'injecter JAVA_TOOL_OPTIONS ainsi que d'autres paramètres JVM. D'autres variables d'environnement, telles que la région de rapport et la clé de licence, continuent d'être injectées. Spécifiez ensuite l'indicateur -javaagent dans la commande de démarrage de votre application pour pointer vers votre chemin personnalisé.

Procédure

Important

Le composant ack-onepilot est partagé par Application Real-Time Monitoring Service (ARMS) et Microservice Engine (MSE). Cette procédure s'applique également aux applications d'administration de service MSE.

Étape 1 : Désactiver l'injection automatique de JAVA_TOOL_OPTIONS

Ajoutez le libellé disableJavaToolOptionsInjection au modèle de pod de votre Deployment ou d'une autre charge de travail.

Important

Ajoutez les libellés sous spec.template.metadata, et non sous spec.metadata au niveau supérieur. Les libellés appliqués directement à la charge de travail n'affectent pas le comportement d'injection dans les pods.

  1. Consultez la configuration actuelle du Deployment :

    kubectl get deployment <your-deployment-name> -o yaml
    Remarque

    Si vous ne connaissez pas le nom du Deployment, répertoriez d'abord tous les Deployments :

    kubectl get deployments --all-namespaces
  2. Ouvrez le Deployment pour le modifier :

    kubectl edit deployment <your-deployment-name>
  3. Sous spec.template.metadata, définissez les libellés suivants :

    labels:
      armsPilotAutoEnable: "on"
      armsPilotCreateAppName: "<your-app-name>"               # Replace with your application name
      disableJavaToolOptionsInjection: "true"                  # Disables automatic JAVA_TOOL_OPTIONS injection
  4. Enregistrez le fichier. Kubernetes déploie de nouveaux pods avec les libellés mis à jour.

Étape 2 : Spécifier le chemin personnalisé de l'agent dans la commande de démarrage

Dans votre Dockerfile, votre script d'entrypoint ou la commande du conteneur Kubernetes, ajoutez l'indicateur -javaagent avec votre chemin personnalisé :

java -javaagent:<custom-agent-path>/aliyun-java-agent.jar -jar <your-application>.jar

Remplacez les espaces réservés suivants par vos valeurs :

Espace réservé Description Exemple
<custom-agent-path> Répertoire où le JAR de l'agent est monté /opt/arms-agent
<your-application> Nom du fichier JAR de l'application myapp

Le chemin par défaut de l'agent est /home/admin/.opt/AliyunJavaAgent/aliyun-java-agent.jar. Remplacez-le par le chemin vers le JAR de votre agent monté de manière personnalisée.

Remarque

D'autres configurations, telles que la région de rapport et la clé de licence, sont toujours injectées par ack-onepilot via des variables d'environnement. Aucune configuration supplémentaire n'est requise pour ces paramètres.

Étape 3 : Vérifier la configuration

Après le démarrage des nouveaux pods, confirmez que le chemin personnalisé est pris en compte et que l'injection automatique est désactivée.

  1. Vérifiez les variables d'environnement du pod :

    kubectl describe pod <pod-name> | grep JAVA_TOOL_OPTIONS

    Si disableJavaToolOptionsInjection fonctionne correctement, JAVA_TOOL_OPTIONS n'apparaît pas dans la sortie.

  2. Consultez les journaux de l'application pour confirmer que l'agent a été chargé depuis votre chemin personnalisé :

    kubectl logs <pod-name> | grep -i "javaagent"

    Recherchez une entrée de journal indiquant que le chemin du JAR de l'agent correspond à votre emplacement personnalisé.

Cas d'utilisation courants

Cas d'utilisation Description
Gestion centralisée de la configuration Stockez les chemins des agents dans une ConfigMap Kubernetes et référencez-les dans les variables d'environnement du conteneur. Cette approche permet de configurer le chemin de l'agent sur plusieurs environnements sans modifier chaque Deployment individuellement.
Stockage persistant Montez un PVC sur vos pods et placez le JAR de l'agent sur le chemin monté. Cette méthode répond aux politiques de sécurité des entreprises ou aux exigences opérationnelles qui imposent le stockage des fichiers d'agent sur un support persistant.

Dans les deux cas, définissez disableJavaToolOptionsInjection: "true" comme décrit dans cette rubrique, puis pointez l'indicateur -javaagent vers le chemin où le JAR de l'agent est disponible dans le conteneur.

Voir aussi