Zabbix ကို သေတ္တာထဲက Asterisk နဲ့ ချိတ်ဆက်နည်း

ယခင်ဆောင်းပါး၌ "Zabbix - မက်ခရိုနယ်နိမိတ်များ ချဲ့ထွင်ခြင်း" ခွင့်ပြုချက်စက်ရှင်ကို မည်သို့လက်ခံရမည်နည်း။ ဤဆောင်းပါးတွင် ပြင်ပ script များနှင့် software မပါဘဲ Zabbix နှင့် Asterisk ချိတ်ဆက်နည်းကို ပြောပြပါမည်။

ဤစနစ်နှစ်ခု၏ “မိတ်ဆွေဖွဲ့ရန်” စိတ်ကူးသည် အပိုဆော့ဖ်ဝဲလ် သို့မဟုတ် ဇာတ်ညွှန်းများကို ထည့်သွင်းခြင်းမရှိဘဲ မွေးဖွားလာသည်မှာ ကြာမြင့်နေပြီဖြစ်သည်။ လျင်မြန်သော googling သည် ဖြစ်နိုင်ချေရှိသော ဖြေရှင်းချက်များစွာကို ထုတ်ပေးသည်၊ ၎င်းသည် ဆာဗာသို့ scripts (Pyha၊ Bash၊ Python စသည်ဖြင့်) ကို အပ်လုဒ်လုပ်သည့်အချက်ကို ပြုတ်စေပြီး သင်သည် ပျော်ရွှင်လိမ့်မည်။ ပြင်ပ script များမပါဘဲ စောင့်ကြည့်စစ်ဆေးခြင်းနှင့် စောင့်ကြည့်ခြင်းနှင့် PBX ဖြင့် ဆာဗာပေါ်တွင် အပိုဆော့ဖ်ဝဲကို ထည့်သွင်းခြင်းတို့ကို ပြုလုပ်လိုပါသည်။

ဒီအတွက် စုစုပေါင်း 4 ရက်လောက် အလုပ်လုပ်ခဲ့ပေမယ့် ရလဒ်က ထိုက်တန်ပါတယ်။ AMI အင်တာဖေ့စ်၊ အဆင့်နိမ့်ထောက်လှမ်းမှု၊ အစပျိုးမှုများနှင့် အရေးအကြီးဆုံးမှာ PBX နှင့် အခြားဆက်တင်အားလုံးကို ချိတ်ဆက်ခြင်းမှာ ယခု 15 မိနစ်ခန့် ကြာပါသည်။

Zabbix 4.4 ကို Asterisk ဗားရှင်း 100 ၏ အပိုင်း 13 ခန့် ရရှိနိုင်ပါသည်။ အချို့သော PBX များသည် FreePBX ဝဘ်အင်တာဖေ့စ်နှင့် လာသည်၊ အချို့မှာ ဗလာကွန်ဆိုးလ်ပါရှိသော၊ လှည့်ကွက်များစွာနှင့် ဒိုင်ခွက်ပလန်မှတစ်ဆင့် ပေါင်းစည်းမှုများစွာရှိသည်။

PBX မှဒေတာကိုလက်ခံခြင်း။

ဖြေရှင်းရန် လိုအပ်သော ပထမဆုံးနှင့် အဓိကအချက်မှာ သက်တူရွယ်တူများနှင့် SIP မှတ်ပုံတင်ခြင်းဆိုင်ရာ ဒေတာရယူခြင်းဖြစ်ပါသည်။ ဤရည်ရွယ်ချက်အတွက်၊ PBX တွင် AGI၊ AMI၊ ARI နှင့် SSH ကွန်ဆိုးလ်အင်တာဖေ့စ်များရှိသည်။ သိသာထင်ရှားသောအကြောင်းပြချက်များအတွက်, ငါနောက်ထပ် module တွေကိုမစဉ်းစားခဲ့ပါဘူး။

