Zabbix ን ከሳጥኑ ውስጥ ከአስቴሪክ ጋር እንዴት ማገናኘት እንደሚቻል

በቀደመው መጣጥፍ "ዛቢክስ - ማክሮ ድንበሮችን ማስፋፋት" የፈቃድ ክፍለ ጊዜ እንዴት እንደሚቀበሉ እና በአከባቢ አስተናጋጅ ማክሮ እንደሚተኩት ነግሬዎታለሁ። በዚህ ጽሑፍ ውስጥ ዛቢቢክስን ያለ ውጫዊ ስክሪፕቶች እና ሶፍትዌሮች ከአስቴሪክ ጋር እንዴት ማገናኘት እንደሚችሉ እነግርዎታለሁ ።

የእነዚህ ሁለት ስርዓቶች "ጓደኛ ማፍራት" የሚለው ሀሳብ ተጨማሪ ሶፍትዌሮችን ወይም ስክሪፕቶችን ሳይጭኑ ከረጅም ጊዜ በፊት ተወለደ. ፈጣን ጉግል ብዙ መፍትሄዎችን አስገኝቷል ፣ ሁሉም ነገር ስክሪፕቶቹን (በፒሃ ፣ ባሽ ፣ ፒዘን ፣ ወዘተ) ወደ አገልጋዩ በመስቀል እውነታ ላይ ወድቋል ፣ እናም ደስተኛ ይሆናሉ። "ከሳጥኑ ውጭ" ክትትልን ተግባራዊ ማድረግ ፈለግሁ - ያለ ውጫዊ ስክሪፕቶች እና ተጨማሪ ሶፍትዌሮችን በአገልጋዩ ላይ በክትትል እና በፒቢኤክስ መጫን።

ከዚህ ጋር በአጠቃላይ 4 የስራ ቀናት አሳለፍኩ, ነገር ግን ውጤቱ ዋጋ ያለው ነበር. በ AMI በይነገጽ መስራት፣ ዝቅተኛ ደረጃ ማወቂያ፣ ቀስቅሴዎች እና ከሁሉም በላይ PBX ን እና ሁሉንም ሌሎች መቼቶችን ማገናኘት አሁን 15 ደቂቃ ያህል ይወስዳል።

Zabbix 4.4 ይገኛል፣ ወደ 100 የሚጠጉ የአስቴሪክ ስሪት 13። አንዳንድ PBXs ከFreePBX የድር በይነገጽ፣ አንዳንዶቹ ባዶ ኮንሶል፣ ብዙ ብልሃቶች እና ውህደት በዲያልፕላን በኩል ይመጣሉ።

ከPBX መረጃን በመቀበል ላይ

መፍትሄ የሚያስፈልገው የመጀመሪያው እና ዋናው ነጥብ ስለ እኩዮች እና የ SIP ምዝገባዎች መረጃ ማግኘት ነው። ለዚሁ ዓላማ, PBX AGI, AMI, ARI እና SSH ኮንሶል መገናኛዎች አሉት. ግልጽ በሆኑ ምክንያቶች, ተጨማሪ ሞጁሎችን አላሰብኩም.

በመጀመሪያ እነዚህ አጊ፣ አሚ፣ አሪ... ምን እንደሆኑ ማወቅ አለብን።

  • AGI - በመደወያው ውስጥ ስክሪፕቶችን በመጠቀም። በዋናነት ለጥሪ አስተዳደር ጥቅም ላይ ይውላል።
  • ኤኤምአይ - ሁሉንም አስፈላጊ መረጃዎችን መስጠት ይችላል, በፖርት 5038 በኩል ይሰራል, ልክ እንደ ቴልኔት. ይስማማናል!
  • ARI - ዘመናዊ, ፋሽን, JSON. ብዙ አማራጮች አሉ, የውሂብ ቅርፀቱ ለ Zabbix ሊረዳ የሚችል ነው, ግን ለእኔ ምንም ዋና ነገር የለም: የሲፕ ምዝገባን መቆጣጠር አይችሉም. ሌላው ጉዳት ለእኩዮች በመስመር ላይ / ከመስመር ውጭ ሁለት ግዛቶች ብቻ መኖራቸው ነው, ምንም እንኳን ብዙ ግዛቶች ቢኖሩም እና ሲመረመሩ ግምት ውስጥ ማስገባት ጠቃሚ ነው.
  • SSH ሁሉንም ነገር ማድረግ ይችላል, ነገር ግን አንዳንድ ጊዜ በ "ደህንነት ምክንያቶች" ምክንያት አይፈቀድም. ግምት ውስጥ መግባት የተለየ ሊሆን ይችላል, ወደ እነርሱ አልገባም.

