Jump to content
Cesbo Community
  • Announcements

    • RadioSintetica

      Information   10/21/18

      Registration on the forum temporarily closed! For support requests, please contacat us: https://cesbo.com/help
      Our community in Telegram: @cesbo_en (English language) , @cesbo_ru (Russian language) , @cesbo_es (Spanish Language)
Blackcat

Получение данных мониторинга

Recommended Posts

Про мониторинг - изначально цель была сделать возможность отгружать данные и вдруг кто-то решиться сделать серверную часть, для приёма и обработки. Но похоже это не очень хороший вариант :)

 

Поэтому опросник, как должна выглядеть система мониторина:

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

2) какой-то конвертор в системы мониторинга (тут есть опасность что таких конверторов может понадобится очень много)

3) что-то другое

зы: это просто мысли в слух, у меня рук не хватает пока

Share this post


Link to post
Share on other sites

Серверная часть уже пишется, без графиков, хоть и не красивая, но для статистики пойдёт) http://img.ii4.ru/images/2012/10/02/271380_kiss_10kb.png И ещё хорошо было бы отправлять в моинторинг название канала. В ручную забивать не хочется, и при изменении имени канала или его ip удобно брать информацию из мониторинга.

Думаю, что лучше первый вариант. Мне просто хотелось прикрутить к zabbix, т.к. это быстрее чем писать свой монитоирнг. И zabbix отправялет мне в jabber, skype, iсq сообщение об пропадании лока на транспондере, или низком качестве сигнала)

Share this post


Link to post
Share on other sites

чтобы отправлять имя канала достаточно вместо event = true написать event = "нужный идентификатор" и в json, в параметре channel будет "нужный идентификатор", а не адрес канала.

Share this post


Link to post
Share on other sites

А где можно отредактировать какие именно данные отправляются? Оказалось удобно вести такую таблицу со списком всех каналов. С сортировкой их по серверам, ip, и т.д. Но если захочется чтоб был и ip адрес, и название канала, или может частота транспондера, или номер dvb адаптера(при большом количестве каналов становится понятно, на каком транспондере проблема). Может какой-нибудь отдельный скриптик с описанием передаваемых значений?

Share this post


Link to post
Share on other sites

неплохая идея. сейчас все параметры формируются в event.lua, но там довольно ограниченный набор.

 

сейчас есть:

- event = true ( подставляется в параметр channel первый output , так сложилось, оставил для совместимости хотя наверно есть смысл убрать )

- event = "строка" ( подставляется в параметр channel указанная "строка"

 

могу добавить

- event = { таблица } и всё что есть в таблице будет добавленно в исходящий json

 

например:

event = {
   dvb = 0,
   id  = "channel_2032",
   value = function() return "TEST" end
}

в данном случае будут добавлены параметры dvb (число), id (строка), value (результат выполнения функции (для каких-либо динамических данных)

это просто пример и поток сознания :-)

Share this post


Link to post
Share on other sites

Тоже не плохо. Для этого надо победить разбор SDT таблицы, а до этого всё никак руки не доходят.

 

Запишу тут чтоб не забыть.

В модуль channel можно сделать метод возвращающий всю информацию о канале в виде таблицы.

 

зы: это сбор всех мыслей, в ближайшие два месяца точно не получится это сделать. но идеи это очень хорошо :-)

Share this post


Link to post
Share on other sites

Смотрю логи мониторинга (заношу в отдельные таблицы, и заношу только если какие-то значения кроме битрейта поменялись) http://img.ii4.ru/images/2012/10/03/271572_kiss_84kb.png

Иногда в cc error приходят отрицательные значения, это баг?

Share this post


Link to post
Share on other sites
Смотрю логи мониторинга (заношу в отдельные таблицы, и заношу только если какие-то значения кроме битрейта поменялись) http://img.ii4.ru/images/2012/10/03/271572_kiss_84kb.png

Иногда в cc error приходят отрицательные значения, это баг?

Не поделитесь кодом серверной части?

Share this post


Link to post
Share on other sites

И ещё в этом сообщении, и в документации вижу, что должна приходить информация о номере адаптера. У меня не приходит.

{"cc_error":0,"channel":"udp://10.0.16.7@239.0.1.193:1234","pes_error":45,"scrambled":false,"bitrate":3050496,"type":"channel","onair":true,"server":"iptv3"}
{"channel":"udp://10.0.16.7@239.0.1.193:1234","cam":true,"type":"decrypt","keys":true,"server":"iptv3"}
{"lock":true,"snr":83,"ber":0,"unc":0,"type":"dvb","bitrate":27266048,"server":"iptv3"}  

Share this post


Link to post
Share on other sites
Не поделитесь кодом серверной части?

 

Я не программист, я дал задачу разработчику, а он пишет. Код мне не дал, только доступ интерфейсу мониторинга... Могу дать его контакты. Skype: field1331 ICQ:594359764

Share this post


Link to post
Share on other sites
Смотрю логи мониторинга (заношу в отдельные таблицы, и заношу только если какие-то значения кроме битрейта поменялись) http://img.ii4.ru/images/2012/10/03/271572_kiss_84kb.png

