อ่าน JMX ผ่านพร็อกซี HTTP ด้วย Jolokia
ใช้ส่วนติดต่อ HTTP ของ Jolokia เมื่อไคลเอนต์ตรวจสอบต้องข้ามพร็อกซีเว็บส่วนหน้า โดยมีข้อมูลรับรองแยกสำหรับพร็อกซีและการจัดการ
หากการติดตั้ง Java เปิดเผยปลายทาง Jolokia ที่ได้รับอนุญาตอยู่แล้ว ไคลเอนต์ตรวจสอบสามารถอ่านแอตทริบิวต์ JMX ผ่านพร็อกซี HTTP ส่วนหน้าธรรมดาได้ ไคลเอนต์สื่อสาร HTTP กับ Jolokia ซึ่งดำเนินการ JMX ฝั่งแอปพลิเคชัน
monitor → HTTP proxy → HTTPS Jolokia endpoint → MBean
เส้นทางนี้ต้องมีปลายทางการจัดการที่รองรับ HTTP การชี้ไคลเอนต์ JMX ดั้งเดิมที่ไม่เปลี่ยนแปลงไปที่พร็อกซีเว็บไม่ได้สร้างปลายทางนั้น
ตัวอย่างเช่น การอ่านการใช้ heap ของ JVM สามารถแสดงเป็นคำขอ 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/
ปลายทางและพร็อกซีเป็นตัวแทน วิธีนี้ใช้การดำเนินการอ่าน ระเบียบวิธี HTTP POST พาคำขอ JSON ของ Jolokia แทนที่จะสื่อถึงการเขียน JMX Jolokia ยังรองรับคำขอ GET สำหรับการดำเนินการง่าย ๆ ขณะที่ JSON POST หลีกเลี่ยงการ escape URL บางส่วนที่จำเป็นสำหรับชื่อ MBean ที่ซับซ้อน
สำหรับปลายทางการจัดการ HTTPS พร็อกซีส่วนหน้าต้องอนุญาตปลายทางอุโมงค์ที่เกี่ยวข้อง TLS ยังควรตรวจสอบ monitor.example.net ชื่อโฮสต์และใบรับรองของพร็อกซีเอง หากการเชื่อมต่อพร็อกซีใช้ TLS อธิบายการกระโดดแยกต่างหาก
แยกการตัดสินใจรับรองความถูกต้องสองอย่างออกจากกัน ตัวเลือกการรับรองความถูกต้องพร็อกซีของ curl ให้บัญชีพร็อกซี การรับรองความถูกต้องของปลายทางให้ตัวตนการจัดการ และนโยบายของ Jolokia กำหนดว่าเข้าถึง MBean และการดำเนินการใดได้ สิทธิ์ในการใช้พร็อกซีส่วนหน้าไม่ใช่สิทธิ์ในการบริหาร JVM
การตอบสนองก็มีสองชั้นเช่นกัน สถานะการขนส่ง HTTP และผลการดำเนินการ JSON ของ Jolokia ตรวจสอบ status และ value ที่ส่งกลับมา แทนที่จะยอมรับเนื้อหาใด ๆ เป็นตัวชี้วัดที่สำเร็จ ข้อผิดพลาดพร็อกซี ความล้มเหลวในการรับรองความถูกต้องที่ปลายทาง และ MBean ที่หายไปต้องแก้ไขต่างกัน
หากการติดตั้งเปิดเผยเฉพาะตัวเชื่อมต่อ JMX ดั้งเดิม ให้เลือกเส้นทางที่เข้ากันได้กับตัวเชื่อมต่อนั้น หรือจัดเตรียมปลายทางการจัดการ HTTP ที่ได้รับอนุมัติ การส่งต่อภายใน SSH เป็นการออกแบบการขนส่งอีกรูปแบบ แต่ยังคงเป็นการเชื่อมต่อกับบริการดั้งเดิม ไม่ได้เปลี่ยนโปรโตคอลเป็น HTTP API ของ Jolokia