The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Разбор значений статистики по звонкам Cisco PGW2200 (cisco phone voip snmp statistic rrd)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: cisco, phone, voip, snmp, statistic, rrd,  (найти похожие документы)
From: frozer <d_frost(at)mail.ru> Date: Mon, 25 Jun 2006 14:31:37 +0000 (UTC) Subject: Разбор значений статистики по звонкам Cisco PGW2200 Оригинал: http://cyberos.narod.ru/work/pgw2200.html Нашел в /opt/CiscoMGC/snmp/measurement.my oid'ы описанные в Cisco Media Gateway Controller Software Release 9 Installation and Configuration Guide (странно, что их нет на сайте самой Cisco, например, здесь или здесь). Для нормальной работы еще необходимы SNMPv2-SMI.my (берется из указанных выше мест), tp.my и v3-tgt.my (берутся из поставки Cisco MGC). Хотя должно работать при наличии хотя бы SNMPv2-SMI. Весьма интересно было выдернуть статистику по звонкам :-), что в общем-то получилось. Привожу описание и OID для статистики по обработанным звонкам. Описание - OBJECT-TYPE - OBJECT-ID значения за 15 минут, - OBJECT-ID значения за 1 час - OBJECT-ID значения за 1 сутки "uptime" сбора статистики по звонкам tpCALLCollectTime .1.3.6.1.4.1.2496.1.1.3.17.1.2.65537.900 .1.3.6.1.4.1.2496.1.1.3.17.1.2.65537.3600 .1.3.6.1.4.1.2496.1.1.3.17.1.2.65537.86400 Кол-во звонков tpCALLSuccCallTOT .1.3.6.1.4.1.2496.1.1.3.17.1.3.65537.900 .1.3.6.1.4.1.2496.1.1.3.17.1.3.65537.3600 .1.3.6.1.4.1.2496.1.1.3.17.1.3.65537.86400 Общее кол-во сбойных звонков tpCALLFailCallTOT .1.3.6.1.4.1.2496.1.1.3.17.1.4.65537.900 .1.3.6.1.4.1.2496.1.1.3.17.1.4.65537.3600 .1.3.6.1.4.1.2496.1.1.3.17.1.4.65537.86400 Кол-во сбойных звонков по причине Resource-Unavailable tpCALLRuFailCallTOT .1.3.6.1.4.1.2496.1.1.3.17.1.5.65537.900 .1.3.6.1.4.1.2496.1.1.3.17.1.5.65537.3600 .1.3.6.1.4.1.2496.1.1.3.17.1.5.65537.86400 Кол-во сбойных звонков по другим причинам tpCALLORFailCallTOT .1.3.6.1.4.1.2496.1.1.3.17.1.6.65537.900 .1.3.6.1.4.1.2496.1.1.3.17.1.6.65537.3600 .1.3.6.1.4.1.2496.1.1.3.17.1.6.65537.86400 Кол-во сбойных звонков по причине перегрузки tpCALLOLFailCallTOT .1.3.6.1.4.1.2496.1.1.3.17.1.7.65537.900 .1.3.6.1.4.1.2496.1.1.3.17.1.7.65537.3600 .1.3.6.1.4.1.2496.1.1.3.17.1.7.65537.86400 Кол-во отклоненных звонков tpCALLRejCallTOT .1.3.6.1.4.1.2496.1.1.3.17.1.8.65537.900 .1.3.6.1.4.1.2496.1.1.3.17.1.8.65537.3600 .1.3.6.1.4.1.2496.1.1.3.17.1.8.65537.86400 Статистику храним в RRD-базе rrdtool create pgw_srv.rrd \ --start N --step 900 \ DS:cpu:GAUGE:1800:0:100 \ DS:memory_used:GAUGE:1800:0:262144 \ DS:var_used:GAUGE:1800:0:1016122 \ DS:ciscovar_used:GAUGE:1800:0:14003655 \ DS:ciscospool_used:GAUGE:1800:0:21005490 \ DS:tpCALLSuccCallTOT:GAUGE:1800:0:U \ DS:tpCALLFailCallTOT:GAUGE:1800:0:U \ DS:tpCALLRuFailCallTOT:GAUGE:1800:0:U \ DS:tpCALLORFailCallTOT:GAUGE:1800:0:U \ DS:tpCALLOLFailCallTOT:GAUGE:1800:0:U \ DS:tpCALLRejCallTOT:GAUGE:1800:0:U \ RRA:AVERAGE:0.5:1:600 \ RRA:AVERAGE:0.5:4:1000 \ RRA:AVERAGE:0.5:48:775 \ RRA:AVERAGE:0.5:96:797 \ RRA:MAX:0.5:1:600 \ RRA:MAX:0.5:4:1000 \ RRA:MAX:0.5:48:775 \ RRA:MAX:0.5:96:797 и выдергиваем соответственно (заодно берем загрузку CPU/RAM/HDD): #!/bin/sh # rrdupdate.sh ### pgwsrv (CPU/RAM/disk space) OUT=`/usr/local/bin/snmpget -v1 -Oqv -c <#COMMUNITY_NAME#> <#IP#> \ .1.3.6.1.2.1.25.3.3.1.2.1 .1.3.6.1.2.1.25.2.3.1.6.1 \ .1.3.6.1.2.1.25.2.3.1.6.5 .1.3.6.1.2.1.25.2.3.1.6.9 \ .1.3.6.1.2.1.25.2.3.1.6.10 \ .1.3.6.1.4.1.2496.1.1.3.17.1.3.65537.900 \ .1.3.6.1.4.1.2496.1.1.3.17.1.4.65537.900 \ .1.3.6.1.4.1.2496.1.1.3.17.1.5.65537.900 \ .1.3.6.1.4.1.2496.1.1.3.17.1.6.65537.900 \ .1.3.6.1.4.1.2496.1.1.3.17.1.7.65537.900 \ .1.3.6.1.4.1.2496.1.1.3.17.1.8.65537.900` FORM=`printf ":%d" $OUT` rrdupdate pgw_srv.rrd N$FORM генерируем красивые картинки: #!/bin/sh # vis.sh ... rrdtool graph calls-day.png \ --start -86400 \ --lower-limit 0 \ --vertical-label "Calls, counts" \ --title "Calls Processing" \ DEF:calls=pgw_srv.rrd:tpCALLSuccCallTOT:AVERAGE \ LINE1:calls#23FF23:"Calls processed:" \ GPRINT:calls:LAST:"%.0lf" \ > /dev/null rrdtool graph failedcalls-day.png \ --start -86400 \ --lower-limit 0 \ --vertical-label "Calls, counts" \ --title "Call Processing" \ DEF:FailCall=pgw_srv.rrd:tpCALLFailCallTOT:AVERAGE \ DEF:RuFailCall=pgw_srv.rrd:tpCALLRuFailCallTOT:AVERAGE \ DEF:ORFailCall=pgw_srv.rrd:tpCALLORFailCallTOT:AVERAGE \ DEF:OLFailCall=pgw_srv.rrd:tpCALLOLFailCallTOT:AVERAGE \ DEF:RejCall=pgw_srv.rrd:tpCALLRejCallTOT:AVERAGE \ LINE1:FailCall#FF0000:"Calls failed:" \ GPRINT:FailCall:LAST:"%.0lf" \ LINE1:RuFailCall#FF0000:"Resource-unavailable:" \ GPRINT:FailCall:LAST:"%.0lf" \ LINE1:ORFailCall#FF0000:"Other reasons:" \ GPRINT:ORFailCall:LAST:"%.0lf" \ LINE1:OLFailCall#FF0000:"Overloaded:" \ GPRINT:OLFailCall:LAST:"%.0lf" \ LINE1:RejCall#FF0000:"Rejected:" \ GPRINT:RejCall:LAST:"%.0lf" \ > /dev/null Для получения актуального значения звонков (активных в каждый момент времени) использовал костыли в виде shell-скриптов. Общий смысл такой: на MGC по cron'у запускается скрипт, запускает mml с подготовленным пакетным файлом, весь вывод направляется в /tmp/callstat, затем узел мониторинга также по cron'у, но с разбежкой в 1 минуту (относительно cron'а на MGC) wget'ом выдергивает /tmp/callstat и прогоняет через grep/awk с целью выдернуть значение "Current in progress calls = X", полученное X записывается в RRD базу.Дальше тривиально генерируем картинки, смешивая данные от SNMP и полученные разбором вывода mml.

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру