Mokhoa oa ho hokahanya Zabbix le Asterisk ka ntle ho lebokose

Sehloohong se fetileng "Zabbix - ho atolosa meeli e meholo" Ke u joetse mokhoa oa ho amohela seshene ea tumello le ho e kenya sebakeng sa macro ea lehae. Sehloohong sena ke tla u bolella mokhoa oa ho hokahanya Zabbix le Asterisk ntle le mangolo a ka ntle le software.

Khopolo ea ho "etsa metsoalle" ea litsamaiso tsena tse peli e hlahile khale, ntle le ho kenya software kapa mangolo a eketsehileng. Googling e potlakileng e ile ea fana ka litharollo tse ngata tse ka khonehang, tsohle li ile tsa phehela taba ea hore kenya mangolo (ka Pyha, Bash, Python, joalo-joalo) ho seva, 'me u tla thaba. Ke ne ke batla ho kenya ts'ebetso ea ho beha leihlo "ntle le lebokose" - ntle le mangolo a kantle le ho kenya software e eketsehileng ho seva ka ho beha leihlo le PBX.

Ke qetile matsatsi a 4 a ho sebetsa le sena, empa phello e ne e le ea bohlokoa. Ho sebetsa ka sebopeho sa AMI, ho lemoha maemo a tlaase, ho susumetsa, 'me ho bohlokoa ka ho fetisisa, ho hokahanya PBX le litlhophiso tse ling kaofela hona joale ho nka metsotso e ka bang 15.

Zabbix 4.4 ea fumaneha, likotoana tse ka bang 100 tsa mofuta oa 13 oa Asterisk. Li-PBX tse ling li tla le sebopeho sa websaete sa FreePBX, tse ling li na le console e se nang letho, maqheka a mangata le ho kopanya ka mokhoa oa ho daela.

Ho fumana data ho tsoa ho PBX

Ntlha ea pele le e ka sehloohong e lokelang ho rarolloa ke ho fumana lintlha tse mabapi le lithaka le ngoliso ea SIP. Bakeng sa morero ona, PBX e na le likhokahano tsa AGI, AMI, ARI le SSH. Ka mabaka a hlakileng, ha kea ka ka nahana ka li-module tse ling.

Pele re hloka ho fumana hore na li-agi, ami, ari ke eng ...

  • AGI - ho sebelisa mengolo ka har'a daela. Haholo-holo e sebelisoa bakeng sa tsamaiso ea mohala.
  • AMI - e ka fana ka tlhahisoleseding eohle e hlokahalang, e sebetsa ka port 5038, e tšoanang le Telnet. E loketse rona!
  • ARI - ea kajeno, ea feshene, JSON. Ho na le menyetla e mengata, sebopeho sa data sea utloahala bakeng sa Zabbix, empa ho 'na ha ho na ntho e ka sehloohong: u ke ke ua laola ho ngolisoa ha sip. Phoso e 'ngoe ke hore ho lithaka ho na le linaha tse peli feela inthaneteng / kantle ho marang-rang, leha ho na le linaha tse ngata mme ho bohlokoa ho li ela hloko ha ho hlahlojoa.
  • SSH e ka etsa ntho e 'ngoe le e' ngoe, empa ka linako tse ling ha e lumelloe ka lebaka la "mabaka a tšireletso". Maikutlo a ka fapana, nke ke ka kena ho ona.

Leha ho le joalo, ka mefokolo eohle ea eona, ARI e akaretsa 90% ea litlhoko tsohle tsa ho beha leihlo.

Zabbix le Telnet - masoabi a ka

Ke tseba AMI hantle; ka nako e 'ngoe ke ile ka kenya ts'ebetsong ts'ebetso ea tahlehelo lipuisanong le karohano ea liofisi tse hole, tsamaiso ea mehala, joalo-joalo. Ka Telnet, ntho e 'ngoe le e' ngoe e boetse e hlakile haholo: bula khokahano, romella litaelo 'me u bale karabo. Ke sona seo ke ileng ka se etsa, empa phello e ile ea ntšoetsa.

Telnet ho Zabbix ha e tšoane le ho Linux console, e bonolo haholoanyane ebile e etselitsoe tumello e tloaelehileng joalo ka ho kena / password. Haeba logic ea tumello e fapane, 'me ha ho kopo ea ho kena / password, phoso e etsahala. Ka mor'a boiteko bo se nang thuso ba ho tlōla tlhokahalo ea tumello, ho ile ha e-ba molemo ho sheba khoutu ea mohloli oa mojule oa Telnet.

Ke ile ka hlokomela hore ho fihlela ho na le kopo ea setso ea ho kena le ea password, nke ke ka tsoela pele. Bakeng sa ho ithabisa feela, ke ile ka tlosa ntho e 'ngoe le e' ngoe e amanang le tumello ho tloha khoutu ebe ke kopanya ntho e 'ngoe le e' ngoe hape. E sebetsa! Empa ha e fihlelle litlhoko. Tsoela pele…

Ha re khutleleng ho batla

