Les JMX gjennom ein HTTP-proxy med Jolokia
Bruk HTTP-grensesnittet til Jolokia når ein overvakingsklient må krysse ein videresendande nettproxy, med eigne proxy- og administrasjonslegitimasjonar.
Viss ei Java-utrulling allereie eksponerer eit autorisert Jolokia-endepunkt, kan ein overvakingsklient lese JMX-attributtar gjennom ein vanleg videresendande HTTP-proxy. Klienten snakkar HTTP med Jolokia, som utfører JMX-operasjonen på applikasjonssida.
monitor → HTTP proxy → HTTPS Jolokia endpoint → MBean
Denne ruta krev eit administrasjonsendepunkt som kan HTTP. Å peike ein uendra opphavleg JMX-klient mot nettproxien skapar ikkje eitt.
Til dømes kan ei lesing av heapbruken til JVM-en uttrykkjast som ein POST-førespurnad:
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 plasshaldarar. Dette brukar ein leseoperasjon; HTTP-metoden POST ber JSON-førespurnaden til Jolokia i staden for å antyde ei JMX-skriving. Jolokia støttar også GET-førespurnader for enkle operasjonar, medan JSON POST unngår noko av URL-escapinga som trengst for komplekse MBean-namn.
For eit HTTPS-administrasjonsendepunkt må den videresendande proxien tillate den aktuelle tunnelmålsetjinga. TLS bør framleis verifisere monitor.example.net. Vertsnamnet og sertifikatet til proxien sjølv, viss sjølve proxyforbindinga brukar TLS, skildrar eit separat hopp.
Hald dei to autentiseringsavgjerdene fråskilde. Proxyautentiseringsvala til curl gjev ein proxykonto. Autentiseringa til endepunktet gjev administrasjonsidentiteten, og policyen til Jolokia avgjer kva MBeans og operasjonar han kan nå. Løyve til å bruke den videresendande proxien er ikkje løyve til å administrere JVM-en.
Svaret har også to lag: HTTP-transportstatus og JSON-operasjonsresultatet til Jolokia. Gransk dei returnerte status og value i staden for å godta kva kropp som helst som ein vellukka metrikk. Proxyfeil, autentiseringsfeil ved endepunktet og manglande MBeans krev ulike endringar.
Viss utrullinga berre eksponerer ein opphavleg JMX-kopling, vel ei rute som er kompatibel med den koplinga, eller ordna eit godkjent HTTP-administrasjonsendepunkt. Ei lokal SSH-vidareføring er eit anna transportdesign, men ho er framleis ei tilkopling til den opphavlege tenesta; ho endrar ikkje protokollen hennar til HTTP-API-et til Jolokia.