Odczytywanie JMX przez serwer proxy HTTP za pomocą Jolokia
Używaj interfejsu HTTP Jolokia, gdy klient monitorujący musi przejść przez przedni serwer proxy sieci web, z osobnymi poświadczeniami proxy i administracji.
Jeśli wdrożenie Java już udostępnia autoryzowany punkt końcowy Jolokia, klient monitorujący może odczytywać atrybuty JMX przez zwykły przedni serwer proxy HTTP. Klient rozmawia HTTP z Jolokią, która wykonuje operację JMX po stronie aplikacji.
monitor → HTTP proxy → HTTPS Jolokia endpoint → MBean
Ta trasa wymaga punktu końcowego administracji obsługującego HTTP. Skierowanie niezmienionego natywnego klienta JMX na serwer proxy sieci web go nie tworzy.
Na przykład odczyt użycia sterty JVM można wyrazić jako żądanie POST:
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/
Punkt końcowy i proxy to elementy zastępcze. To używa operacji odczytu; metoda HTTP POST przenosi żądanie JSON Jolokii, a nie sugeruje zapisu JMX. Jolokia obsługuje też żądania GET dla prostych operacji, podczas gdy JSON POST unika części kodowania URL potrzebnego dla złożonych nazw MBean.
Dla punktu końcowego administracji HTTPS przedni serwer proxy musi zezwalać na odpowiedni cel tunelu. TLS nadal powinien weryfikować monitor.example.net. Własna nazwa hosta i certyfikat serwera proxy, jeśli samo połączenie proxy używa TLS, opisują osobny przeskok.
Zachowaj rozdzielenie obu decyzji uwierzytelniania. Opcje uwierzytelniania proxy w curl zapewniają konto proxy. Uwierzytelnianie punktu końcowego zapewnia tożsamość administracyjną, a zasady Jolokii określają, do których MBeanów i operacji można uzyskać dostęp. Uprawnienie do korzystania z przedniego proxy nie jest uprawnieniem do administrowania JVM.
Odpowiedź ma również dwie warstwy: stan transportu HTTP i wynik operacji JSON Jolokii. Sprawdzaj zwrócone status i value, zamiast przyjmować dowolne ciało jako udany wskaźnik. Błędy proxy, niepowodzenia uwierzytelniania punktu końcowego i brakujące MBeany wymagają różnych zmian.
Jeśli wdrożenie udostępnia tylko natywny konektor JMX, wybierz trasę zgodną z tym konektorem lub przygotuj zatwierdzony punkt końcowy administracji HTTP. Lokalne przekierowanie SSH to inny projekt transportu, ale pozostaje połączeniem z natywną usługą; nie zmienia jej protokołu w API HTTP Jolokii.