Si un déploiement Java expose déjà un point de terminaison Jolokia autorisé, un client de supervision peut lire des attributs JMX via un proxy HTTP frontal ordinaire. Le client parle HTTP à Jolokia, qui exécute l'opération JMX côté application.

monitor → HTTP proxy → HTTPS Jolokia endpoint → MBean

Cette voie exige un point de terminaison d'administration compatible HTTP. Pointer un client JMX natif inchangé vers le proxy web n'en crée pas un.

Par exemple, une lecture de l'utilisation du tas de la JVM peut s'exprimer par une requête POST :

curl --proxy http://proxy.example.net:8080 \
  --header 'Content-Type: application/json' \
  --data '{"type":"read","mbean":"java.lang:type=Memory","attribute":"HeapMemoryUsage","path":"used"}' \
  https://monitor.example.net/jolokia/

Le point de terminaison et le proxy sont des espaces réservés. Ceci utilise une opération de lecture ; la méthode HTTP POST transporte la requête JSON de Jolokia plutôt que d'impliquer une écriture JMX. Jolokia prend aussi en charge les requêtes GET pour les opérations simples, tandis que JSON POST évite une partie de l'échappement d'URL nécessaire aux noms de MBean complexes.

Pour un point de terminaison d'administration HTTPS, le proxy frontal doit autoriser la destination de tunnel concernée. TLS devrait toujours vérifier monitor.example.net. Le nom d'hôte et le certificat du proxy lui-même, si la connexion au proxy utilise TLS, décrivent un saut distinct.

Gardez les deux décisions d'authentification séparées. Les options d'authentification de proxy de curl fournissent un compte proxy. L'authentification du point de terminaison fournit l'identité d'administration, et la politique de Jolokia détermine quels MBeans et opérations sont accessibles. L'autorisation d'utiliser le proxy frontal n'est pas l'autorisation d'administrer la JVM.

La réponse comporte aussi deux couches : l'état du transport HTTP et le résultat de l'opération JSON de Jolokia. Examinez les status et value renvoyés au lieu d'accepter n'importe quel corps comme une métrique valide. Les erreurs de proxy, les échecs d'authentification du point de terminaison et les MBeans absents demandent des corrections différentes.

Si le déploiement n'expose qu'un connecteur JMX natif, choisissez une voie compatible avec ce connecteur ou mettez en place un point de terminaison d'administration HTTP approuvé. Un transfert local SSH est une autre conception de transport, mais il reste une connexion au service natif ; il ne transforme pas son protocole en API HTTP de Jolokia.

Articles similaires