Ler JMX a través dun proxy HTTP con Jolokia
Use a interface HTTP de Jolokia cando un cliente de monitorización deba cruzar un proxy web de reenvío, con credenciais independentes de proxy e de xestión.
Se un despregamento Java xa expón un punto de conexión Jolokia autorizado, un cliente de monitorización pode ler atributos JMX a través dun proxy HTTP de reenvío común. O cliente fala HTTP con Jolokia, que realiza a operación JMX no lado da aplicación.
monitor → HTTP proxy → HTTPS Jolokia endpoint → MBean
Esta ruta necesita un punto de xestión con capacidade HTTP. Apuntar un cliente JMX nativo sen cambios ao proxy web non crea un.
Por exemplo, unha lectura do uso do heap da JVM pódese expresar como unha solicitude 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/
O punto de conexión e o proxy son marcadores de posición. Isto usa unha operación de lectura; o método HTTP POST transporta a solicitude JSON de Jolokia en lugar de implicar unha escritura JMX. Jolokia tamén admite solicitudes GET para operacións simples, mentres que JSON POST evita parte do escape de URL necesario para nomes de MBean complexos.
Para un punto de xestión HTTPS, o proxy de reenvío debe permitir o destino de túnel correspondente. TLS debería seguir verificando monitor.example.net. O nome de host e o certificado do propio proxy, se a conexión ao proxy usa TLS, describen un salto distinto.
Manteña as dúas decisións de autenticación separadas. As opcións de autenticación de proxy de curl fornecen unha conta de proxy. A autenticación do punto de conexión fornece a identidade de xestión, e a política de Jolokia determina a que MBeans e operacións pode acceder. O permiso para usar o proxy de reenvío non é permiso para administrar a JVM.
A resposta tamén ten dúas capas: o estado de transporte HTTP e o resultado da operación JSON de Jolokia. Examine os status e value devoltos en lugar de aceptar calquera corpo como unha métrica correcta. Os erros de proxy, os fallos de autenticación do punto de conexión e as MBeans ausentes requiren cambios distintos.
Se o despregamento só expón un conector JMX nativo, escolla unha ruta compatible con ese conector ou dispoña un punto de xestión HTTP aprobado. Un reenvío local SSH é outro deseño de transporte, pero segue a ser unha conexión ao servizo nativo; non converte o seu protocolo na API HTTP de Jolokia.