Jolokia ဖြင့် HTTP ပရောက်စီမှတစ်ဆင့် JMX ဖတ်ခြင်း
စောင့်ကြည့်ရေးကလိုင်းယင့်သည် ရှေ့ပိုင်း ဝက်ဘ်ပရောက်စီကို ဖြတ်သန်းရမည့်အခါ Jolokia ၏ HTTP အင်တာဖေ့စ်ကို အသုံးပြုပါ၊ ပရောက်စီနှင့် စီမံခန့်ခွဲမှုအတွက် သီးခြား အထောက်အထားများဖြင့်။
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 escape အချို့ကို ရှောင်ရှားသည်။
HTTPS စီမံခန့်ခွဲမှု အဆုံးမှတ်အတွက် ရှေ့ပိုင်းပရောက်စီသည် သက်ဆိုင်ရာ tunnel ဦးတည်ချက်ကို ခွင့်ပြုရမည်။ TLS သည် monitor.example.net ကို ဆက်လက်စစ်ဆေးသင့်သည်။ ပရောက်စီ၏ ကိုယ်ပိုင် hostname နှင့် လက်မှတ်သည် ပရောက်စီချိတ်ဆက်မှုကိုယ်တိုင် TLS အသုံးပြုပါက သီးခြား hop တစ်ခုကို ဖော်ပြသည်။
အထောက်အထားစစ်ဆေးမှု ဆုံးဖြတ်ချက်နှစ်ခုကို သီးခြားထားပါ။ curl ၏ ပရောက်စီအထောက်အထား ရွေးချယ်စရာများသည် ပရောက်စီအကောင့်ကို ပေးသည်။ အဆုံးမှတ်၏ အထောက်အထားစစ်ဆေးမှုသည် စီမံခန့်ခွဲမှု အထောက်အထားကို ပေးပြီး Jolokia ၏ မူဝါဒသည် မည်သည့် MBean နှင့် လုပ်ဆောင်ချက်များကို ရောက်ရှိနိုင်သည်ကို ဆုံးဖြတ်သည်။ ရှေ့ပိုင်းပရောက်စီကို အသုံးပြုခွင့်သည် JVM ကို စီမံခန့်ခွဲခွင့် မဟုတ်ပါ။
တုံ့ပြန်မှုတွင်လည်း အလွှာနှစ်ခုရှိသည်။ HTTP သယ်ယူပို့ဆောင်မှု အခြေအနေနှင့် Jolokia ၏ JSON လုပ်ဆောင်ချက် ရလဒ်ဖြစ်သည်။ ပြန်လာသော status နှင့် value ကို စစ်ဆေးပါ၊ မည်သည့် body ကိုမဆို အောင်မြင်သော မက်ထရစ်အဖြစ် လက်ခံခြင်းမပြုဘဲ။ ပရောက်စီ အမှားများ၊ အဆုံးမှတ် အထောက်အထားစစ်ဆေးမှု မအောင်မြင်မှုများနှင့် မရှိသော MBean များသည် မတူညီသော ပြောင်းလဲမှုများ လိုအပ်သည်။
ဖြန့်ကျက်မှုသည် မူရင်း JMX ချိတ်ဆက်ကိရိယာကိုသာ ဖော်ပြပါက ထိုကိရိယာနှင့် ကိုက်ညီသော လမ်းကြောင်းကို ရွေးပါ သို့မဟုတ် အတည်ပြုထားသော HTTP စီမံခန့်ခွဲမှု အဆုံးမှတ်ကို စီစဉ်ပါ။ SSH ဒေသတွင်း ပို့ဆောင်မှုသည် အခြားသယ်ယူပို့ဆောင်ရေး ဒီဇိုင်းဖြစ်သော်လည်း မူရင်းဝန်ဆောင်မှုသို့ ချိတ်ဆက်မှုအဖြစ် ကျန်ရှိသည်။ ၎င်း၏ ပရိုတိုကောကို Jolokia ၏ HTTP API အဖြစ် မပြောင်းလဲပါ။