Jika penerapan Java sudah mengekspos titik akhir Jolokia yang diotorisasi, klien pemantauan dapat membaca atribut JMX melalui proxy HTTP penerusan biasa. Klien berbicara HTTP dengan Jolokia, yang menjalankan operasi JMX di sisi aplikasi.

monitor → HTTP proxy → HTTPS Jolokia endpoint → MBean

Rute ini memerlukan titik akhir manajemen yang mampu HTTP. Mengarahkan klien JMX asli yang tidak diubah ke proxy web tidak menciptakannya.

Misalnya, pembacaan penggunaan heap JVM dapat dinyatakan sebagai permintaan 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/

Titik akhir dan proxy adalah placeholder. Ini menggunakan operasi baca; metode HTTP POST membawa permintaan JSON Jolokia, bukan menyiratkan penulisan JMX. Jolokia juga mendukung permintaan GET untuk operasi sederhana, sedangkan JSON POST menghindari sebagian escaping URL yang diperlukan untuk nama MBean yang kompleks.

Untuk titik akhir manajemen HTTPS, proxy penerusan harus mengizinkan tujuan terowongan yang bersangkutan. TLS tetap harus memverifikasi monitor.example.net. Nama host dan sertifikat proxy itu sendiri, jika koneksi proxy menggunakan TLS, menggambarkan lompatan terpisah.

Pisahkan kedua keputusan autentikasi. Opsi autentikasi proxy curl menyediakan akun proxy. Autentikasi titik akhir menyediakan identitas manajemen, dan kebijakan Jolokia menentukan MBean dan operasi mana yang dapat diakses. Izin memakai proxy penerusan bukan izin untuk mengelola JVM.

Respons juga memiliki dua lapisan: status transport HTTP dan hasil operasi JSON Jolokia. Periksa status dan value yang dikembalikan alih-alih menerima badan apa pun sebagai metrik yang berhasil. Kesalahan proxy, kegagalan autentikasi titik akhir, dan MBean yang hilang memerlukan perubahan berbeda.

Jika penerapan hanya mengekspos konektor JMX asli, pilih rute yang kompatibel dengan konektor itu atau siapkan titik akhir manajemen HTTP yang disetujui. Penerusan lokal SSH adalah desain transport lain, tetapi tetap merupakan koneksi ke layanan asli; itu tidak mengubah protokolnya menjadi HTTP API Jolokia.

Artikel terkait