Čitanje JMX-a kroz HTTP proxy pomoću Jolokije
Koristite Jolokijin HTTP interfejs kada klijent za nadzor mora proći kroz naprijed web proxy, s odvojenim proxy i upravljačkim akreditivima.
Ako Java implementacija već izlaže ovlaštenu Jolokia krajnju točku, klijent za nadzor može čitati JMX atribute kroz obični naprijed HTTP proxy. Klijent govori HTTP s Jolokijom, koja izvodi JMX operaciju na strani aplikacije.
monitor → HTTP proxy → HTTPS Jolokia endpoint → MBean
Ova ruta zahtijeva upravljačku krajnju točku koja podržava HTTP. Usmjeravanje nepromijenjenog izvornog JMX klijenta na web proxy ne stvara je.
Na primjer, čitanje zauzetosti heap-a JVM-a može se izraziti kao POST zahtjev:
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/
Krajnja točka i proxy su zamjenske vrijednosti. Ovo koristi operaciju čitanja; HTTP metoda POST nosi Jolokijin JSON zahtjev, a ne podrazumijeva JMX upis. Jolokia podržava i GET zahtjeve za jednostavne operacije, dok JSON POST izbjegava dio URL escapinga potrebnog za složena MBean imena.
Za HTTPS upravljačku krajnju točku naprijed proxy mora dopustiti odredište tunela. TLS bi ipak trebao provjeriti monitor.example.net. Vlastito ime hosta i certifikat proxyja, ako sama proxy veza koristi TLS, opisuju odvojeni hop.
Držite dvije odluke o autentifikaciji odvojeno. curl-ove opcije proxy autentifikacije daju proxy račun. Autentifikacija krajnje točke daje upravljački identitet, a Jolokijina politika određuje kojim MBean-ovima i operacijama može pristupiti. Dopuštenje za korištenje naprijed proxyja nije dopuštenje za administraciju JVM-a.
Odgovor također ima dva sloja: HTTP transportni status i Jolokijin JSON rezultat operacije. Provjerite vraćene status i value umjesto da prihvatite bilo koje tijelo kao uspješnu metriku. Greške proxyja, neuspjesi autentifikacije krajnje točke i nedostajući MBean-ovi zahtijevaju različite promjene.
Ako implementacija izlaže samo izvorni JMX konektor, odaberite rutu kompatibilnu s tim konektorom ili osigurajte odobrenu HTTP upravljačku krajnju točku. SSH lokalno prosljeđivanje je drugi transportni dizajn, ali ostaje veza s izvornom uslugom; ne mijenja njezin protokol u Jolokijin HTTP API.