Si un desplegament Java ja exposa un punt de connexió Jolokia autoritzat, un client de monitoratge pot llegir atributs JMX a través d'un proxy HTTP d'avançament ordinari. El client parla HTTP amb Jolokia, que executa l'operació JMX al costat de l'aplicació.

monitor → HTTP proxy → HTTPS Jolokia endpoint → MBean

Aquesta ruta necessita un punt de gestió capaç d'HTTP. Apuntar un client JMX natiu sense canvis al proxy web no en crea cap.

Per exemple, una lectura de l'ús de memòria del JVM es pot expressar com una sol·licitud 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/

El punt de connexió i el proxy són marcadors de posició. Això utilitza una operació de lectura; el mètode HTTP POST transporta la sol·licitud JSON de Jolokia en lloc d'implicar una escriptura JMX. Jolokia també admet sol·licituds GET per a operacions simples, mentre que JSON POST evita part de l'escapament d'URL necessari per a noms MBean complexos.

Per a un punt de gestió HTTPS, el proxy d'avançament ha de permetre la destinació de túnel corresponent. TLS encara hauria de verificar monitor.example.net. El nom d'amfitrió i el certificat del propi proxy, si la connexió del proxy fa servir TLS, descriuen un salt separat.

Manteniu les dues decisions d'autenticació separades. Les opcions d'autenticació de proxy de curl proporcionen un compte de proxy. L'autenticació del punt de connexió proporciona la identitat de gestió, i la política de Jolokia determina a quins MBeans i operacions pot accedir. El permís per utilitzar el proxy d'avançament no és permís per administrar el JVM.

La resposta també té dues capes: l'estat de transport HTTP i el resultat de l'operació JSON de Jolokia. Examineu els status i value retornats en lloc d'acceptar qualsevol cos com una mètrica correcta. Els errors de proxy, les fallades d'autenticació del punt de connexió i els MBeans absents requereixen canvis diferents.

Si el desplegament només exposa un connector JMX natiu, trieu una ruta compatible amb aquest connector o prepareu un punt de gestió HTTP aprovat. Un reenviament local SSH és un altre disseny de transport, però continua sent una connexió al servei natiu; no converteix el seu protocol en l'API HTTP de Jolokia.

Articles relacionats