အရင်ဆုံး ဒီ agi, ami, ari ဆိုတာ ဘာလဲဆိုတာ သိဖို့ လိုပါတယ်...

  • AGI - dialplan ရှိ scripts များကိုအသုံးပြုခြင်း။ ခေါ်ဆိုမှုစီမံခန့်ခွဲမှုအတွက် အဓိကအသုံးပြုသည်။
  • AMI - Telnet နှင့်ဆင်တူသော port 5038 မှတဆင့်အလုပ်လုပ်သောလိုအပ်သောအချက်အလက်များအားလုံးကိုပေးစွမ်းနိုင်သည်။ ငါတို့နဲ့လိုက်ဖက်တယ်!
  • ARI - ခေတ်မီ၊ ဖက်ရှင်ကျကျ၊ JSON။ ဖြစ်နိုင်ခြေများစွာရှိသည်၊ ဒေတာဖော်မတ်သည် Zabbix အတွက်နားလည်နိုင်သည်၊ သို့သော်ကျွန်ုပ်အတွက်အဓိကအရာမရှိပါ။ sip မှတ်ပုံတင်ခြင်းကိုသင်မထိန်းချုပ်နိုင်ပါ။ အခြားအားနည်းချက်မှာ သက်တူရွယ်တူများအတွက် အွန်လိုင်း/အော့ဖ်လိုင်းတွင် ပြည်နယ်နှစ်ခုသာ ရှိသော်လည်း ရောဂါရှာဖွေသည့်အခါ ၎င်းတို့ကို ထည့်သွင်းစဉ်းစားရန် အသုံးဝင်ပါသည်။
  • SSH သည် အရာအားလုံးကို လုပ်ဆောင်နိုင်သော်လည်း တစ်ခါတစ်ရံတွင် "လုံခြုံရေးအကြောင်းပြချက်" ကြောင့် ခွင့်မပြုပါ။ ထည့်သွင်းစဉ်းစားမှုများ ကွဲပြားနိုင်သည်၊ ကျွန်ုပ်သည် ၎င်းတို့ကို နားမလည်ပါ။

သို့သော်လည်း ၎င်း၏ ချို့ယွင်းချက်များအားလုံးနှင့် ARI သည် စောင့်ကြည့်စစ်ဆေးခြင်း လိုအပ်ချက်အားလုံး၏ 90% ကို လွှမ်းခြုံထားသည်။

Zabbix နှင့် Telnet - ကျွန်ုပ် စိတ်ပျက်မိသည်။

AMI ကို ကောင်းကောင်းသိပါတယ်၊ တစ်ချိန်က အဝေးရုံးတွေနဲ့ ခွဲဝေမှု၊ ဖုန်းခေါ်ဆိုမှု စီမံခန့်ခွဲရေး စတာတွေနဲ့ စကားဝိုင်းတွေမှာ ဆုံးရှုံးမှုတွေကို ခြေရာခံခဲ့တယ်။ Telnet ဖြင့်၊ အရာအားလုံးသည် အလွန်ရှင်းလင်းသည်- ချိတ်ဆက်မှုကိုဖွင့်ပါ၊ အမိန့်များပေးပို့ပြီး တုံ့ပြန်မှုကိုဖတ်ပါ။ အဲဒါကို ကျွန်တော်လုပ်ခဲ့ပေမယ့် ရလဒ်က ကျွန်တော့်ကို စိတ်ပျက်စေခဲ့တယ်။

Zabbix ရဲ့ Telnet ဟာ console တွေနဲ့ မတူပါဘူး။ Linux၎င်းသည် အနည်းငယ်ရိုးရှင်းပြီး စံ login/password authentication အတွက် ဒီဇိုင်းထုတ်ထားသည်။ authentication logic ကွဲပြားပြီး login/password pair ကို တောင်းဆိုထားခြင်းမရှိပါက error တက်ပါသည်။ authentication လိုအပ်ချက်ကို ကျော်ဖြတ်ရန် မအောင်မြင်ပြီးနောက် Telnet module ၏ source code ကို စတင်ကြည့်ရှုခဲ့သည်။