Ke balile hape litokomane tsa ARI hape, ka etsa liteko tse ling - ha ho na ngoliso ea sip mona. Ho na le mekete, ho na le lipuisano, ho na le li-breeches, empa ha ho ngolisoe. Ka nako e 'ngoe ke ile ka ba ka nahana, na re hlile re hloka ho ngolisoa ha manong?

Ka tsietsi e qabolang, motsotsong ona kopo e 'ngoe e fihla ho tsoa ho mosebelisi, ka bothata ba mehala e tsoang. Bothata e ne e le hore ngoliso ea sip e ne e bata 'me ea rarolloa ka ho qala mojule bocha.

asterisk -rx "sip reload"

Ho ka ba monate ho fihlella AMI ka marang-rang: seo se ka rarolla mathata ohle, ke ne ke nahana. Ke qala ho cheka ka lehlakoreng lena, 'me ka ho toba mohala oa pele oa ho batla o lebisa litokomaneng tsa molao tsa Asterisk, tse reng ho na le khetho bakeng sa mesebetsi ea ka. webleble/ ka faele /etc/asterisk/manager.conf, e lokelang ho behoa ho YES, karolong [kakaretso]

Ka mor'a sena, ka kopo ea kamehla ea websaete ea foromo http://ats:8089/mxml?action=SIPshowregistry re fumana lintlha tsohle tse hlokahalang.

Ha u sebelisa sebopeho sa FreePBX, u ke ke ua khona ho etsa khetho ena ka marang-rang; u lokela ho e nolofalletsa ka console ka ho etsa liphetoho ho file manager.conf. FreePBX ha e e hlakole ha liphetoho tsa tlhophiso li etsoa ka webosaete.

Ke sebelitse le mefuta e fapaneng ea likhokahanyo tsa Asterisk nako e telele, empa ha ke so bone karolo ena e boleloa kae kapa kae. Ke ile ka makatsoa ke hore ha ho motho ea hlalosang mokhoa ona oa ho sebelisana le PBX. Ho bile molemo haholo ho batla tlhahisoleseling mabapi le sehlooho sena: ha ho na letho kapa e ne e sebelisetsoa mesebetsi e fapaneng ka ho felletseng.

WEB AMI - ke sebata sa mofuta ofe?

Ho eketsa kgetho webleble/ ho file mookameli.conf e fane ka phihlello e felletseng ea taolo ea ATS ka marang-rang. Litaelo tsohle tse fumanehang ka AMI e tloaelehileng li se li le inthaneteng, u ka mamela liketsahalo ho tsoa ho PBX ka sokete. Molao-motheo oa ts'ebetso ha o fapane le AMI ea console. Kamora ho kenya tšebetsong khetho ena, o ka ikopanya le PBX atereseng e latelang:

https://ats:8089/manager — leqephe la webo le nang le sebopeho se bonolo sa ho etsa liteko le ho romella likopo ka letsoho. Likarabo tsohle li hlophisitsoe hore e be HTML e baloang. Ha e loketse haholo ho beha leihlo.
https://ats:8089/rawman — tlhahiso ea mongolo feela, fomate e ts'oanang le ea AMI
https://ats:8089/mxml - tlhahiso ea mongolo feela, ka sebopeho sa XML. E loketse rona!

Mokhoa oa ho hokahanya Zabbix le Asterisk ka ntle ho lebokose

Eaba kea nahana: “Ena ke tharollo! Joale tsohle li tla be li lokile! Lemone e penyang ha bonolo,” empa e ne e sa le kapele haholo ho thaba. Ho fumana tlhaiso-leseling eo re e hlokang, ho lekane ho sebelisa kopo ea GET ka ketso e hlokahalang nke khato e molemo, eo ka ho arabela e khutlisetsang xml ka lethathamo la bohle ba ngolisitsoeng le boemo ba bona. Sena se setle haholo, empa o hloka tumello ea ho hopola seboka ho tsoa ho cookie. Ha u lekola sebatli, ha u nahane ka ts'ebetso ena.

Ts'ebetso ea tumello

Pele re bua ka aterese http://ats:8089/mxml?action=login&username=zabbix&secret=zabbix, ka ho arabela, seva se re romella cookie ka nako ea tumello. Sena ke kamoo kopo ea HTTP e shebahalang kateng:

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

Karabo:

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>

Ho sebetsa moo o hloka mansession_id="6f5de42c", ke hore, kuku ea tumello ka boeona.
Litaba tseo u li hlokang feela ho fumana karabo "Netefatso e amohetsoe" E latelang, bakeng sa mehala eohle ho seva sa PBX, re tla hloka ho eketsa cookie ea tumello ho kopo.

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

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

Bala mokhoa oa ho fumana cookie ea tumello le ho e sebelisa ho likopo tse ling mona: "Zabbix - ho atolosa meeli e meholo»

Ho theha likarolo tsa ho lata ho Zabbix ke tla sebelisa mokhoa oa ho iponahatsa.

Ho lemoha ka ho iketsa

Ho tseba ho ingolisa le ho latela maemo a lithaka, o hloka ho ikopanya le aterese e latelang: https://ats:8089/mxml?action=SIPshowregistry kapa https://ats:8089/mxml?action=SIPpeers

