Hvis en Java-distribusjon allerede eksponerer et autorisert Jolokia-endepunkt, kan en overvåkingsklient lese JMX-attributter gjennom en vanlig videresendende HTTP-proxy. Klienten snakker HTTP med Jolokia, som utfører JMX-operasjonen på applikasjonssiden.

monitor → HTTP proxy → HTTPS Jolokia endpoint → MBean

Denne ruten krever et administrasjonsendepunkt som kan HTTP. Å peke en uendret opprinnelig JMX-klient mot nettproxien skaper ikke ett.

For eksempel kan en lesing av JVM-ens heapbruk uttrykkes som en POST-forespørsel:

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/

Endepunktet og proxien er plassholdere. Dette bruker en leseoperasjon; HTTP-metoden POST bærer Jolokias JSON-forespørsel i stedet for å antyde en JMX-skriving. Jolokia støtter også GET-forespørsler for enkle operasjoner, mens JSON POST unngår noe av URL-escapingen som trengs for komplekse MBean-navn.

For et HTTPS-administrasjonsendepunkt må den videresendende proxien tillate den aktuelle tunnelmålsettingen. TLS bør fortsatt verifisere monitor.example.net. Proxyens eget vertsnavn og sertifikat, hvis selve proxyforbindelsen bruker TLS, beskriver et separat hopp.

Hold de to autentiseringsbeslutningene adskilt. curls alternativer for proxyautentisering gir en proxykonto. Endepunktets autentisering gir administrasjonsidentiteten, og Jolokias policy avgjør hvilke MBeans og operasjoner den kan nå. Tillatelse til å bruke den videresendende proxien er ikke tillatelse til å administrere JVM-en.

Svaret har også to lag: HTTP-transportstatus og Jolokias JSON-operasjonsresultat. Undersøk de returnerte status og value i stedet for å godta enhver body som en vellykket metrikk. Proxyfeil, autentiseringsfeil ved endepunktet og manglende MBeans krever ulike endringer.

Hvis distribusjonen bare eksponerer en opprinnelig JMX-kobling, velg en rute som er kompatibel med den koblingen, eller ordne et godkjent HTTP-administrasjonsendepunkt. En lokal SSH-videresending er et annet transportdesign, men den forblir en forbindelse til den opprinnelige tjenesten; den endrer ikke protokollen til Jolokias HTTP-API.

Relaterte artikler