သမားရိုးကျ အကောင့်ဝင်ခြင်းနှင့် စကားဝှက် တောင်းဆိုမှု မရှိပါက ရှေ့သို့ ဆက်သွားမည်မဟုတ်ကြောင်း ကျွန်ုပ်သဘောပေါက်ပါသည်။ အပျော်သဘောဖြင့်၊ ခွင့်ပြုချက်နှင့်ပတ်သက်သည့်အရာအားလုံးကို ကုဒ်မှဖယ်ရှားပြီး အရာအားလုံးကို ပြန်လည်စုစည်းလိုက်ပါသည်။ အလုပ်များ! ဒါပေမယ့် လိုအပ်ချက်တွေနဲ့ မကိုက်ညီဘူး။ ဆက်လုပ်သည်…

ရှာဖွေမှုသို့ ပြန်သွားကြပါစို့

ကျွန်တော် ARI စာရွက်စာတမ်းကို ထပ်မံဖတ်ရှုပြီး နောက်ထပ်စမ်းသပ်မှုများ လုပ်ဆောင်ခဲ့သည် - ဤနေရာတွင် sip မှတ်ပုံတင်ခြင်း မရှိပါ။ ပွဲတွေရှိတယ်၊ စကားဝိုင်းတွေရှိတယ်၊ ဘောင်းဘီတိုတွေရှိတယ်၊ ဒါပေမယ့် မှတ်ပုံတင်မရှိဘူး။ တစ်ချိန်ချိန်မှာတော့ ငါတို့က လင်းတစာရင်းသွင်းဖို့ တကယ်လိုသလားလို့တောင် တွေးမိသေးတယ်။

ရယ်စရာကောင်းသော တိုက်ဆိုင်မှုတစ်ခုအနေဖြင့်၊ ဤအခိုက်အတန့်တွင် အထွက်ခေါ်ဆိုမှုပြဿနာနှင့်အတူ သုံးစွဲသူထံမှ နောက်ထပ်တောင်းဆိုချက်တစ်ခု ရောက်ရှိလာပါသည်။ ပြဿနာမှာ sip မှတ်ပုံတင်ခြင်း အေးခဲနေပြီး module ကို reboot လုပ်ရုံဖြင့် ဖြေရှင်းနိုင်ခဲ့သည်။

asterisk -rx "sip reload"

ဝဘ်ပေါ်ရှိ AMI ကို ဝင်ရောက်ကြည့်ရှုခြင်းသည် ကောင်းမွန်လိမ့်မည်- ပြဿနာအားလုံးကို ဖြေရှင်းနိုင်မည်ဟု ကျွန်တော်ထင်ပါသည်။ ဤဦးတည်ချက်တွင် ကျွန်ုပ်စတင်တူးဖော်ပြီး ပထမရှာဖွေရေးစာကြောင်းသည် ကျွန်ုပ်၏လုပ်ဆောင်စရာများအတွက် ရွေးချယ်စရာတစ်ခုရှိသည်ဟု ဆိုထားသည့် တရားဝင် Asterisk စာတမ်းပြုစုခြင်းဆီသို့ ဦးတည်သွားပါသည်။ webenabled ဖိုင်ထဲမှာ /etc/asterisk/manager.confကဏ္ဍတွင် YES ဟု သတ်မှတ်ရန် လိုအပ်သည်။ [အထွေထွေ]

ဒီနောက်မှာတော့ ပုံမှန်ဝဘ်ဆိုဒ်ကနေတစ်ဆင့် ဖောင်ပုံစံကို တောင်းဆိုပါတယ်။ http://ats:8089/mxml?action=SIPshowregistry လိုအပ်သော အချက်အလက်အားလုံးကို ကျွန်ုပ်တို့ ရရှိပါသည်။

