Otu esi ejikọta Zabbix na akara mmuke n'ime igbe

N'isiokwu gara aga "Zabbix - oke oke na-agbasawanye" Agwara m gị otu ị ga-esi nweta nnọkọ ikike wee dochie ya ka ọ bụrụ nnukwu nnukwu nnabata mpaghara. N'isiokwu a, m ga-agwa gị otu esi ejikọta Zabbix na akara mmuke na-enweghị edemede na ngwanrọ mpụga.

Echiche nke "imeta enyi" nke usoro abụọ a bụ ogologo oge gara aga, na-enweghị wụnye software ma ọ bụ edemede ọzọ. Ngwa ngwa ngwa na-emepụta ọtụtụ ihe ngwọta nwere ike ime, ihe niile gbadara n'eziokwu na bulite scripts (na Pyha, Bash, Python, wdg) na ihe nkesa, ị ga-enwekwa obi ụtọ. Achọrọ m imejuputa nleba anya "site na igbe" - na-enweghị ihe odide mpụga na ịwụnye ngwanrọ ọzọ na ihe nkesa na nlekota na PBX.

Ejiri m ngụkọta nke ụbọchị ọrụ 4 na nke a, mana nsonaazụ ya bara uru. Na-arụ ọrụ site na interface AMI, nchọpụta dị ala, ndị na-akpali akpali, na nke kachasị mkpa, ijikọ PBX na ntọala ndị ọzọ niile na-ewe ihe dịka 15 nkeji.

Zabbix 4.4 dị, ihe dị ka 100 iberibe ụdị akara mmuke 13. Ụfọdụ PBX na-abịa na FreePBX web interface, ụfọdụ nwere ihe njikwa efu, ụyọkọ aghụghọ na ntinye site na dialplan.

Ịnata data sitere na PBX

Ihe mbụ na isi ihe dị mkpa ka a dozie bụ ịnweta data gbasara ndị ọgbọ na ndebanye aha SIP. Maka ebumnuche a, PBX nwere AGI, AMI, ARI na SSH console interfaces. Maka ihe doro anya, echeghị m modul ndị ọzọ.

Mbụ anyị kwesịrị ịchọpụta ihe agi, ami, ari bụ...

  • AGI - iji scripts na dialplan. A na-eji ya maka njikwa oku.
  • AMI - nwere ike ịnye ozi niile dị mkpa, na-arụ ọrụ site na ọdụ ụgbọ mmiri 5038, dị ka Telnet. dabara anyị!
  • ARI - oge a, ejiji, JSON. Enwere ọtụtụ ohere, usoro data bụ ihe kwere nghọta maka Zabbix, mana maka m enweghị isi ihe: ị nweghị ike ijikwa ndebanye aha sip. Ihe ọghọm ọzọ bụ na maka ndị ọgbọ enwere naanị steeti abụọ n'ịntanetị / na-anọghị n'ịntanetị, ọ bụ ezie na enwere ọtụtụ steeti ma ọ bara uru iburu ha n'uche mgbe ị na-achọpụta ya.
  • SSH nwere ike ime ihe niile, ma mgbe ụfọdụ a naghị ekwe ya n'ihi "ihe nchekwa". Echiche nwere ike ịdị iche, agaghị m abanye n'ime ha.

Agbanyeghị, na adịghị ike ya niile, ARI na-ekpuchi 90% nke mkpa nlekota niile.

Zabbix na Telnet - ndakpọ olileanya m

Amaara m AMI nke ọma; n'otu oge etinyere m nsuso mfu na mkparịta ụka na nkewa nke ụlọ ọrụ dịpụrụ adịpụ, njikwa oku, wdg. Na Telnet, ihe niile doro anya: mepee njikọ, zipu iwu ma gụọ nzaghachi. Nke ahụ bụ ihe m mere, ma ihe si na ya pụta wutere m.

Telnet na Zabbix abụghị otu dị na njikwa Linux, ọ dị ntakịrị mfe ma ahaziri maka ikike ọkọlọtọ dị ka nbanye / paswọọdụ. Ọ bụrụ na mgbagha ikike dị iche, na enweghị arịrịọ maka ụzọ nbanye/paswọọdụ, njehie na-apụta. Mgbe mbọ na-abaghị uru ịgafe ikike ikike, ọ bara uru ilele koodu isi mmalite nke Telnet modul.

Achọpụtara m na ruo mgbe enwere arịrịọ nbanye na paswọọdụ ọdịnala, agaghị m aga n'ihu. Naanị maka ọchị, ewepụrụ m ihe niile metụtara ikike na koodu ahụ wee chịkọta ihe niile. Na-arụ ọrụ! Mana ọ naghị emezu ihe achọrọ. Gaba n'ihu…

Ka anyị laghachi na nchọ

Agụgharịrị m akwụkwọ ARI ọzọ, gbakwara ule ọzọ - enweghị ndebanye aha sip ebe a. Enwere oriri, enwere mkparịta ụka, enwere breeches, mana enweghị ndebanye aha. N'oge ụfọdụ, echere m, ànyị chọrọ n'ezie ndebanye aha udele?

