Læs JMX gennem en HTTP-proxy med Jolokia
Brug Jolokias HTTP-grænseflade, når en overvågningsklient skal krydse en videresendende webproxy, med separate legitimationsoplysninger til proxy og administration.
Hvis en Java-udrulning allerede eksponerer et autoriseret Jolokia-endepunkt, kan en overvågningsklient læse JMX-attributter gennem en almindelig videresendende HTTP-proxy. Klienten taler HTTP med Jolokia, som udfører JMX-operationen på applikationssiden.
monitor → HTTP proxy → HTTPS Jolokia endpoint → MBean
Denne rute kræver et administrationsendepunkt, der kan HTTP. At pege en uændret oprindelig JMX-klient mod webproxyen skaber ikke et.
For eksempel kan en læsning af JVM'ens heapforbrug udtrykkes som en POST-anmodning:
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 proxyen er pladsholdere. Dette bruger en læseoperation; HTTP-metoden POST bærer Jolokias JSON-anmodning i stedet for at antyde en JMX-skrivning. Jolokia understøtter også GET-anmodninger til enkle operationer, mens JSON POST undgår noget af den URL-escaping, der er nødvendig for komplekse MBean-navne.
For et HTTPS-administrationsendepunkt skal den videresendende proxy tillade den relevante tunnel-destination. TLS bør stadig verificere monitor.example.net. Proxyens eget værtsnavn og certifikat, hvis selve proxyforbindelsen bruger TLS, beskriver et separat hop.
Hold de to godkendelsesbeslutninger adskilt. curls proxygodkendelsesindstillinger leverer en proxykonto. Endepunktets godkendelse leverer administrationens identitet, og Jolokias politik afgør, hvilke MBeans og operationer der kan tilgås. Tilladelse til at bruge den videresendende proxy er ikke tilladelse til at administrere JVM'en.
Svaret har også to lag: HTTP-transportstatus og Jolokias JSON-operationsresultat. Undersøg de returnerede status og value i stedet for at acceptere enhver body som en vellykket metrik. Proxyfejl, godkendelsesfejl ved endepunktet og manglende MBeans kræver forskellige ændringer.
Hvis udrulningen kun eksponerer en oprindelig JMX-connector, skal du vælge en rute, der er kompatibel med den connector, eller arrangere et godkendt HTTP-administrationsendepunkt. En lokal SSH-videresendelse er et andet transportdesign, men den forbliver en forbindelse til den oprindelige tjeneste; den ændrer ikke dens protokol til Jolokias HTTP-API.