?
FARBow | KOΔEKAMEPA
En
 

Мониторинг качества мультикаст MPEG TS

  • Мониторинг битрейта, признаков скремблирования, TEI
  • Мониторинг целостности потока на основе сontinuity counter
  • Зонд для распределенного мониторинга
  • Циклический контроль потоков для зондов с недостаточной производительностью
  • SNMP агент (MIB):
    • счетчики суммарного трафика, ошибок СС
    • количество каналов всего и сбойных
    • отправка trap при изменении статуса канала
    • счетчик трафика, ошибок CC, статус для каждого канала
    • отправка trap при изменении статуса зонда
    • отправка trap при изменении статуса канала на зонде
  • Веб-консоль:
    • общий статус
    • список каналов с графиками битрейта и ошибок
    • обновляемые превью потоков
    • список зондов и каналов с графиками ошибок
Инструкция по установке Установка и подключение зондов

Бесплатно, в исходных текстах. Используются: Erlang, C, С++, Javascript, Angular.

Проверено на платфомах: Centos 6, openSUSE 13.2

Архив сообщества G+: Google+

Git repository

Сборка из исходников

Нужны Erlang/OTP 18+ (если нет в штатном репозитарии платформы, то можно взять, например, тут), git, rebar, gcc. Для превьюшек - относительно свежий ffmpeg. Или что-то другое, способное принять в stdio кусок потока, сделать слайд и отдать его в stdout.
  1. git clone https://corneyy@bitbucket.org/corneyy/mpegtsmon.git, или скачать архив нужной ветки с Битбакета;
  2. git checkout release или git checkout master ;
  3. rebar get-deps - должен приехать rfc4627_jsonrpc ;
  4. rebar compile ;
  5. проверить пути в thumb.sh;
  6. подготовить файл mcasts.txt по образцу mcasts.txt.sample. Кодировка названий потоков: utf8.
    В первом поле можно указать интерфейс для приема этого потока, иначе будет использоваться алиас default.
    Можно использовать:
    • алиас из конфигурационного файла
    • имя интерфейса
    • адрес интерфейса
    Форматы поля:
    • fromix:239.0.0.1:1234
    • 239.0.0.1:1234@fromix
    Второе поле - название потока;
    Если третье поле установлено в 1, то этот поток будет выделяться болдом в веб-консоли. Так же в этом поле может быть указан список хештегов, используемый при сортировке в веб-консоли;
  7. подготовить конфигурационные файлы из образцов *.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;
  8. запустить:
    • ./run.sh - для тестового запуска из папки проекта;
    • start_daemon.sh и stop_daemon.sh - для запуска в фон;
    • для получения мини-релиза можно воспользоваться ./release.sh . Например, ./release.sh ~/iptvmon/mpegtsmon ;
    • для создания Centos6 службы можно воспользоваться прототипом ./contrib/centos6/mpegtsmon

Использование зонда

Сборка зонда из исходников

Нужны git, gcc 4.9+, CMake, make
  1. git clone https://corneyy@bitbucket.org/corneyy/mtsm_probe.git ;
  2. git checkout master ;
  3. mkdir build; cd build ;
  4. cmake ../ ;
  5. make ;
  6. запустить с указанием порта: ./mtsm_probe 1235 ;

Конфигурирование mpegtsmon для работы с зондами

  1. В sys.config указать общие параметры: {probes, [{default_port, "1235"}, {alive_interval, 30}, {alive_timeout, 3}]}
  2. подготовить файл probes.txt по образцу probes.txt.sample. Кодировка названий: utf8.
    В третьем поле указать максимальное количество одновременно обрабатываемых потоков на данном зонде.

Другие проекты

ask собака farbow знак пунктуации ru