Ho arabela, PBX e re khutlisetsa karabo ea 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>

Ho na le lithōle tse ngata karabelong, kahoo ha re e lokisa pele re e sefa ka template XPath: //response/generic[@host]
Joale monate oa qala. Ho sebetsa ka ho lemoha le ho theha likarolo, karabelo e tlameha ho ba ka sebopeho sa JSON. XML ha e tšehetsoe bakeng sa ho lemoha ka bo eona.

Ho fetolela XML ho JSON, ke ile ka tlameha ho bapala hanyane ka phetoho ea koloi, eo ke entseng mongolo ho eona JS.

Mokhoa oa ho hokahanya Zabbix le Asterisk ka ntle ho lebokose

Ntlha e khahlisang: karabelong ea ATS, liparamente tsohle li pota-potiloe ke mantsoe a qotsitsoeng a le mong, mme kamora ho sebelisa template. //response/generic[@host] li nkeloa sebaka ke tse peli.

Ho theha likarolo, re sebelisa mefuta e fapaneng ho tsoa karabong ea XML (hona joale ke JSON).

Mokhoa oa ho hokahanya Zabbix le Asterisk ka ntle ho lebokose

Registry ea SIP

Bakeng sa ngoliso ea sip re sebelisa mefuta e meraro: mosebedisi, moamoheli, kepe boo. Ke ne ke thabetse lebitso la element [imeile e sirelelitsoe]: 5060, Ha ke so fumane maemo leha e le afe moo u hlokang ho sebelisa mefuta eohle e mehlano.

Ntho ea mantlha e amohelang tlhahisoleseling mabapi le ngoliso eohle, Asterisk - AMI SIPshowregistry. Hang ka motsotso e etsa kopo ea GET ho https://ats:8089/mxml?action=SIPshowregistry, ka mor'a moo data ea XML e fetisetsoang likarolong tsohle tse itšetlehileng ka eona bakeng sa ho arola. Bakeng sa ngoliso e 'ngoe le e' ngoe ke theha ntho e itšetlehileng ka eona. Sena se loketse hobane re fumana lintlha tsa morao-rao kopong e le 'ngoe, eseng bakeng sa kopo ka 'ngoe. Ts'ebetsong ena e na le tšitiso e kholo - mojaro ho processor.

Ha ke leka likarolo tse ka bang 100 tse itšetlehileng ka eona, ha kea ka ka hlokomela mojaro, empa ka likarolo tse 1700, sena se fane ka mojaro o hlokomelehang oa metsotsoana e 15 ho processor. Hopola sena haeba u na le palo e kholo ea lintho tse itšetlehileng ka tsona.

E le khetho ea ho "hasanya" mojaro kapa ho beha maqhubu a fapaneng a likhetho bakeng sa ntho, o ka tsamaisa mohopolo oa ts'ebetso ho ntho ka 'ngoe ka thoko.

Ha ke boloke lintlha tse fumanoeng karolong e ka sehloohong. Ntlha ea pele, ha ke bone tlhokahalo ea sena, 'me ea bobeli, haeba karabo e feta 64K, joale Zabbix e khaola.

Kaha re sebelisa karabelo e felletseng ea XML bakeng sa ntho e itšetlehileng ka eona, re hloka ho fumana boleng ba ntho ena ha re e lokisa esale pele. Ka XPath e entsoe tjena:
khoele(//response/generic[@event="RegistryEntry"][@username="{#SIP_REGISTRY_USERNAME}"][@host="{#SIP_REGISTRY_HOST}"][@port="{#SIP_REGISTRY_PORT}"]/@ naha)
Bakeng sa maemo a ngoliso, ha kea ka ka sebelisa li-status tsa mongolo, empa ke li fetoletse ka mokhoa oa linomoro ke sebelisa JavaScript:

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

SIP Lithaka

Ka papiso le ngoliso ea SIP, ho na le ntho e ka sehloohong ea Asterisk - AMI SIPshowregistry, eo ba itšetlehileng ka eona ba eketsoang.

Sena se theha lintlha tse peli tse itšetlehileng ka tsona:

  • Boemo ba lithaka ka mokhoa oa mongolo
  • Nako ea karabo ea sesebelisoa - haeba boemo bo lokile, nako ea karabo ea sesebelisoa e ngotsoe, ho seng joalo "-1"

Tsela e eang ho element ka boeona e bonolo haholoanyane XPath:

khoele(//response/generic[@objectname="{#SIP_PEER_OBEJECTNAME}"]/@boemo)

Bakeng sa karolo ea bobeli ke sebelisitse JavaScript ho arohana nako ea karabelo ho tsoa ho boemo ba lithaka, kaha li bolokiloe hammoho:

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

fihlela qeto e

Tharollo e ka ntle ho lebokose e ka ba e rarahaneng mme e sa hlake hang-hang. E eketsa ho tenyetseha le ho nkeha lipakeng tsa litsamaiso tse fapaneng

Khokahano e monate le e bonolo bohle! Template le litaelo tsa ho seta GitHub.

Source: www.habr.com

Eketsa ka tlhaloso