peektoseen Опубликовано 31 мая, 2012 · Жалоба Привет. Есть какие-нибудь идеи по мониторингу наличия каналов IPTV (multicast потоки)? Хочу к nagios'у прикрутить. Может VLC может как-то запускать поток и если потока нет - говорить об этом? Каналов ~80. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 31 мая, 2012 · Жалоба как-то запускать можно даже iperf Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alexmern Опубликовано 31 мая, 2012 · Жалоба http://www.netup.tv/ru-RU/iptvprobe.php Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
peektoseen Опубликовано 31 мая, 2012 · Жалоба http://www.netup.tv/...U/iptvprobe.php Попробую посмотреть, но мне кажется, что оно умеет только графики рисовать, забирая данные по SNMP. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vurd Опубликовано 31 мая, 2012 · Жалоба http://habrahabr.ru/post/66351/ Здесь есть некоторые наработки. Плюс вот кусок на php. Ловит кодированные, не идушие каналы. $channel = "udp://@230.0.0.1:1234"; //Формируем имя файла $group = explode("@",$channel); $group = explode('.',str_replace(':','.',$group[1])); $filepath = "/tmp/{$group[0]}-{$group[1]}-{$group[2]}-{$group[3]}-{$group[4]}.avi"; //Записываем поток в файл exec("cvlc $channel --daemon --sout '#standard{access=file,dst=\"$filepath\",mux=ts}' &> /dev/null"); sleep(20); //за 20 секунд точно должна произойти подписка exec("killall -9 vlc"); if (filesize($filepath) > 100) { //Канал работает echo "[DEBUG] Проверка для канала {$group[0]}.{$group[1]}.{$group[2]}.{$group[3]}:{$group[4]} успешна.\n"; } else { //Канал не работает echo "[DEBUG] Проверка для канала {$group[0]}.{$group[1]}.{$group[2]}.{$group[3]}:{$group[4]} обнаружила отутсвие вещания.\n"; } exec("rm -f $filepath"); Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
agr Опубликовано 31 мая, 2012 · Жалоба http://www.netup.tv/...U/iptvprobe.php Попробую посмотреть, но мне кажется, что оно умеет только графики рисовать, забирая данные по SNMP. Оно не по SNMP работает. Оно само принимает поток, анализирует и складывает статистику в мускульную базу. Вы можете написать плагин к нагиосу, который обращается к базе и исходя из полученной инфы выдает алерты. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ilya Evseev Опубликовано 2 июня, 2012 · Жалоба Может VLC может как-то запускать поток и если потока нет - говорить об этом? Я бы запускал VLC секунд на 30 и через tcpdump проверял, идёт ли к нему мультикастовый udp-поток. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Magnum72 Опубликовано 2 июня, 2012 · Жалоба У меня клиентское приложение обучено сообщать о невозможности открыть поток. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 2 июня, 2012 · Жалоба Я бы запускал VLC секунд на 30 и через tcpdump проверял, идёт ли к нему мультикастовый udp-поток. Для подписки на мультикаст можно и на перле скрипт накатать строчек на 50, не больше. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
-Ars- Опубликовано 2 июня, 2012 · Жалоба Подписываться на мультикаст можно и iperf- ом, тогда еще проще ;-) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vurd Опубликовано 3 июня, 2012 · Жалоба Интересно как вы посмотрите идет ли сама картинка, работает ли cam... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
-Ars- Опубликовано 3 июня, 2012 · Жалоба Интересно как вы посмотрите идет ли сама картинка, работает ли cam... Нету в техзадании :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
agr Опубликовано 3 июня, 2012 · Жалоба я подписываюсь на группы простеньким скриптом #!/usr/bin/perl -w use strict; use IO::Socket::Multicast; if($#ARGV<1){ print "Usage: igmp_join <ifname> <group ip>\n"; exit 1; } my $mcast_address=$ARGV[1]; #"239.32.1.67"; my $mcast_port=1100; my $mcast_interface=$ARGV[0]; #"eth1.81"; my $mcast_ttl=10; my $s = IO::Socket::Multicast->new(PeerDest=>$mcast_address, PeerPort=>$mcast_port); $s->mcast_if($mcast_interface); $s->mcast_add($mcast_address,$mcast_interface); #$s->mcast_ttl($mcast_ttl); <STDIN>; exit 2; Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ilya Evseev Опубликовано 3 июня, 2012 · Жалоба я подписываюсь на группы простеньким скриптом #!/usr/bin/perl -w use strict; use IO::Socket::Multicast; if($#ARGV<1){ print "Usage: igmp_join <ifname> <group ip>\n"; exit 1; } Его можно сделать ещё проще, если написать die "Usage: ..." if @ARGV != 2; Кроме того, не очень понятно, как себя поведет <STDIN> на двоичном потоке или если потока нет вообще. Не правильнее ли использовать IO::Select? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
agr Опубликовано 3 июня, 2012 · Жалоба Его можно сделать ещё проще, если написать die "Usage: ..." if @ARGV != 2; это дело вкуса, лень сейчас искать ту аббревиатуру про перл, которая говорит, что одно и тоже можно сделать разными способами Кроме того, не очень понятно, как себя поведет <STDIN> на двоичном потоке или если потока нет вообще. Не правильнее ли использовать IO::Select? не понял о чем вы ? <stdin> там стоит, чтобы скрипт прерывался после нажатия Enter. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ilya Evseev Опубликовано 3 июня, 2012 · Жалоба не понял о чем вы ? <stdin> там стоит, чтобы скрипт прерывался после нажатия Enter. Это я стормозил. Лето, авитаминоз. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pchol Опубликовано 11 июня, 2012 · Жалоба А для мониторинга состояния есть еще такая штука Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...