FreePBX အင်တာဖေ့စ်ကို အသုံးပြုသောအခါ၊ သင်သည် ဤရွေးချယ်မှုကို ဝဘ်မှတစ်ဆင့် ဖွင့်၍မရပါ၊ manager.conf ဖိုင်ကို ပြောင်းလဲခြင်းဖြင့် ၎င်းကို ကွန်ဆိုးလ်မှတစ်ဆင့် ဖွင့်ရန် လိုအပ်သည်။ ဝဘ်မှတဆင့် ဖွဲ့စည်းမှုပြောင်းလဲမှုများကို ပြုလုပ်သောအခါ FreePBX သည် ၎င်းကို ဖျက်မည်မဟုတ်ပါ။

ကျွန်ုပ်သည် Asterisk ပေါင်းစည်းမှု အမျိုးမျိုးနှင့် အချိန်အတော်ကြာ အလုပ်လုပ်ခဲ့ပြီးဖြစ်သော်လည်း ဤအင်္ဂါရပ်ကို မည်သည့်နေရာတွင်မှ ဖော်ပြထားခြင်းကို မတွေ့ဖူးပါ။ PBX နဲ့ တုံ့ပြန်တဲ့ ဒီနည်းလမ်းကို ဘယ်သူကမှ မဖော်ပြထားတဲ့အတွက် အံ့သြမိပါတယ်။ ဤအကြောင်းအရာနှင့်ပတ်သက်သည့် အချက်အလက်ကိုရှာဖွေရန် အထူးပင်အသုံးဝင်သည်- လက်တွေ့အားဖြင့် ဘာမှမရှိပါ သို့မဟုတ် လုံးဝကွဲပြားခြားနားသောအလုပ်များအတွက် အသုံးပြုထားသည်။

WEB AMI - ဘယ်လိုသားရဲမျိုးလဲ။

ရွေးချယ်မှုတစ်ခုထည့်ခြင်း။ webenabled ဖို manager.conf ဝဘ်မှတစ်ဆင့် ATS စီမံခန့်ခွဲမှုအား အပြည့်အဝဝင်ရောက်ခွင့် ပေးထားသည်။ ပုံမှန် AMI မှတဆင့် ရရှိနိုင်သော အမိန့်များအားလုံးသည် ယခုအခါ ဝဘ်ပေါ်တွင် ရှိနေပြီး၊ သင်သည် PBX မှ အဖြစ်အပျက်များကို socket မှတဆင့် နားထောင်နိုင်သည်။ လည်ပတ်မှုနိယာမသည် console AMI နှင့်မတူပါ။ ဤရွေးချယ်မှုကို အသက်သွင်းပြီးနောက်၊ သင်သည် အောက်ပါလိပ်စာများတွင် PBX ကို ဆက်သွယ်နိုင်သည်-

https://ats:8089/manager — စမ်းသပ်ခြင်းနှင့် တောင်းဆိုချက်များကို ကိုယ်တိုင်ပေးပို့ခြင်းအတွက် ရိုးရှင်းသော အင်တာဖေ့စ်ပါရှိသော ဝဘ်စာမျက်နှာ။ တုံ့ပြန်မှုအားလုံးကို ဖတ်နိုင်သော HTML အဖြစ် ဖော်မတ်လုပ်ထားသည်။ စောင့်ကြည့်ရန် အလွန်မသင့်တော်ပါ။
https://ats:8089/rawman — စာသားအထွက်အတွက်သာ၊ console AMI နှင့်ဆင်တူသောဖော်မတ်
https://ats:8089/mxml - XML ​​ဖော်မတ်ဖြင့် စာသားအထွက်အတွက်သာ။ ငါတို့နဲ့လိုက်ဖက်တယ်!

Zabbix ကို သေတ္တာထဲက Asterisk နဲ့ ချိတ်ဆက်နည်း

