Мониторинг качества мультикаст MPEG TS
- Мониторинг битрейта, признаков скремблирования, TEI
- Мониторинг целостности потока на основе сontinuity counter
- Зонд для распределенного мониторинга
- Циклический контроль потоков для зондов с недостаточной производительностью
- SNMP агент (MIB):
- счетчики суммарного трафика, ошибок СС
- количество каналов всего и сбойных
- отправка trap при изменении статуса канала
- счетчик трафика, ошибок CC, статус для каждого канала
- отправка trap при изменении статуса зонда
- отправка trap при изменении статуса канала на зонде
- Веб-консоль:
- общий статус
- список каналов с графиками битрейта и ошибок
- обновляемые превью потоков
- список зондов и каналов с графиками ошибок
Инструкция по установке Установка и подключение зондов
Бесплатно, в исходных текстах.
Используются: Erlang, C, С++, Javascript, Angular.
Проверено на платфомах: Centos 6, openSUSE 13.2
Архив сообщества G+:
Git repository
Сборка из исходников
Нужны Erlang/OTP
18+ (если нет в штатном репозитарии платформы, то можно взять, например,
тут),
git,
rebar, gcc.
Для превьюшек - относительно свежий ffmpeg. Или что-то другое, способное принять в stdio кусок потока, сделать слайд и отдать его в stdout.
- git clone https://corneyy@bitbucket.org/corneyy/mpegtsmon.git, или скачать архив нужной ветки с Битбакета;
- git checkout release или git checkout master ;
- rebar get-deps - должен приехать rfc4627_jsonrpc ;
- rebar compile ;
- проверить пути в thumb.sh;
- подготовить файл mcasts.txt по образцу mcasts.txt.sample. Кодировка названий потоков: utf8.
В первом поле можно указать интерфейс для приема этого потока, иначе будет использоваться алиас default.
Можно использовать:
- алиас из конфигурационного файла
- имя интерфейса
- адрес интерфейса
Форматы поля:
- fromix:239.0.0.1:1234
- 239.0.0.1:1234@fromix
Второе поле - название потока;
Если третье поле установлено в 1, то этот поток будет выделяться болдом в веб-консоли.
Так же в этом поле может быть указан список хештегов, используемый при сортировке в веб-консоли;
- подготовить конфигурационные файлы из образцов *.sample, snmp/*.sample.
Для копирования в рабочие файлы можно воспользоваться скриптом sample2conf.sh:
- sys.config - определяет настройки mpegtsmon, положение папок конфигурации и базы snmp:
- thumb_generators - количество одновременно работающих генераторов превью. Чем больше, тем быстрее будут обновляться превью потоков;
- thumb_preloads - количество одновременно заполняемых буферов потоков. Если их слишком мало, то будут простаивать генераторы превью, если слишком много, то будет занята лишняя память;
- Установка thumb_generators и thumb_preloads в 0 полностью исключает затраты ресурсов железа на превью;
- min_byte_per_second - минимальный валидный битрейт потока. Единица измерения: байты в секунду.
- interfaces - перечень алиасов для приема мультикаста.
По умолчанию принимается на всех: {default, "0.0.0.0"}.
Можно использовать имена интерфейсов: {fromix, "eth1"}
- httpd.conf - минимальная подготовка заключается в указании нужного порта.
При переносе server_root обязательно создать папку server_root/logs;
- snmp/agent.conf - интерфейс и порт для snmp агента;
- snmp/community.conf - community;
- snmp/standard.conf - значения стандартных OID. sysDescr, sysContact и тп;
- snmp/target_addr.conf - описание приемников trap;
- snmp/target_params.conf - описание параметров приемников trap;
- snmp/context.conf, snmp/notify.conf, snmp/vacm.conf - просто взять из *.sample;
- запустить:
- ./run.sh - для тестового запуска из папки проекта;
- start_daemon.sh и stop_daemon.sh - для запуска в фон;
- для получения мини-релиза можно воспользоваться ./release.sh . Например, ./release.sh ~/iptvmon/mpegtsmon ;
- для создания Centos6 службы можно воспользоваться прототипом ./contrib/centos6/mpegtsmon
Использование зонда
Сборка зонда из исходников
Нужны git, gcc 4.9+, CMake, make
- git clone https://corneyy@bitbucket.org/corneyy/mtsm_probe.git ;
- git checkout master ;
- mkdir build; cd build ;
- cmake ../ ;
- make ;
- запустить с указанием порта: ./mtsm_probe 1235 ;
Конфигурирование mpegtsmon для работы с зондами
- В sys.config указать общие параметры: {probes, [{default_port, "1235"}, {alive_interval, 30}, {alive_timeout, 3}]}
- подготовить файл probes.txt по образцу probes.txt.sample. Кодировка названий: utf8.
В третьем поле указать максимальное количество одновременно обрабатываемых потоков на данном зонде.
Другие проекты
ask собака farbow знак пунктуации ru