Site na ndaba na-atọ ọchị, n'oge a arịrịọ ọzọ na-abịa site n'aka onye ọrụ, yana nsogbu na oku ọpụpụ. Nsogbu bụ na ndebanye aha sip na-ajụ oyi ma dozie ya site na ịmalitegharị modul ahụ.

asterisk -rx "sip reload"

Ọ ga-adị mma ịnweta AMI na webụ: nke ahụ ga-edozi nsogbu niile, echere m. M na-amalite igwu ala n'akụkụ a, na n'ụzọ nkịtị akara ọchụchọ mbụ na-eduga na akwụkwọ akara akara ngosi, nke na-ekwu na enwere nhọrọ maka ọrụ m. webenabled na faịlụ /etc/asterisk/manager.conf, nke kwesịrị ka edobe EE, na ngalaba [General]

Mgbe nke a gasịrị, site na arịrịọ weebụ mgbe niile nke ụdị http://ats:8089/mxml?action=SIPshowregistry anyị na-enweta ozi niile dị mkpa.

Mgbe ị na-eji interface FreePBX, ịnweghị ike ịme nhọrọ a site na webụ; ịkwesịrị ịme ya site na njikwa site na ime mgbanwe na faili manager.conf. FreePBX anaghị ehichapụ ya mgbe a na-eme mgbanwe nhazi site na webụ.

M na-arụ ọrụ na ụdị dị iche iche nke akara mmuke integrations ruo ogologo oge, ma ahụtụbeghị m atụmatụ a kpọtụrụ aha ebe ọ bụla. Ọ tụrụ m n'anya na ọ nweghị onye na-akọwa usoro a nke imekọrịta ihe na PBX. Ọ bara uru ọbụna ịchọ ozi gbasara isiokwu a: ọ nweghị ihe ọ bụla ma ọ bụ jiri ya rụọ ọrụ dị iche iche.

WEB AMI - kedu ụdị anụ ọhịa?

Na-agbakwụnye nhọrọ webenabled ịgba akwụkwọ njikwa.conf nyere ohere zuru oke na njikwa ATS site na webụ. Iwu niile dị site na AMI oge niile dị ugbu a na webụ, ị nwere ike gee ihe omume sitere na PBX site na oghere. Ụkpụrụ nke ọrụ adịghị iche na console AMI. Mgbe ịmechara nhọrọ a, ị nwere ike ịkpọtụrụ PBX na adreesị ndị a:

https://ats:8089/manager - ibe weebụ nwere interface dị mfe maka ịnwale na iji aka na-eziga arịrịọ. A na-ahazi nzaghachi niile ka ọ bụrụ HTML enwere ike ịgụ. Ọ bụghị nnọọ adaba maka nlekota oru.
https://ats:8089/rawman - mmepụta naanị, usoro yiri console AMI
https://ats:8089/mxml - mmepụta naanị, n'ụdị XML. dabara anyị!

Otu esi ejikọta Zabbix na akara mmuke n'ime igbe

Mgbe ahụ, m chere, sị: “Nke a bụ ngwọta ya! Ugbu a ihe niile ga-adị njikere! lemon squeezey dị mfe, mana ọ bụ n'oge ka ọ ṅụrịa ọṅụ. Iji nweta ozi anyị chọrọ, ọ ga-ezuru iji arịrịọ GET na ihe dị mkpa edinam, nke na nzaghachi weghachiri xml na ndepụta ndebanye aha niile na ọkwa ha. Ihe a niile dị mma, mana ịchọrọ ikike icheta nnọkọ si kuki. Mgbe ị na-anwale na ihe nchọgharị ahụ, ị ​​naghị eche maka usoro a.

Usoro ikike

Nke mbụ anyị na-agwa adreesị http://ats:8089/mxml?action=login&username=zabbix&secret=zabbix, na nzaghachi, ihe nkesa na-ezitere anyị kuki nwere oge ikike. Nke a bụ arịrịọ HTTP dị ka:

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

Azịza:

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>

Iji rụọ ọrụ ebe ahụ ịchọrọ mansession_id="6f5de42c", ya bụ kuki ikike n'onwe ya.
Ọdịnaya ị ga-achọ ịlele azịza yaanabatara nkwenye" Na-esote, maka oku niile na sava PBX, anyị ga-achọ itinye kuki ikike na arịrịọ ahụ.

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

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

Gụọ ka esi enweta kuki ikike wee jiri ya na arịrịọ ndị ọzọ ebe a: "Zabbix - oke oke na-agbasa»

Iji mepụta ihe nsochi na Zabbix, m ga-eji nchọpụta akpaaka.

Nchọpụta akpaaka

Iji chọpụta ndebanye aha na-akpaghị aka na soro steeti ndị ọgbọ, ị ga-akpọtụrụ adreesị a: https://ats:8089/mxml?action=SIPshowregistry ma ọ bụ https://ats:8089/mxml?action=SIPpeers

Na nzaghachi, PBX weghachiri anyị nzaghachi 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>