ሆኖም፣ በሁሉም ድክመቶቹ፣ ARI ከሁሉም የክትትል ፍላጎቶች 90% ይሸፍናል።

ዛቢቢክስ እና ቴልኔት - የእኔ ተስፋ አስቆራጭ

ኤኤምአይን በደንብ አውቀዋለሁ፤ በአንድ ወቅት ከርቀት ቢሮዎች ክፍፍል፣ የጥሪ አስተዳደር ወዘተ ጋር ባደረግሁት ውይይት የኪሳራ ክትትልን ተግባራዊ አድርጌ ነበር። በቴልኔት ፣ ሁሉም ነገር በጣም ግልፅ ነው-ግንኙነቱን ይክፈቱ ፣ ትእዛዞቹን ይላኩ እና ምላሹን ያንብቡ። ያደረኩት ነው፣ ውጤቱ ግን አሳዘነኝ።

በዛቢክስ ውስጥ ያለው ቴልኔት በሊኑክስ ኮንሶል ውስጥ ካለው ጋር አንድ አይነት አይደለም፣ ትንሽ ቀለል ያለ እና እንደ መግቢያ/የይለፍ ቃል ላሉ መደበኛ ፍቃድ የተበጀ ነው። የፈቀዳ አመክንዮ የተለየ ከሆነ እና የመግቢያ/የይለፍ ቃል ጥንድ ጥያቄ ከሌለ ስህተት ይከሰታል። የፈቃድ መስፈርቱን ለማለፍ ከንቱ ሙከራዎች በኋላ፣ የቴልኔት ሞጁሉን ምንጭ ኮድ መመልከት ጠቃሚ ነበር።

ባህላዊ የመግቢያ እና የይለፍ ቃል ጥያቄ እስካልቀረበ ድረስ ወደ ፊት እንደማልሄድ ተገነዘብኩ። ለመዝናናት ያህል፣ ከፍቃድ ጋር የተያያዙ ሁሉንም ነገሮች ከኮዱ አስወግጄ ሁሉንም ነገር እንደገና ሰብስቤያለሁ። ይሰራል! ግን መስፈርቶቹን አያሟላም። ቀጥልበት…

ወደ ፍለጋው እንመለስ

የ ARI ሰነዶችን እንደገና አንብቤያለሁ ፣ ተጨማሪ ሙከራዎችን አደረግሁ - እዚህ ምንም የ SIP ምዝገባዎች የሉም። ድግሶች አሉ, ንግግሮች አሉ, ብስጭቶች አሉ, ግን ምንም ምዝገባዎች የሉም. የሆነ ወቅት ላይ እኔ በእርግጥ አሞራ ምዝገባ ያስፈልገናል?

በአስቂኝ አጋጣሚ፣ በዚህ ጊዜ ከወጪ ጥሪዎች ችግር ጋር ከተጠቃሚው ሌላ ጥያቄ ይመጣል። ችግሩ የሲፕ ምዝገባው እየቀዘቀዘ ነበር እና በቀላሉ ሞጁሉን እንደገና በማስነሳት ተፈትቷል.

asterisk -rx "sip reload"

ኤኤምአይን በድር ላይ ማግኘት በጣም ጥሩ ነው፡ ያ ሁሉንም ችግሮች ይፈታል ብዬ አሰብኩ። በዚህ አቅጣጫ መቆፈር እጀምራለሁ, እና በጥሬው የመጀመሪያው የፍለጋ መስመር ወደ ኦፊሴላዊው የአስቴሪስ ሰነድ ይመራል, ይህም ለስራዎቼ አማራጭ አለ ይላል. በድረ-ገጽ ተዘጋጅቷል በፋይል ውስጥ /etc/asterisk/manager.confበክፍል ውስጥ፣ ወደ አዎ መዋቀር ያለበት [አጠቃላይ]

ከዚህ በኋላ, በቅጹ መደበኛ የድር ጥያቄ በኩል http://ats:8089/mxml?action=SIPshowregistry ሁሉንም አስፈላጊ መረጃዎች እናገኛለን.

የFreePBX በይነገጽን በሚጠቀሙበት ጊዜ ይህንን አማራጭ በድር በኩል ማንቃት አይችሉም ፣ በ manager.conf ፋይል ላይ ለውጦችን በማድረግ በኮንሶሉ በኩል ማንቃት ያስፈልግዎታል። የውቅረት ለውጦች በድር በኩል ሲደረጉ FreePBX አይሰርዘውም።

ከተለያዩ የከዋክብት ውህደቶች ጋር ለረጅም ጊዜ ሠርቻለሁ፣ ግን ይህ ባህሪ የትም ሲጠቀስ አይቼው አላውቅም። ማንም ሰው ይህን ከፒቢኤክስ ጋር የመገናኘት ዘዴን አለመግለጹ አስገርሞኛል። በተለይም በዚህ ርዕስ ላይ መረጃ መፈለግ በጣም ጠቃሚ ነበር-በእርግጥ ምንም ነገር የለም ወይም ሙሉ ለሙሉ ለተለያዩ ስራዎች ጥቅም ላይ ውሏል.

WEB AMI - ምን አይነት አውሬ ነው?

አማራጭ በማከል ላይ በድረ-ገጽ ተዘጋጅቷል ወደ ፋይል አስተዳዳሪ.conf በድር በኩል ለኤቲኤስ አስተዳደር ሙሉ መዳረሻ አቅርቧል። በመደበኛ ኤኤምአይ በኩል የሚገኙ ሁሉም ትዕዛዞች አሁን በድር ላይ ናቸው፣ ከPBX የሚመጡ ክስተቶችን በሶኬት ማዳመጥ ይችላሉ። የሥራው መርህ ከኮንሶል ኤኤምአይ አይለይም. ይህን አማራጭ ካነቁ በኋላ፣ PBX ን በሚከተሉት አድራሻዎች ማግኘት ይችላሉ።

https://ats:8089/manager - ለመፈተሽ እና ጥያቄዎችን በእጅ ለመላክ ቀላል በይነገጽ ያለው ድረ-ገጽ። ሁሉም ምላሾች በሚነበብ ኤችቲኤምኤል ተቀርፀዋል። ለክትትል በጣም ተስማሚ አይደለም.
https://ats:8089/rawman - የጽሑፍ ውፅዓት ብቻ፣ ከኮንሶል ኤኤምአይ ጋር የሚመሳሰል ቅርጸት
https://ats:8089/mxml - የጽሑፍ ውፅዓት ብቻ፣ በኤክስኤምኤል ቅርጸት። ይስማማናል!

Zabbix ን ከሳጥኑ ውስጥ ከአስቴሪክ ጋር እንዴት ማገናኘት እንደሚቻል

ከዚያም “መፍትሔው ይህ ነው! አሁን ሁሉም ነገር ዝግጁ ይሆናል! ቀላል የሎሚ ጭማቂ”፣ ግን ለመደሰት በጣም ገና ነበር። የምንፈልገውን መረጃ ለማግኘት የGET ጥያቄን ከአስፈላጊው እርምጃ ጋር መጠቀም በቂ ነው። እርምጃ, ይህም በምላሹ xml የሁሉንም ምዝገባዎች ዝርዝር እና ሁኔታቸውን ይመልሳል. ይህ ሁሉ በጣም ጥሩ ነው፣ ግን ክፍለ-ጊዜውን ከኩኪው ለማስታወስ ፍቃድ ያስፈልግዎታል። በአሳሹ ውስጥ ሲሞክሩ, ስለዚህ ሂደት አያስቡም.

የፈቃድ ሂደት

በመጀመሪያ አድራሻውን እናቀርባለን http://ats:8089/mxml?action=login&username=zabbix&secret=zabbix, በምላሹ, አገልጋዩ ከፍቃድ ክፍለ ጊዜ ጋር ኩኪ ይልክልናል. የኤችቲቲፒ ጥያቄ ይህን ይመስላል።

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"፣ ማለትም የፈቀዳው ኩኪ ራሱ።
መልሱን ብቻ መፈለግ ያለብዎት ይዘት"ማረጋገጫ ተቀባይነት አግኝቷል" በመቀጠል፣ ወደ 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 የኤክስኤምኤል ምላሽ ይሰጠናል፡-

<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>

በምላሹ ውስጥ ብዙ ቆሻሻ አለ፣ ስለዚህ በቅድመ-ሂደት በአብነት እናጣራዋለን ኤክስፓት: // ምላሽ/ አጠቃላይ[@host]
ከዚያ ደስታው ይጀምራል. ከማወቂያ ጋር ለመስራት እና ንጥረ ነገሮችን በተለዋዋጭ ለመፍጠር ምላሹ በJSON ቅርጸት መሆን አለበት። ኤክስኤምኤል ለራስ ማወቂያ አይደገፍም።

ኤክስኤምኤልን ወደ JSON ለመለወጥ፣ በአውቶ ምትክ ትንሽ መጫወት ነበረብኝ፣ ለዚህም በJS ውስጥ ስክሪፕት ሰራሁ።

Zabbix ን ከሳጥኑ ውስጥ ከአስቴሪክ ጋር እንዴት ማገናኘት እንደሚቻል

አንድ አስደሳች ነጥብ: በ ATS ምላሽ ውስጥ, ሁሉም መለኪያዎች በነጠላ ጥቅሶች የተከበቡ ናቸው, እና አብነቱን ከተጠቀሙ በኋላ // ምላሽ/ አጠቃላይ[@host] በድርብ ይተካሉ.

ክፍሎችን ለመፍጠር ከኤክስኤምኤል ምላሽ (አሁን JSON) ተለዋዋጮችን እንጠቀማለን።

Zabbix ን ከሳጥኑ ውስጥ ከአስቴሪክ ጋር እንዴት ማገናኘት እንደሚቻል

የ SIP መዝገብ ቤት

ለ SIP ምዝገባዎች ሶስት ተለዋዋጮችን እንጠቀማለን- የተጠቃሚ ስም, አስተናጋጅ, ወደብ. በኤለመንት ስም ደስተኛ ነበርኩ። [ኢሜል የተጠበቀ]: 5060, ሁሉንም አምስቱን ተለዋዋጮች ለመጠቀም የሚያስፈልግዎትን ሁኔታዎች አላገኘሁም.

ስለ ሁሉም ምዝገባዎች መረጃ የሚቀበለው ዋናው አካል ፣ ኮከብ ምልክት - AMI SIPሾው መዝገብ ቤት. በደቂቃ አንድ ጊዜ የGET ጥያቄ ያቀርባል https://ats:8089/mxml?action=SIPshowregistry, ከዚያ በኋላ ምላሹ የኤክስኤምኤል ውሂብ ለመተንተን ወደ ሁሉም ጥገኛ አካላት ይተላለፋል. ለእያንዳንዱ ምዝገባ በእሱ ላይ ጥገኛ የሆነ ንጥረ ነገር እፈጥራለሁ. ይህ ምቹ ነው ምክንያቱም ወቅታዊ መረጃ የምንቀበለው በአንድ ጥያቄ ነው እንጂ ለእያንዳንዱ ጥያቄ በተናጠል አይደለም። ይህ ትግበራ ጉልህ የሆነ ጉድለት አለው - በማቀነባበሪያው ላይ ያለው ጭነት.

