Перейти к содержимому
Калькуляторы

Как считать подписчиков ?

Есть сеть с трансляцией IP-TV. Сеть состоит из 2950 и 3550. Как посчитать сколько какой канал (multicast группу) смотрит ? Можно конечно обходить все cisco и смотреть на каждой, но мне кажется это не самый лучший вариант.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вообще CAS с обратной связью может помочь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Никак, до тех пор пока stb и телевизор не станут единым устройством. Часто вылкючают телевизор, при этом не выключают srt -> поток идёт, результаты становятся неадекватными.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Никак, до тех пор пока stb и телевизор не станут единым устройством. Часто вылкючают телевизор, при этом не выключают srt -> поток идёт, результаты становятся неадекватными.

Я например уже принципиально не выключаю STB, более того STB бывают живут своей жизнью (Dlink даже после выключения запрашивает мультикаст, Synet выключается, и включается снова, MAG это вообще тормоз #1 никогда не понятно уже выключился, или еще собирается).

 

Но по факту самый эффективный способ обход по SNMP коммутаторов доступа, мы так делаем, процесс не слишком длительный и достаточно точный в пределах вышеназванных обстоятельств.

Ну а CASом с обратной связью снимать статистику может только "интегратор" рассчитывающий попилить деньги сударей с "Нижнего Тагила/Норильска".

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не понял в чем проблема CAS-а с обратной связью? Раз ключи запрашиваются, значит поток идет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Но по факту самый эффективный способ обход по SNMP коммутаторов доступа, мы так делаем,

Подскажите нужный OID

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Графики строит munin

]# cat tvsub
#!/bin/bash
if [ "$1" = "config" ]; then
echo 'graph_title  IPTV Subscribers Znamensk TV'
echo 'graph_args --base 1000 -l 0'
echo 'graph_vlabel users'
echo 'graph_category network'
echo 'graph_scale yes'
echo "subtv.label Subscribers All city"
echo "subtv.draw AREA"
echo "subtv.min 0"
echo "subtvz.label Subscribers in Ahxxx"
echo "subtvz.draw LINE2"
echo "subtvz.min 0"
echo "subtva.label Subscribers in Znxxx"
echo "subtva.draw LINE2"
echo "subtva.min 0"
exit 0
fi

echo -n "subtv.value "
echo `cat /var/log/stat.igmp|cut -f18-21 -d.|cut -f1 -d =|grep 10.|sort|uniq|wc -l`
echo -n "subtvz.value "
echo `cat /var/log/stat.igmp|cut -f18-21 -d.|cut -f1 -d =|grep 10.8.|sort|uniq|wc -l`
echo -n "subtva.value "
echo `cat /var/log/stat.igmp|cut -f18-21 -d.|cut -f1 -d =|grep 10.7.|sort|uniq|wc -l`

в кроне :

 

0,15,30,45 * * * * cigmp

 

сам скрипт:

 

cat cigmp
#! /bin/bash
#dkink.sh

check_sw_name ()
{
desc=$(snmpgetnext -v 2c  -c public 10.7.64.$i  system|cut -f4 -d:|cut -c 2-7)
check_sw_model $desc
}

check_sw_model ()
{
case $1 in
'ES-210' ) ;;#zyxel $i;;
'D-Link' ) check_swd_mod $i;;
'DGS-31' ) ;;#24tg $i;;
'PLANET' ) ;;#planet $i;;
esac

}

check_swd_mod ()
{
# уточняем модели коммутатора из серии 3200
desc_d=$(snmpgetnext -v 2c  -c public 10.7.64.$1  system|cut -f4 -d:|cut -c 9-19)
sel_dl_conf $desc_d
}
sel_dl_conf ()
{
case $1 in
DES-3200-10 )dl_10_cfg;;
DES-3200-18 )dl_18_cfg;;
DES-3200-26 )dl_26_cfg;;
esac
#exit 0
}

dl_10_cfg ()

{
#echo '10.7.64.'$i
cm=$(snmpwalk -v 2c -c xyz 10.7.64.$i 1.3.6.1.4.1.171.11.113.1.1.2.7.13.1.4|cut -f2 -d=|cut -c 2-2)
cm=$(echo $cm|cut -c 1-1)
case $cm in
I ) snmpwalk -v 2c -c xyz 10.7.64.$i 1.3.6.1.4.1.171.11.113.1.1.2.7.13.1.4;;
esac
#exit 0
}
dl_18_cfg ()
{
#echo '10.7.64.'$i
cm=$(snmpwalk -v 2c -c xyz 10.7.64.$i 1.3.6.1.4.1.171.11.113.1.2.2.7.13.1.4|cut -f2 -d=|cut -c 2-2)
cm=$(echo $cm|cut -c 1-1)
case $cm in
I ) snmpwalk -v 2c -c zyz 10.7.64.$i 1.3.6.1.4.1.171.11.113.1.2.2.7.13.1.4;;
esac
}

dl_26_cfg ()
{
#echo '10.7.64.'$i
cm=$(snmpwalk -v 2c -c xyz 10.7.64.$i 1.3.6.1.4.1.171.11.113.1.5.2.7.13.1.4|cut -f2 -d=|cut -c 2-2)
cm=$(echo $cm|cut -c 1-1)
case $cm in
I ) snmpwalk -v 2c -c xyz 10.7.64.$i 1.3.6.1.4.1.171.11.113.1.5.2.7.13.1.4;;
esac
}



for i in $(seq 6 161)
do
dup=$(ping -c 1 10.7.64.$i|grep transmitted|cut -f2 -d,|cut -c 2-2)
echo '10.7.64.'$i
case $i in
41 ) continue;;
42 ) continue;;
43 ) continue;;
143 ) continue;;
159 ) continue;;
esac

case $dup  in
1 ) check_sw_name;;

0 ) ;;#echo 'host 10.7.64.'$i' - down';;
esac
done
#rm -f /var/log/stat.igmp
#cp  /var/log/stat.tmp /var/log/stat.igmp
exit 0


Изменено пользователем garycat

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.