Enwere ọtụtụ ihe mkpofu na nzaghachi, yabụ na nhazi nhazi anyị na-enyocha ya site na ndebiri XPath: // nzaghachi/generic[@host]
Mgbe ahụ ihe ọchị na-amalite. Iji rụọ ọrụ na nchọpụta na ịmepụta ihe n'ike n'ike, nzaghachi ga-abụrịrị n'ụdị JSON. Anaghị akwado XML maka nchọpụta akpaaka.

Iji tọghata XML ka ọ bụrụ JSON, ekwesịrị m iji dochie anya akpaaka, nke m mere ederede na JS.

Otu esi ejikọta Zabbix na akara mmuke n'ime igbe

Isi ihe na-adọrọ mmasị: na nzaghachi ATS, akụkụ niile gbara ya gburugburu site na otu nkwuputa, na mgbe etinyere template ahụ // nzaghachi/generic[@host] a na-eji nke abụọ dochie ha.

Iji mepụta ihe, anyị na-eji mgbanwe sitere na nzaghachi XML (ugbu a JSON).

Otu esi ejikọta Zabbix na akara mmuke n'ime igbe

Ndekọ SIP

Maka ndebanye aha sip anyị na-eji mgbanwe atọ: aha njirimara, usu, n'ọdụ ụgbọ mmiri. Enwere m obi ụtọ na aha mmewere [email protected]: 5060, Achọghị m ọnọdụ ọ bụla ebe ịkwesịrị iji mgbanwe ise niile.

Isi ihe na-enweta ozi gbasara ndebanye aha niile, akara mmuke - AMI SIP ndebanye aha. Otu ugboro n'otu nkeji ọ na-arịọ arịrịọ GET https://ats:8089/mxml?action=SIPshowregistry, mgbe nke ahụ gasịrị, a na-ebufe data XML nzaghachi na ihe niile dabere maka ịkọwapụta. Maka ndebanye aha ọ bụla m na-emepụta ihe dabere na ya. Nke a dị mma n'ihi na anyị na-enweta ozi ọhụụ n'otu arịrịọ, ọ bụghị maka arịrịọ ọ bụla iche. Mmejuputa atumatu a nwere nnukwu ihe ndọghachi azụ - ibu na processor.

Mgbe ị na-anwale ihe ruru 100 dabere, ahụghị m ibu ahụ, mana na ihe 1700, nke a nyere ihe ngosi 15 nke abụọ na-ahụ maka ihe nrụpụta. Buru nke a n'uche ma ọ bụrụ na ị nwere ọnụ ọgụgụ buru ibu nke ihe dabere.

Dị ka nhọrọ iji "gbasaa" ibu ma ọ bụ tọọ ụda ntuli aka dị iche iche maka mmewere, ị nwere ike ibugharị usoro nhazi ahụ na ihe ọ bụla iche iche.

Anaghị m echekwa ozi enwetara na isi ihe. Nke mbụ, ahụghị m mkpa nke a dị, na nke abụọ, ọ bụrụ na nzaghachi ahụ karịrị 64K, mgbe ahụ Zabbix na-ebipụ ya.

Ebe anyị na-eji nzaghachi XML zuru ezu maka mmewere dabere, anyị kwesịrị ịnweta uru nke ihe a na nhazi. Site na XPath ọ mere dị ka nke a:
eriri (// nzaghachi/generic[@event="RegistryEntry"][@username="{#SIP_REGISTRY_USERNAME}"][@host="{#SIP_REGISTRY_HOST}"][@port="{#SIP_REGISTRY_PORT}"]/@ steeti)
Maka ọkwa ndebanye aha, ejighị m ọnọdụ ederede, mana tụgharịrị ha n'ụdị ọnụọgụ site na iji Javascript:

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

Ndị ọgbọ SIP

Site na ntụnyere na ndebanye aha SIP, enwere isi ihe nke akara mmuke - AMI SIPshoregistry, nke etinyere ndị dabere na ya.

Nke a na-emepụta ihe abụọ dabere:

  • Ọkwa ndị ọgbọ n'ụdị ederede
  • Oge nzaghachi ngwaọrụ - ọ bụrụ na ọkwa ahụ dị mma, mgbe ahụ edere oge nzaghachi ngwaọrụ, ma ọ bụghị "-1"

Ụzọ nke mmewere n'onwe ya dị ntakịrị mfe XPath:

eriri (// nzaghachi/generic[@objectname = "{#SIP_PEER_OBEJECTNAME}"]/@status)

Maka mmewere nke abụọ, ejiri m Javascript kewapụ oge nzaghachi site na ọkwa ndị ọgbọ, ebe ọ bụ na a na-echekwa ha ọnụ:

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

nkwubi

Ihe ngwọta na-apụ apụ nwere ike ịdị mgbagwoju anya ma ọ bụghị ozugbo. Na-abawanye mgbanwe na mbugharị n'etiti sistemu dị iche iche

Obi ụtọ na mfe mwekota onye ọ bụla! Template na ntuziaka maka ịtọlite GitHub.

isi: www.habr.com

Tinye a comment