Lees JMX deur 'n HTTP-proksie met Jolokia
Gebruik Jolokia se HTTP-koppelvlak wanneer 'n moniteringskliënt deur 'n voorwaartse webproksie moet gaan, met onafhanklike proksie- en bestuursgeloofsbriewe.
As 'n Java-ontplooiing reeds 'n gemagtigde Jolokia-eindpunt blootstel, kan 'n moniteringskliënt JMX-attribute deur 'n gewone HTTP-voorwaartse proksie lees. Die kliënt praat HTTP met Jolokia, wat die JMX-bewerking aan die toepassingskant uitvoer.
monitor → HTTP proxy → HTTPS Jolokia endpoint → MBean
Hierdie roete benodig 'n bestuurs-eindpunt wat HTTP kan hanteer. Om 'n onveranderde inheemse JMX-kliënt na die webproksie te wys, skep nie een nie.
Byvoorbeeld, 'n lesing van die JVM se hoopgebruik kan as 'n POST-versoek uitgedruk word:
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/
Die eindpunt en proksie is plekhouers. Dit gebruik 'n leesbewerking; die HTTP-metode POST dra Jolokia se JSON-versoek eerder as om 'n JMX-skryf te impliseer. Jolokia ondersteun ook GET-versoeke vir eenvoudige bewerkings, terwyl JSON POST sommige van die URL-ontsnapping vermy wat vir komplekse MBean-name nodig is.
Vir 'n HTTPS-bestuurs-eindpunt moet die voorwaartse proksie die betrokke tonnelbestemming toelaat. TLS moet steeds monitor.example.net verifieer. Die proksie se eie gasheernaam en sertifikaat, as die proksieverbinding self TLS gebruik, beskryf 'n aparte sprong.
Hou die twee verifikasiebesluite apart. curl se proksie-verifikasie-opsies verskaf 'n proksierekening. Die eindpunt se verifikasie verskaf die bestuursidentiteit, en Jolokia se beleid bepaal watter MBeans en bewerkings dit kan bereik. Toestemming om die voorwaartse proksie te gebruik is nie toestemming om die JVM te administreer nie.
Die antwoord het ook twee lae: HTTP-vervoerstatus en Jolokia se JSON-bewerkingsresultaat. Ondersoek die teruggekeerde status en value eerder as om enige liggaam as 'n suksesvolle maatstaf te aanvaar. Proksiefoute, eindpunt-verifikasiefoute en ontbrekende MBeans vereis verskillende veranderinge.
As die ontplooiing slegs 'n inheemse JMX-konnektor blootstel, kies 'n roete wat met daardie konnektor versoenbaar is of reël 'n goedgekeurde HTTP-bestuurs-eindpunt. 'n SSH-plaaslike doorstuur is 'n ander vervoerontwerp, maar dit bly 'n verbinding na die inheemse diens; dit verander nie sy protokol in Jolokia se HTTP-API nie.