ထိုအခါငါစဉ်းစားခဲ့သည်: "ဒါကဖြေရှင်းချက်! အခုတော့ အားလုံးအဆင်သင့်ဖြစ်နေပါပြီ။ လွယ်ကူသော သံပုရာသီး ညှစ်ထားသော်လည်း ဝမ်းမြောက်ရန် စောလွန်းပါသည်။ ကျွန်ုပ်တို့လိုအပ်သောအချက်အလက်များကိုရယူရန်၊ လိုအပ်သောလုပ်ဆောင်ချက်ဖြင့် GET တောင်းဆိုချက်ကိုအသုံးပြုရန်လုံလောက်ပါသည်။ လှုပ်ရှားမှုတုံ့ပြန်မှုတွင် မှတ်ပုံတင်မှုစာရင်းနှင့် ၎င်းတို့၏ အခြေအနေအားလုံးကို xml ပြန်ပေးသည်။ ဤအရာအားလုံးသည် ကောင်းမွန်သော်လည်း ကွတ်ကီးမှ ဆက်ရှင်ကို မှတ်မိရန် သင်ခွင့်ပြုချက် လိုအပ်ပါသည်။ ဘရောက်ဆာတွင် သင်စမ်းသပ်သောအခါ၊ ဤလုပ်ငန်းစဉ်ကို သင်မစဉ်းစားပါ။

ခွင့်ပြုချက်လုပ်ငန်းစဉ်

လိပ်စာကို အရင်ဦးဆုံးပြောပါမယ်။ http://ats:8089/mxml?action=login&username=zabbix&secret=zabbixတုံ့ပြန်မှုအနေဖြင့်၊ ဆာဗာသည် ခွင့်ပြုချက်အပိုင်းနှင့်အတူ ကွတ်ကီးတစ်ခုကို ကျွန်ုပ်တို့ထံ ပေးပို့ပါသည်။ ၎င်းသည် HTTP တောင်းဆိုမှုပုံစံဖြစ်သည်-

https://ats:8089/mxml?action=login&username=zabbix&secret=zabbix

Host: ats:8089
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:77.0) Gecko/20100101 Firefox/77.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
DNT: 1
Connection: keep-alive
Upgrade-Insecure-Requests: 1

အဖြေ:

GET: HTTP/1.1 200 OK
Server: Asterisk/13.29.2
Date: Thu, 18 Jun 2020 17:41:19 GMT
Cache-Control: no-cache, no-store
Content-type: text/xml
Set-Cookie: mansession_id="6f5de42c"; Version=1; Max-Age=600
Pragma: SuppressEvents
Content-Length: 146

<ajax-response>
<response type="object" id="unknown">
<generic response="Success" message="Authentication accepted"/>
</response>
</ajax-response>

အဲဒီမှာအလုပ်လုပ်ဖို့သင်လိုအပ်ပါတယ်။ mansession_id="6f5de42c"ဆိုလိုသည်မှာ ခွင့်ပြုချက် cookie ကိုယ်တိုင်။
အဖြေကို စစ်ကြည့်ဖို့ လိုတဲ့ အကြောင်းအရာ၊အထောက်အထားစိစစ်ခြင်းကို လက်ခံခဲ့သည်။“ ထို့နောက်၊ PBX ဆာဗာသို့ ခေါ်ဆိုမှုအားလုံးအတွက်၊ တောင်းဆိုချက်တွင် ခွင့်ပြုချက်ကွတ်ကီးတစ်ခု ထည့်ရန် လိုအပ်ပါမည်။

https://ats:8089/mxml?action=SIPpeers

Host: ats:8089
Connection: close
Cookie: mansession_id="6f5de42c"

ခွင့်ပြုချက်ကွတ်ကီးကို ဘယ်လိုရယူရမလဲဆိုတာ ဒီမှာဖတ်ပြီး တခြားတောင်းဆိုမှုတွေမှာ အသုံးပြုပါ- "Zabbix - မက်ခရိုနယ်နိမိတ်များကို ချဲ့ထွင်ခြင်း။»

Zabbix တွင် ခြေရာခံဒြပ်စင်များ ဖန်တီးရန် ကျွန်ုပ်သည် အလိုအလျောက် သိရှိခြင်းကို အသုံးပြုပါမည်။