Иногда в cc error приходят отрицательные значения, это баг?

недочёт в скрипте. в event.lua происходит сравнение, если текущее значение CC не равно предыдущему, то вычитать.

текущее значение может быть меньше предыдущего, если:

- один из потоков перестал идти (например EMM пакеты могут слать периодически)

- перезагрузилась информация о потоке

 

как вариант решения, в lua-скрипте, если текущее значение стало меньше предыдущего, то просто устанавливать текущее значение.

 

И ещё в этом сообщении, и в документации вижу, что должна приходить информация о номере адаптера. У меня не приходит.

Попробуй с этим патчем

diff -r 1351a76676e4 helpers/event.lua
--- a/helpers/event.luaWed Oct 03 14:18:00 2012 +0600
+++ b/helpers/event.luaWed Oct 03 15:47:58 2012 +0600
@@ -79,7 +79,7 @@
    local info = {}
    info.type = 'dvb'
    info.server = hostname
-    info.adapter = group.config.adapter
+    info.adapter = group.config.input.adapter
    info.bitrate = stat.bitrate * 1024
    if group.tune then
        local dvb_tune_stat = group.tune:status()

Share this post


Link to post
Share on other sites

Спасибо, после патча работает. А можно как-то добавить к информации об адаптере, информацию о канале. Когда мониторится много каналов, не понятно какой адаптер какойму каналу пренадлежит. Chaтnel и decrypt можно связать друг с другом, из-за общего поля channel. А как привязать инофрмацию об адаптере к каналу?

Share this post


Link to post
Share on other sites

Сейчас простым путём нельзя это реализовать (или, если очень необходимо, могу сделать какой-нибудь костыль небольшой).

Изначально планировал так:

на сервере таблица со списком каналов, у каждого канала в свойствах есть адаптер и его название (channel). т.е. какой канал к какому адаптеру принадлежит определяется на основе базы на сервере исходя из имени канала.

если приходит type:dvb и там какой-нибудь из параметров имеет "неправильное" значение, то все каналы с этим адаптером "подсвечиваются" как упавшие.

Share this post


Link to post
Share on other sites
Про мониторинг - изначально цель была сделать возможность отгружать данные и вдруг кто-то решиться сделать серверную часть, для приёма и обработки. Но похоже это не очень хороший вариант :)

На сколько я понимаю, сравнивая то, что есть сейчас в астре, и то что описано тут(zabbix agent), астре не хватает совсем чуть чуть, чтобы работать с zabbix'ом.

Share this post


Link to post
Share on other sites
Сейчас простым путём нельзя это реализовать (или, если очень необходимо, могу сделать какой-нибудь костыль небольшой).

Изначально планировал так:

на сервере таблица со списком каналов, у каждого канала в свойствах есть адаптер и его название (channel). т.е. какой канал к какому адаптеру принадлежит определяется на основе базы на сервере исходя из имени канала.

если приходит type:dvb и там какой-нибудь из параметров имеет "неправильное" значение, то все каналы с этим адаптером "подсвечиваются" как упавшие.

 

Поддерживаю. Если мониторим астру, то вряд ли конфиги астры руками пишутся %). Следовательно уже есть место

где расписаны все данные, что, откуда, с какими ключами снимается %)

Share this post


Link to post
Share on other sites

К стати а почему бы не сделать выгрузку данных сразу в БД например mysql? Посмотрел пример на луа вроде все просто.

Share this post


Link to post
Share on other sites

А нужно ли? База с конфигами обычно в одном месте стоит, а ресиверы "раскиданы".

Что будет в удаленном сегменте потерявшим связь с центром и ребуте ресивера?.

Или придумывать механизм failback на локальные конфиги или генерировать конфиги альтернативным способом, а не брать напрямую из базы.

 

Я к чему, есть ли смысл именно вещающий софт превращать в "швейцарский нож"? Может конфигурацию вынести

в astra-control бинарник, который будет рулить конфигами и реагировать на статистику из astra?

Share this post


Link to post
Share on other sites

Да было бы не плохо иметь что-то типа cli интерфейса для управления астрой, сейчас функции cli выполняет monit в случае необходимости перезагрузки конфига стримера, хочется включать выключать менять отдельные каналы в онлайн, может быть это лишнее но судя по тому как последнее время каналы скачут по спутникам может пригодится.

Только мы что-то отклонились от темы.

Share this post


Link to post
Share on other sites

Что-то у меня при включении мониторинга начинается в логах:

Oct 22 00:33:30 iptv astra1[5756]: WARNING: [dvb_input 5:0] read error [Operation now in progress]. try to reopen

Oct 22 00:34:00 iptv astra1[5756]: WARNING: [dvb_input 5:0] read error [Operation now in progress]. try to reopen

Т.е. как раз раз в 30 секунд, когда на сервер отправляются данные. Далаю event = false, все сразу нормализуется.

Share this post


Link to post
Share on other sites

А какой у вас процессор и сколько каналов на одну астру?

Такое "read error [Operation now in progress]" как правило возникает, если большой битрейт на одну астру (процессор не успевает выполнить весь цикл операций).

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×