እስከ 100 የሚደርሱ ጥገኛ ንጥረ ነገሮችን በሚሞክርበት ጊዜ, ጭነቱን አላስተዋልኩም, ነገር ግን በ 1700 ኤለመንቶች, ይህ በማቀነባበሪያው ላይ 15 ሰከንድ ጉልህ ጭነት ሰጠ. ብዙ ቁጥር ያላቸው ጥገኛ ንጥረ ነገሮች ካሉዎት ይህንን ያስታውሱ።

ጭነቱን "ለመዘርጋት" ወይም ለአንድ አካል የተለያዩ የድምጽ መስጫ ድግግሞሾችን ለማዘጋጀት እንደ አማራጭ የማቀነባበሪያውን አመክንዮ ወደ እያንዳንዱ አካል ለየብቻ ማንቀሳቀስ ይችላሉ።

የተቀበለውን መረጃ በዋናው አካል ውስጥ አላከማችም. በመጀመሪያ ፣ ለዚህ ​​አስፈላጊነት አይታየኝም ፣ እና ሁለተኛ ፣ ምላሹ ከ 64 ኪ.

ሙሉ የኤክስኤምኤል ምላሽ ለጥገኛ አካል ስለምንጠቀም በቅድመ-ሂደት ውስጥ የዚህን ኤለመንት ዋጋ ማግኘት አለብን። በኩል ኤክስፓት እንደዚህ ተከናውኗል
ሕብረቁምፊ (//ምላሽ/ አጠቃላይ[@event="RegistryEntry"][@username="{#SIP_REGISTRY_USERNAME}"][@host="{#SIP_REGISTRY_HOST}"][@port="{#SIP_REGISTRY_PORT}"]/@ ግዛት)
ለምዝገባ ሁኔታዎች፣ የጽሑፍ ሁኔታዎችን አልተጠቀምኩም፣ ነገር ግን ጃቫ ስክሪፕትን በመጠቀም ወደ ቁጥራዊ መልክ ቀየርኳቸው፡-

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

የ SIP እኩዮች

ከ SIP ምዝገባዎች ጋር በማነፃፀር ፣የኮከቢት ዋና አካል አለ - AMI SIPshoregistry ፣ ጥገኞች የሚጨመሩበት።

ይህ ሁለት ጥገኛ ንጥረ ነገሮችን ይፈጥራል.

  • የአቻ ሁኔታ በጽሑፍ መልክ
  • የመሣሪያ ምላሽ ጊዜ - ሁኔታው ​​​​እሺ ከሆነ, የመሣሪያው ምላሽ ጊዜ ተጽፏል, አለበለዚያ "-1"

ወደ ኤለመንቱ የሚወስደው መንገድ ትንሽ ቀላል ነው። ኤክስፓት:

ሕብረቁምፊ (//ምላሽ/ አጠቃላይ[@objectname= "{#SIP_PEER_OBEJECTNAME}"]/@status)

ለሁለተኛው አካል ለመለየት ጃቫ ስክሪፕትን ተጠቀምኩ የምላሽ ጊዜ አብረው ስለሚከማቹ ከእኩያ ደረጃ:

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

መደምደሚያ

ከሳጥን ውጭ የሆነ መፍትሄ ውስብስብ እና ወዲያውኑ ግልጽ ላይሆን ይችላል. በተለያዩ ስርዓቶች መካከል ተለዋዋጭነት እና ተንቀሳቃሽነት ይጨምራል

ደስተኛ እና ቀላል ውህደት ለሁሉም! ለማዋቀር አብነት እና መመሪያዎች የፊልሙ.

ምንጭ: hab.com

አስተያየት ያክሉ