အလိုအလျောက် သိရှိခြင်း။

စာရင်းသွင်းမှုများကို အလိုအလျောက်သိရှိနိုင်ပြီး သက်တူရွယ်တူနိုင်ငံများကို ခြေရာခံရန် အောက်ပါလိပ်စာကို ဆက်သွယ်ရန် လိုအပ်သည်- https://ats:8089/mxml?action=SIPshowregistry သို့မဟုတ် https://ats:8089/mxml?action=SIPpeers

တုံ့ပြန်မှုတွင်၊ PBX သည် ကျွန်ုပ်တို့အား XML တုံ့ပြန်မှုကို ပြန်ပေးသည်-

<ajax-response>
<response type="object" id="unknown">
<generic response="Success" eventlist="start" message="Registrations will follow"/>
</response>
...
<response type="object" id="unknown">
<generic event="RegistryEntry" host="login.mtt.ru" port="5060" username="111111" domain="login.mtt.ru" domainport="5060" refresh="105" state="Registered" registrationtime="1592502142"/>
</response>
<response type="object" id="unknown">
<generic event="RegistryEntry" host="voip.uiscom.ru" port="5060" username="222222" domain="voip.uiscom.ru" domainport="5060" refresh="105" state="Registered" registrationtime="1592502142"/>
</response>
<response type="object" id="unknown">
<generic event="RegistryEntry" host="voip.uiscom.ru" port="5060" username="333333" domain="voip.uiscom.ru" domainport="5060" refresh="105" state="Registered" registrationtime="1592502142"/>
</response>
...
</ajax-response>

တုံ့ပြန်မှုတွင် အမှိုက်များစွာရှိနေသောကြောင့် ကြိုတင်လုပ်ဆောင်ရာတွင် ၎င်းကို ပုံစံပလိတ်ဖြင့် စစ်ထုတ်ပါသည်။ XPath: //response/generic[@host]
ထို့နောက် ပျော်ရွှင်မှုစတင်သည်။ ထောက်လှမ်းခြင်းနှင့် ဒြပ်စင်များကို ဒိုင်းနမစ်ဖန်တီးခြင်းဖြင့် လုပ်ဆောင်ရန်၊ တုံ့ပြန်မှုသည် JSON ဖော်မတ်ရှိရပါမည်။ အလိုအလျောက် သိရှိခြင်းအတွက် XML ကို မပံ့ပိုးပါ။

XML ကို JSON သို့ပြောင်းရန်၊ ကျွန်ုပ်သည် JS တွင် ဇာတ်ညွှန်းတစ်ခုပြုလုပ်ထားသည့်အတွက် အော်တိုအစားထိုးခြင်းနှင့် အနည်းငယ်ကစားရပါမည်

Zabbix ကို သေတ္တာထဲက Asterisk နဲ့ ချိတ်ဆက်နည်း

စိတ်ဝင်စားစရာကောင်းသောအချက်- ATS တုံ့ပြန်မှုတွင်၊ ဘောင်အားလုံးကို ကိုးကားချက်တစ်ခုတည်းဖြင့် ဝိုင်းရံထားပြီး နမူနာပုံစံကို အသုံးပြုပြီးနောက်၊ //response/generic[@host] ၎င်းတို့ကို နှစ်ဆဖြင့် အစားထိုးထားသည်။

ဒြပ်စင်များဖန်တီးရန်၊ ကျွန်ုပ်တို့သည် XML တုံ့ပြန်မှု (ယခု JSON) မှ ကိန်းရှင်များကို အသုံးပြုပါသည်။

Zabbix ကို သေတ္တာထဲက Asterisk နဲ့ ချိတ်ဆက်နည်း

SIP မှတ်ပုံတင်ခြင်း။

