рдЬрд╝реИрдмрд┐рдХреНрд╕ рд▓реЛ-рд▓реЗрд╡рд▓ рдбрд┐рдЯреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдПрд╕реНрдЯрд░рд┐рд╕реНрдХ рдЪрдбреНрдбреА рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдирд╛

рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛



рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓, рдЬрд┐рд╕ рдХрдВрдкрдиреА рдХреЗ рд▓рд┐рдП рдореИрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ, рд╡рд╣ рдЖрдИрдкреА-рдЯреЗрд▓реАрдлреЛрдиреА рдореЗрдВ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рд▓рдЧреАред рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, FreePBX рд╡рд┐рддрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЯреЗрд▓реАрдлреЛрдиреА рдХреЗ рд╕рд╛рде рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреЛрдИ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП рдХрдИ рд╕рдорд╕реНрдпрд╛рдПрдВ рдереАрдВред рдХреБрд▓ рдореЗрдВ, рд╣рдо 2 FreePBX рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓рдЧрднрдЧ 30 рдЯреНрд░рдВрдХ рдкреНрд░рддреНрдпреЗрдХред рдХреБрдЫ рдЯреНрд░рдВрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХрднреА-рдХрднреА рдкрдВрдЬреАрдХрд░рдг рдЦреЛ рджреЗрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдЯреЗрд▓реАрдлреЛрдиреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрдВрдЬреАрдХрд░рдг рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред

рд╣рдо рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЬрд╝реИрдмрд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдИрдЯреА рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдЯреНрд░рдВрдХ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рддрддреНрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдпрд╛рдиреА, рд▓рдЧрднрдЧ 60) рдПрдХ рдЙрдмрд╛рдК, рдердХрд╛рдК, рдФрд░ рдирд┐рд░реНрдмрд╛рдз рдХрд╛рд░реНрдп рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдирд┐рдЧрд░рд╛рдиреА рдореЗрдВ рдЪрдбреНрдбреА рдХреА рд╕реВрдЪреА рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдирд┐рдЧрд░рд╛рдиреА рдкреНрд░рдгрд╛рд▓реА рдХреА рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдкрд╣рдЪрд╛рдиред рддреЛ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред



Zabbix рд╕рд░реНрд╡рд░ рд╕реЗрдЯрдЕрдк



Zabbix рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдирд╛


Zabbix рд╡реЗрдм рдкреИрдирд▓ рдореЗрдВ, рд╕реЗрдЯрд┐рдВрдЧреНрд╕-> рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкрд░ рдЬрд╛рдПрдВ, рдФрд░ рдПрдХ рдЦрд╛рд▓реА рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдПрдВред рдЪрд▓реЛ рдЗрд╕реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрд╕реНрдЯреЗрд░рд┐рд╕реНрдХ рдЪрдбреНрдбреА рдбрд┐рд╕реНрдХрд╡рд░реАред рд╣рдо рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ "рдбрд┐рдЯреЗрдХреНрд╢рди" рд╕реЗрдХреНрд╢рди рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВред рд╡рд╣рд╛рдБ рд╣рдо 2 рдЦреЛрдЬ рдирд┐рдпрдо рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдПрдХ asterisk.discovery [ips] рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рд╣реИ - рдпрд╣ рдЯреЗрд▓реАрдлреЛрдиреА рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЗ рдЖрдИрдкреА рдкрддреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░реЗрдЧрд╛, рджреВрд╕рд░рд╛ asterisk.discovery [рдЪрдбреНрдбреА] рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде - рдпрд╣ рдкрдВрдЬреАрдХрд░рдг рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░реЗрдЧрд╛ред рдЗрди рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдк рдЬреЛ рдЪрд╛рд╣реЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдореБрдЦреНрдп рдмрд╛рдд рдмрд┐рд▓реНрдЯ-рдЗрди рдЬрд╝реИрдмрд┐рдХреНрд╕ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдУрд╡рд░рд▓реИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИред



рдЫрд╡рд┐



рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдкрд┐рдВрдЧ рдбреЗрдЯрд╛ рддрддреНрд╡


рдкреНрд░рддреНрдпреЗрдХ рдЦреЛрдЬ рдирд┐рдпрдо рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рддрддреНрд╡реЛрдВ рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЯреНрд░рдВрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░реЗрдЧрд╛ред Asterisk.discovery [рдЪрдбреНрдбреА] рдирд┐рдпрдо рдХреЗ рд▓рд┐рдП, рд╣рдо asterisk.registry рдХреБрдВрдЬреА [{# TRUNKNAME}] рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдЖрдЗрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдХреБрдВрдЬреА рдирд╛рдо рдлрд┐рд░ рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рдЗрд╕рдХрд╛ рдкреИрд░рд╛рдореАрдЯрд░ #TRUNKNAME рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рддрд╕реНрд╡реАрд░ рдореЗрдВ рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИред



рдЫрд╡рд┐



Asterisk.discovery [ips] рдирд┐рдпрдо рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдореИрдХреНрд░реЛ {#TRUNKIP} рдХреЗ рд╕рд╛рде рд╣реЛрд╕реНрдЯ рдирд╛рдо рдХреА рдЬрдЧрд╣, рдорд╛рдирдХ рдкрд┐рдВрдЧ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рдбреЗрдЯрд╛ рддрддреНрд╡реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рддрд╕реНрд╡реАрд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рд╕рд╛рдл рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИред



рдЫрд╡рд┐



рдпрд╣ рдХреЗрд╡рд▓ рд╡рд╛рдВрдЫрд┐рдд рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред рдЗрд╕ рдкрд░, рдЬрд╝реИрдмрд┐рдХреНрд╕ рдлрд┐рдирд┐рд╢ рдХреЗ рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рдеред



Asterisk рд╕рд░реНрд╡рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ



рд╕реНрдХреНрд░рд┐рдкреНрдЯ / usr / рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдБред рд╣рдо рдЯреНрд░рдВрдХ trunk_disc.php рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЯреНрд░рдВрдХ reg_mon.php рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рд╣рд╛рдБ, рд╡реЗ php рдореЗрдВ рд╣реИрдВ, рдФрд░ рд╡реЗ рдХреБрдЯрд┐рд▓ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЬрд▓реНрджрдмрд╛рдЬреА рдореЗрдВ рд╕реНрдХреНрд░рд┐рдмрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╡реЗ рд╣рд╛рде рдирд╣реАрдВ рдЦрддреНрдо рдХрд░рддреЗ рд╣реИрдВ)ред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЦреБрдж:

рд╕реНрдХреНрд░рд┐рдкреНрдЯ trunk_disc.php
#!/usr/bin/php <?php error_reporting(1); exec("sudo asterisk -rx 'sip show registry'", $tr_list); foreach($tr_list as $line) { $ar_line = null; $ar_line[] = trim(substr($line, 0, 40)); $ar_line[] = trim(substr($line, 47, 19)); $ar_line = array_diff($ar_line, array('')); $ar_line = array_combine(array(0,1), $ar_line); $trunks[] = $ar_line['1']; $ip = explode(":", $ar_line['0']); if (!in_array($ip['0'], $ips)) { $ips[] = $ip['0']; } } $trunks[0] = ''; $ips[0] = ''; $trunks = array_diff($trunks, array('')); $ips = array_diff($ips, array('')); function getJson($items, $name) { $first = 1; print "{\n"; print "\t\"data\":[\n\n"; foreach ($items as $item) { if (!$first) { print "\t,\n" ; $first = 0; } print "\t{\n"; print "\t\t\"{#$name}\":\"$item\"\n"; print "\t},\n"; } print "\n\t]\n"; print "}\n"; } if ($argv[1] == 'trunks') { getJson($trunks, "TRUNKNAME"); } elseif ($argv[1] == 'ips') { getJson($ips, "TRUNKIP"); } else { print "error"; }
      
      







рд╕реНрдХреНрд░рд┐рдкреНрдЯ reg_mon.php
 #!/usr/bin/php <?php error_reporting(0); $find = "*".$argv[1]."*"; exec("sudo asterisk -rx 'sip show registry'", $tr_list); $filter = preg_grep($find, $tr_list); foreach($filter as $line) { if (preg_match("*Registered*", $line) & preg_match($find, $line)) { exit('1'); } else { exit('0'); } } exit('0')
      
      







Zabbix рдПрдЬреЗрдВрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдЬреЛрдбрд╝реЗрдВ:



 UserParameter=asterisk.registry[*],/usr/scripts/reg_mon.php $1 UserParameter=asterisk.discovery[*], /usr/scripts/trunk_disc.php $1
      
      





рдФрд░ Zabbixa рдПрдЬреЗрдВрдЯ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВред



рдирд┐рд░реАрдХреНрд╖рдг



рдСрдкрд░реЗрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд╝реИрдмрд┐рдХреНрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рдХрдВрд╕реЛрд▓ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВред рдЯреАрдо рдЪрд▓рд╛рдПрдВ
 zabbix_get -s -k asterisk.discovery[trunks] 
      



{ "data":[ { "{#TRUNKNAME}":"trunk1" }, { "{#TRUNKNAME}":"trunk2" }, { "{#TRUNKNAME}":"trunk3" }, { "{#TRUNKNAME}":"trunk4" }, { "{#TRUNKNAME}":"trunk5" }, { "{#TRUNKNAME}":"trunk5" }, ...






trunk1,trunk2 .. zabbix_get -s -k asterisk.discovery[ips]

:

{ "data":[ { "{#TRUNKIP}":"213.141.252.17" }, { "{#TRUNKIP}":"188.187.255.6" }, { "{#TRUNKIP}":"sip.pctel.ru" }, ...






. , zabbix_get -s -k asterisk.registry[trunk1] 1, 0. , . - Zabbix .





, . , , .. Zabbix . , , . .












zabbix_get -s -k asterisk.discovery[trunks]



{ "data":[ { "{#TRUNKNAME}":"trunk1" }, { "{#TRUNKNAME}":"trunk2" }, { "{#TRUNKNAME}":"trunk3" }, { "{#TRUNKNAME}":"trunk4" }, { "{#TRUNKNAME}":"trunk5" }, { "{#TRUNKNAME}":"trunk5" }, ...






trunk1,trunk2 .. zabbix_get -s -k asterisk.discovery[ips]

:

{ "data":[ { "{#TRUNKIP}":"213.141.252.17" }, { "{#TRUNKIP}":"188.187.255.6" }, { "{#TRUNKIP}":"sip.pctel.ru" }, ...






. , zabbix_get -s -k asterisk.registry[trunk1] 1, 0. , . - Zabbix .





, . , , .. Zabbix . , , . .












 zabbix_get -s -k asterisk.discovery[trunks] 
      



{ "data":[ { "{#TRUNKNAME}":"trunk1" }, { "{#TRUNKNAME}":"trunk2" }, { "{#TRUNKNAME}":"trunk3" }, { "{#TRUNKNAME}":"trunk4" }, { "{#TRUNKNAME}":"trunk5" }, { "{#TRUNKNAME}":"trunk5" }, ...






trunk1,trunk2 .. zabbix_get -s -k asterisk.discovery[ips]

:

{ "data":[ { "{#TRUNKIP}":"213.141.252.17" }, { "{#TRUNKIP}":"188.187.255.6" }, { "{#TRUNKIP}":"sip.pctel.ru" }, ...






. , zabbix_get -s -k asterisk.registry[trunk1] 1, 0. , . - Zabbix .





, . , , .. Zabbix . , , . .












zabbix_get -s -k asterisk.discovery[trunks]



{ "data":[ { "{#TRUNKNAME}":"trunk1" }, { "{#TRUNKNAME}":"trunk2" }, { "{#TRUNKNAME}":"trunk3" }, { "{#TRUNKNAME}":"trunk4" }, { "{#TRUNKNAME}":"trunk5" }, { "{#TRUNKNAME}":"trunk5" }, ...






trunk1,trunk2 .. zabbix_get -s -k asterisk.discovery[ips]

:

{ "data":[ { "{#TRUNKIP}":"213.141.252.17" }, { "{#TRUNKIP}":"188.187.255.6" }, { "{#TRUNKIP}":"sip.pctel.ru" }, ...






. , zabbix_get -s -k asterisk.registry[trunk1] 1, 0. , . - Zabbix .





, . , , .. Zabbix . , , . .












zabbix_get -s -k asterisk.discovery[trunks]



{ "data":[ { "{#TRUNKNAME}":"trunk1" }, { "{#TRUNKNAME}":"trunk2" }, { "{#TRUNKNAME}":"trunk3" }, { "{#TRUNKNAME}":"trunk4" }, { "{#TRUNKNAME}":"trunk5" }, { "{#TRUNKNAME}":"trunk5" }, ...






trunk1,trunk2 .. zabbix_get -s -k asterisk.discovery[ips]

:

{ "data":[ { "{#TRUNKIP}":"213.141.252.17" }, { "{#TRUNKIP}":"188.187.255.6" }, { "{#TRUNKIP}":"sip.pctel.ru" }, ...






. , zabbix_get -s -k asterisk.registry[trunk1] 1, 0. , . - Zabbix .





, . , , .. Zabbix . , , . .












zabbix_get -s -k asterisk.discovery[trunks]



{ "data":[ { "{#TRUNKNAME}":"trunk1" }, { "{#TRUNKNAME}":"trunk2" }, { "{#TRUNKNAME}":"trunk3" }, { "{#TRUNKNAME}":"trunk4" }, { "{#TRUNKNAME}":"trunk5" }, { "{#TRUNKNAME}":"trunk5" }, ...






trunk1,trunk2 .. zabbix_get -s -k asterisk.discovery[ips]

:

{ "data":[ { "{#TRUNKIP}":"213.141.252.17" }, { "{#TRUNKIP}":"188.187.255.6" }, { "{#TRUNKIP}":"sip.pctel.ru" }, ...






. , zabbix_get -s -k asterisk.registry[trunk1] 1, 0. , . - Zabbix .





, . , , .. Zabbix . , , . .















All Articles