Om en Java-distribution redan exponerar en auktoriserad Jolokia-slutpunkt kan en övervakningsklient läsa JMX-attribut genom en vanlig vidarebefordrande HTTP-proxy. Klienten talar HTTP med Jolokia, som utför JMX-åtgärden på programsidan.

monitor → HTTP proxy → HTTPS Jolokia endpoint → MBean

Den här vägen kräver en administrationsslutpunkt som klarar HTTP. Att peka en oförändrad inbyggd JMX-klient mot webbproxyn skapar ingen.

Till exempel kan en läsning av JVM:ens heapanvändning uttryckas som en POST-begäran:

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/

Slutpunkten och proxyn är platshållare. Detta använder en läsåtgärd; HTTP-metoden POST bär Jolokias JSON-begäran i stället för att antyda en JMX-skrivning. Jolokia stöder också GET-begäranden för enkla åtgärder, medan JSON POST undviker en del av den URL-escaping som behövs för komplexa MBean-namn.

För en HTTPS-administrationsslutpunkt måste den vidarebefordrande proxyn tillåta relevant tunneldestination. TLS bör fortfarande verifiera monitor.example.net. Proxyns eget värdnamn och certifikat, om själva proxyanslutningen använder TLS, beskriver ett separat hopp.

Håll de två autentiseringsbesluten åtskilda. curls alternativ för proxyautentisering ger ett proxykonto. Slutpunktens autentisering ger administrationsidentiteten, och Jolokias policy avgör vilka MBeans och åtgärder som kan nås. Tillstånd att använda den vidarebefordrande proxyn är inte tillstånd att administrera JVM:en.

Svaret har också två lager: HTTP-transportstatus och Jolokias JSON-åtgärdsresultat. Granska de returnerade status och value i stället för att acceptera vilken body som helst som ett lyckat mått. Proxyfel, autentiseringsfel vid slutpunkten och saknade MBeans kräver olika ändringar.

Om distributionen bara exponerar en inbyggd JMX-anslutning väljer du en väg som är kompatibel med den anslutningen eller ordnar en godkänd HTTP-administrationsslutpunkt. En lokal SSH-vidarebefordran är en annan transportdesign, men den förblir en anslutning till den inbyggda tjänsten; den ändrar inte dess protokoll till Jolokias HTTP-API.

Relaterade artiklar