اگر کوئی Java تعیناتی پہلے ہی مجاز Jolokia اینڈ پوائنٹ ظاہر کرتی ہے تو مانیٹرنگ کلائنٹ عام HTTP فارورڈ پراکسی کے ذریعے JMX خصوصیات پڑھ سکتا ہے۔ کلائنٹ HTTP میں Jolokia سے بات کرتا ہے، اور Jolokia JMX عمل ایپلیکیشن کی طرف انجام دیتا ہے۔

monitor → HTTP proxy → HTTPS Jolokia endpoint → MBean

اس راستے کے لیے HTTP کے قابل انتظام اینڈ پوائنٹ درکار ہے۔ نہ بدلے گئے مقامی JMX کلائنٹ کو ویب پراکسی کی طرف موڑنے سے وہ نہیں بنتا۔

مثال کے طور پر، JVM کے heap استعمال کو پڑھنے کو 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 JMX تحریر کا اشارہ دینے کے بجائے Jolokia کی JSON درخواست لے جاتا ہے۔ Jolokia سادہ کارروائیوں کے لیے GET درخواستیں بھی معاونت کرتا ہے، جبکہ JSON POST پیچیدہ MBean ناموں کے لیے درکار URL escaping کا کچھ حصہ بچاتا ہے۔

HTTPS انتظام اینڈ پوائنٹ کے لیے فارورڈ پراکسی کو متعلقہ ٹنل منزل کی اجازت دینی ہوگی۔ TLS کو اب بھی monitor.example.net کی تصدیق کرنی چاہیے۔ پراکسی کا اپنا ہوسٹ نام اور سرٹیفکیٹ، اگر پراکسی کنکشن خود TLS استعمال کرتا ہے، الگ چھلانگ بیان کرتے ہیں۔

دونوں توثیق کے فیصلے الگ رکھیں۔ curl کے پراکسی توثیق کے اختیارات پراکسی اکاؤنٹ دیتے ہیں۔ اینڈ پوائنٹ کی توثیق انتظامی شناخت دیتی ہے، اور Jolokia کی پالیسی طے کرتی ہے کہ کون سے MBean اور کارروائیوں تک رسائی ہے۔ فارورڈ پراکسی استعمال کرنے کی اجازت JVM کے انتظام کی اجازت نہیں ہے۔

جواب کے بھی دو درجے ہیں: HTTP نقل و حمل کی حالت اور Jolokia کا JSON عمل کا نتیجہ۔ واپس آنے والے status اور value کو دیکھیں، کسی بھی body کو کامیاب پیمانہ ماننے کے بجائے۔ پراکسی کی غلطیاں، اینڈ پوائنٹ توثیق کی ناکامیاں اور غائب MBean مختلف تبدیلیاں تقاضا کرتے ہیں۔

اگر تعیناتی صرف مقامی JMX کنیکٹر ظاہر کرتی ہے تو اس کنیکٹر سے ہم آہنگ راستہ چنیں یا منظور شدہ HTTP انتظام اینڈ پوائنٹ کا انتظام کریں۔ SSH مقامی فارورڈنگ ایک اور نقل و حمل کا ڈیزائن ہے، مگر یہ مقامی سروس سے کنکشن ہی رہتا ہے؛ یہ اس کے پروٹوکول کو Jolokia کے HTTP API میں نہیں بدلتا۔

متعلقہ مضامین