sip မှတ်ပုံတင်ခြင်းအတွက် ကျွန်ုပ်တို့သည် ကိန်းရှင်သုံးခုကို အသုံးပြုသည်- အသုံးပြုသူအမည်, အိမ်ရှင်, ဆိပ်ကမ်း. ဒြပ်အမည်နဲ့ ကျေနပ်ခဲ့တယ်။ 111111@login.mtt.ru:5060သင်သည် ကိန်းရှင်ငါးခုလုံးကို အသုံးပြုရန် လိုအပ်သည့် အခြေအနေများကို ကျွန်ုပ်မတွေ့ခဲ့ပါ။

မှတ်ပုံတင်ခြင်းဆိုင်ရာ အချက်အလက်အားလုံးကို လက်ခံရရှိသည့် အဓိကအချက်မှာ၊ ကြယ်ပွင့်များ - AMI SIPshowregistry. တစ်မိနစ်လျှင်တစ်ကြိမ် GET တောင်းဆိုမှုတစ်ခုပြုလုပ်သည်။ https://ats:8089/mxml?action=SIPshowregistryထို့နောက် တုံ့ပြန်မှု XML ဒေတာကို ခွဲခြမ်းစိတ်ဖြာရန်အတွက် မှီခိုနေသော ဒြပ်စင်အားလုံးကို ပေးပို့သည်။ မှတ်ပုံတင်ခြင်းတစ်ခုစီအတွက် ၎င်းအပေါ် မူတည်၍ အစိတ်အပိုင်းတစ်ခု ဖန်တီးပါသည်။ တောင်းဆိုချက်တစ်ခုစီတွင် နောက်ဆုံးပေါ်အချက်အလက်များကို ကျွန်ုပ်တို့လက်ခံရရှိသောကြောင့် ၎င်းသည် လွယ်ကူအဆင်ပြေပါသည်။ တောင်းဆိုချက်တစ်ခုစီအတွက် သီးခြားမဟုတ်ပါ။ ဤအကောင်အထည်ဖော်မှုတွင် သိသာထင်ရှားသော အားနည်းချက်တစ်ခုရှိသည် - ပရိုဆက်ဆာပေါ်ရှိဝန်။

မှီခိုဒြပ်စင် 100 အထိ စမ်းသပ်သောအခါတွင် ကျွန်ုပ်သည် ဝန်ကို သတိမထားမိသော်လည်း 1700 ဒြပ်စင်များဖြင့်၊ ၎င်းသည် ပရိုဆက်ဆာပေါ်တွင် သိသိသာသာ 15 စက္ကန့်ကြာ ဝန်ကို ပေးသည်။ သင့်တွင် မှီခိုနေသော အစိတ်အပိုင်းများစွာရှိလျှင် ၎င်းကို သတိရပါ။

ဝန်ကို “ဖြန့်” ရန် ရွေးချယ်မှုတစ်ခု သို့မဟုတ် ဒြပ်စင်တစ်ခုအတွက် မတူညီသော မဲဆွယ်မှုကြိမ်နှုန်းများကို သတ်မှတ်ရန် ရွေးချယ်မှုတစ်ခုအနေနှင့်၊ သင်သည် လုပ်ငန်းစဉ်ဆိုင်ရာ ယုတ္တိဗေဒကို ဒြပ်စင်တစ်ခုစီသို့ သီးခြားစီရွှေ့နိုင်သည်။

ရရှိလာသော အချက်အလက်များကို ပင်မဒြပ်စင်တွင် ကျွန်ုပ် မသိမ်းဆည်းပါ။ ပထမဦးစွာ၊ ဤလိုအပ်ချက်ကိုကျွန်ုပ်မမြင်ပါ၊ ဒုတိယအနေဖြင့်တုံ့ပြန်မှုသည် 64K ထက်ပိုပါက Zabbix သည်၎င်းကိုဖြတ်တောက်သည်။

