Č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 tač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 tač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 tačka i proxy su zamjenske vrijednosti. Ovo koristi operaciju čitanja; HTTP metoda POST nosi Jolokijin JSON zahtjev umjesto da 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 tač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 skok.
Držite dvije odluke o autentifikaciji odvojeno. curl-ove opcije proxy autentifikacije daju proxy račun. Autentifikacija krajnje tač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 tač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 tačku. SSH lokalno prosljeđivanje je drugi transportni dizajn, ali ostaje veza s izvornom uslugom; ne mijenja njezin protokol u Jolokijin HTTP API.