Leer JMX a través de un proxy HTTP con Jolokia
Use la interfaz HTTP de Jolokia cuando un cliente de supervisión deba cruzar un proxy web de reenvío, con credenciales independientes de proxy y de gestión.
Si un despliegue de Java ya expone un punto de conexión Jolokia autorizado, un cliente de supervisión puede leer atributos JMX a través de un proxy HTTP de reenvío común. El cliente habla HTTP con Jolokia, que realiza la operación JMX en el lado de la aplicación.
monitor → HTTP proxy → HTTPS Jolokia endpoint → MBean
Esta ruta necesita un punto de conexión de gestión con capacidad HTTP. Apuntar un cliente JMX nativo sin cambios al proxy web no crea uno.
Por ejemplo, una lectura del uso del heap de la JVM puede expresarse como una solicitud 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 punto de conexión y el proxy son marcadores de posición. Esto usa una operación de lectura; el método HTTP POST transporta la solicitud JSON de Jolokia en lugar de implicar una escritura JMX. Jolokia también admite solicitudes GET para operaciones simples, mientras que JSON POST evita parte del escape de URL necesario para nombres de MBean complejos.
Para un punto de conexión de gestión HTTPS, el proxy de reenvío debe permitir el destino de túnel correspondiente. TLS debería seguir verificando monitor.example.net. El nombre de host y el certificado del propio proxy, si la conexión al proxy usa TLS, describen un salto distinto.
Mantenga separadas las dos decisiones de autenticación. Las opciones de autenticación de proxy de curl proporcionan una cuenta de proxy. La autenticación del punto de conexión proporciona la identidad de gestión, y la política de Jolokia determina a qué MBeans y operaciones puede acceder. El permiso para usar el proxy de reenvío no es permiso para administrar la JVM.
La respuesta también tiene dos capas: el estado de transporte HTTP y el resultado de la operación JSON de Jolokia. Examine los status y value devueltos en lugar de aceptar cualquier cuerpo como una métrica correcta. Los errores de proxy, los fallos de autenticación del punto de conexión y las MBeans ausentes requieren cambios distintos.
Si el despliegue solo expone un conector JMX nativo, elija una ruta compatible con ese conector o disponga un punto de conexión de gestión HTTP aprobado. Un reenvío local SSH es otro diseño de transporte, pero sigue siendo una conexión al servicio nativo; no convierte su protocolo en la API HTTP de Jolokia.