ကျွန်ုပ်တို့သည် မှီခိုနေသောဒြပ်စင်အတွက် XML တုံ့ပြန်မှုကို အပြည့်အဝအသုံးပြုသောကြောင့်၊ ကြိုတင်လုပ်ဆောင်ခြင်းတွင် ဤဒြပ်စင်၏တန်ဖိုးကို ကျွန်ုပ်တို့ရရှိရန် လိုအပ်ပါသည်။ ရှောက် XPath ဤသို့ပြုသည်:
string(//response/generic[@event="RegistryEntry"][@username="{#SIP_REGISTRY_USERNAME}"][@host="{#SIP_REGISTRY_HOST}"][@port="{#SIP_REGISTRY_PORT}"]/@ ပြည်နယ်)
မှတ်ပုံတင်ခြင်းအခြေအနေများအတွက်၊ ကျွန်ုပ်သည် စာသားအခြေအနေများကို အသုံးမပြုခဲ့ဘဲ ၎င်းတို့ကို JavaScript ကို အသုံးပြု၍ ဂဏန်းပုံစံသို့ ပြောင်းလဲခဲ့သည်။

switch(value) {
  case 'Registered':
    return 1;
  case 'Unregistered':
    return 0;
  default:
    return -1;
}

SIP ရွယ်တူများ

SIP မှတ်ပုံတင်မှုများနှင့် နှိုင်းယှဉ်ခြင်းဖြင့်၊ AMI SIPshowregistry ၏ အဓိကဒြပ်စင်တစ်ခု ပါ၀င်ပြီး ၎င်းတို့ကို မှီခိုသူများကို ပေါင်းထည့်ထားသည်။

၎င်းသည် မှီခိုနေသော ဒြပ်စင်နှစ်ခုကို ဖန်တီးသည်-

  • စာသားပုံစံတွင် သက်တူရွယ်တူအခြေအနေ
  • စက်ပစ္စည်း တုံ့ပြန်ချိန်- အခြေအနေ အဆင် ပြေပါက၊ စက်ပစ္စည်း တုံ့ပြန်မှု အချိန်ကို ရေးထားသည်၊ မဟုတ်ပါက “-1”

ဒြပ်စင်သို့သွားရာလမ်းကြောင်းသည် အနည်းငယ်ရိုးရှင်းပါသည်။ XPath:

string(//response/generic[@objectname="{#SIP_PEER_OBEJECTNAME}"]/@status)

ဒုတိယဒြပ်စင်အတွက် ကျွန်ုပ်သည် ခွဲခြားရန် JavaScript ကို အသုံးပြုခဲ့သည်။ တုံ့ပြန်မှုအချိန် ၎င်းတို့ကို အတူတကွ သိမ်းဆည်းထားသောကြောင့် သက်တူရွယ်တူ အဆင့်အတန်းမှ၊

if(value.substring(0,2) == 'OK'){
	return value.match(/(d+)/gm);
}
else {
	return -1;
}

ကောက်ချက်

ကွက်လပ်မဟုတ်သော အဖြေတစ်ခုသည် ရှုပ်ထွေးနိုင်ပြီး ချက်ချင်းမရှင်းလင်းနိုင်ပါ။ မတူညီသောစနစ်များကြားတွင် ပြောင်းလွယ်ပြင်လွယ်နှင့် သယ်ဆောင်ရလွယ်ကူမှုကို တိုးစေသည်။

ပျော်ရွှင်ပြီး လွယ်ကူစွာ ပေါင်းစည်းနိုင်ပါစေ။ ပုံစံခွက်နှင့် စနစ်ထည့်သွင်းရန် ညွှန်ကြားချက်များ GitHub.

source: www.habr.com

DDoS ကာကွယ်ရေး၊ VPS VDS ဆာဗာများပါသည့် ဆိုက်များအတွက် ယုံကြည်စိတ်ချရသော hosting ကို ဝယ်ယူပါ။ 🔥 DDoS ကာကွယ်မှု၊ VPS VDS ဆာဗာများပါရှိသော ယုံကြည်စိတ်ချရသော ဝဘ်ဆိုက် hosting ကို ဝယ်ယူပါ | ProHoster