BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 21 ноя 2024, 19:18

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 18 ] 
Автор Сообщение
 Заголовок сообщения: Формат лога bgdl
СообщениеДобавлено: 20 май 2011, 15:28 
Не в сети
Клиент

Зарегистрирован: 30 мар 2009, 17:51
Сообщения: 431
Карма: 23
Ув.коллеги, помогите разобраться со структурой bgdl файла. Вроде основная часть понятна, но есть определенные нестыковки, непонятна нагрузка некоторых байт в логе.
Итак, заголовок лога понятен и разбирается нормально. На первом скриншоте все отметил.

Код:
header {
 int magic = "BGDL" = 0x4247;
 int version = 2;
 int type = 1 (IP);
 int header_params_length;
 param<> {
   int param_type;
   int param_value_length;
   opaque value;
 }
}


Длина параметров заголовков=0x2с, адрес этого поля 0x10, значит заголовок кончается на 0x3с (вернее 0x3с это уже начала блока данных).
А вот с блоком данных оказалось сложнее. Согласно документации
Код:
data {
 block<> {
  int block_length;
  long reserved;
  int reserved;
  opaque block_data;
 }
}

Первые 4 байта - длина блока должна быть, но она какая-то нереальная (0007FF00). Вобщем пропустил это. Нашел с чего должен начинать нетфлоу пакет. 00 05 - версия, 00 1Е - 30 потоков в пакете (по спецификации от 1 до 30).
Между началом нетфлоу и концом заголовка - 6 полей по 4 байта, т.е. какие то 6 int чисел. По спецификации должно быть 3 числа, причем два из них пустыми должны быть.
Похожие два инт числа есть перед началом первого и второго пакета нетфлоу (00000130 0B7D0D84 и 00000130 0B7D0D86) Может быть это относится к типу данных opaque (но для переменной длины должно быть только 4 байта указывающих длину блока, и опять же - не сходится длина в этих числах никак с реальной длиной).

Более того, если идут к data block<> block<> - то вообще полей ну никак не хватает =) а если идет data block <> { lenght, long res, int res, opaque data, opaque data} то тогда в начале поле лишнее и между opaque data лишнии поля какие то.

Брррр вобщем, крыша едет, прошу помощи =)


ps хочу понять что за 6*4 байт между концом заголовка и началом первого пакета данных, и что за 2*4 между пакетами данных.

pps адрес строки с последними данных если что 0x99В338, а сам файл кончается байтом с адресом 0xa0017b. Итого всего 10486140 байт. Никакими перемножениями длин блоков на числа в предполагаемых длинах заголовках получить ни длину блока с данными по пакету нетфлоу, ни длину всех данных получить не удалось =(


Вложения:
Комментарий к файлу: продолжение
2.png
2.png [ 86.77 КБ | Просмотров: 23368 ]
Комментарий к файлу: Начало лога
1.png
1.png [ 58.54 КБ | Просмотров: 23368 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат лога bgdl
СообщениеДобавлено: 20 май 2011, 18:01 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
Тут есть описание netflow v5, а bgdl ... это из разряда - каждый дро делает как он хочет. Я когда-то предлагал складывать в формате flow-tools или формате nfdump, т.к. это удобно, но предложение не поддержали.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат лога bgdl
СообщениеДобавлено: 20 май 2011, 22:13 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Последняя ссылка нраицца :lol:
2 Феанор. Хотите сделать вьювер какой нибудь?

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат лога bgdl
СообщениеДобавлено: 20 май 2011, 22:14 
Не в сети
Клиент

Зарегистрирован: 30 мар 2009, 17:51
Сообщения: 431
Карма: 23
snark писал(а):
Тут есть описание netflow v5, а bgdl ... это из разряда - каждый дро делает как он хочет. Я когда-то предлагал складывать в формате flow-tools или формате nfdump, т.к. это удобно, но предложение не поддержали.

Собственно по этой спецификации я и разбирал пакет нетфлоу - с ним проблем нет - пакет нетфлоу в бгдл хранится целиком в исходном виде, с добавлением хеадеров и пары каких то оберточных полей, назначение которых я и не могу понять =)
А ваше предложение я видел уже, нфдамп лучший вариант, да;) У меня просто железка шлет netflow v9 сейчас, стоит нфкапд который это слушает и складывает логи. Решением было бы чтонибудь что на лету из в9 в в5 трафик преобразовывало, но денег на nProbe сейчас не дадут, даже столько мало =( Хотя тут кажется кто-то покупал его, может поделятся исходниками =)

А вообще разрабочики же должны сказать какой формат лога и что значат эти поля с которыми я разобраться не могу. исходники нфкапда есть, переписать чуть чуть и складывать сразу в формате логов бг - не долго =)


Последний раз редактировалось Феанор 20 май 2011, 22:21, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат лога bgdl
СообщениеДобавлено: 20 май 2011, 22:15 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Разработчики не сразу отвечают. День-два - ответ будет :)

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат лога bgdl
СообщениеДобавлено: 20 май 2011, 22:19 
Не в сети
Клиент

Зарегистрирован: 30 мар 2009, 17:51
Сообщения: 431
Карма: 23
Phricker писал(а):
Последняя ссылка нраицца :lol:
2 Феанор. Хотите сделать вьювер какой нибудь?

Хочу из нфдампа сразу лить логи в формате бгбиллинга =)
Цитата:
Разработчики не сразу отвечают. День-два - ответ будет

Не первый раз замужем, знаем знаем =) уже во второй конторе бгбиллинг внедряю, в первой правда был диалап основным модулем, а тут ipn =) да и на выходных надо отдыхать, а не мозги напрягать ;)

А вообще проблему бы решила поддержка 9й версии =)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат лога bgdl
СообщениеДобавлено: 23 май 2011, 15:21 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
data {
block<> {
int block_length;
int reserved;
int reserved;
opaque block_data {
int length;
record<> {
long millis;
data<>;
}
}
}


0007FF00 - длина блока нормальная, берется из конфига.
Незаполненная часть будет заполнена нулями.
Далее идет 8 байт reserved, затем 4 байта - длина данных в блоке (т.е. после этого количества пойдут нули до конца блока).
Перед самой записью netflow идет long - время в миллисикундах, когда был получен пакет. Т.е. время, пакет; время, пакет; ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат лога bgdl
СообщениеДобавлено: 23 май 2011, 17:02 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
А все же - зачем изобретался велосипед? Почему нельзя было использовать готовые форматы?

В мануале сказано что БГБ понимает формат flow-tools, но не совсем понятно, какой именно, т.е. не понятно понимает ли он только raw или сжатые файлы (-z Х) тоже может понять?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат лога bgdl
СообщениеДобавлено: 24 май 2011, 08:18 
Не в сети
Клиент

Зарегистрирован: 30 мар 2009, 17:51
Сообщения: 431
Карма: 23
Amir писал(а):
data {
block<> {
int block_length;
int reserved;
int reserved;
opaque block_data {
int length;
record<> {
long millis;
data<>;
}
}
}


0007FF00 - длина блока нормальная, берется из конфига.
Незаполненная часть будет заполнена нулями.
Далее идет 8 байт reserved, затем 4 байта - длина данных в блоке (т.е. после этого количества пойдут нули до конца блока).
Перед самой записью netflow идет long - время в миллисикундах, когда был получен пакет. Т.е. время, пакет; время, пакет; ...


2Amir, а не перепутали? 0x07ff00 (это значение по адресу 0x4c находится) - длина данных, после него идут нули с 0x07ff4c до 0х08004с (т.е. 0x080000+0x4c), а там уже идет новый блок данных. Ну и вообще логично что длина данных не может быть длины блока =) а из конфига берется 080000 - это 512 килобайт, или 524288 байт, что и записано в стандартном конфиге =)

Ну в принципе теперь разобрался, спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат лога bgdl
СообщениеДобавлено: 24 май 2011, 13:12 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Да-да, перепутал:
data {
block<> {
int length; // длина данных в блоке
int reserved;
int reserved;
opaque block_data {
int block_length; // длина блока = длина данных в блоке + длина 0x00 padding
record<> {
long millis;
data<>;
}
}
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат лога bgdl
СообщениеДобавлено: 24 май 2011, 13:15 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Цитата:
А все же - зачем изобретался велосипед? Почему нельзя было использовать готовые форматы?

В мануале сказано что БГБ понимает формат flow-tools, но не совсем понятно, какой именно, т.е. не понятно понимает ли он только raw или сжатые файлы (-z Х) тоже может понять?


Потому что кроме netflow еще и sflow и snmp сохраняем. И хочется как-то унифицировано это делать. Поэтому такой контейнер.
Да, сжатые тоже понимает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат лога bgdl
СообщениеДобавлено: 24 май 2011, 15:43 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
Amir писал(а):
Потому что кроме netflow еще и sflow и snmp сохраняем. И хочется как-то унифицировано это делать. Поэтому такой контейнер.

nfdump.sf.net писал(а):
nfcapd reads netflow v5, v7 and v9 flows

sflow ~= netflow v9, а snmp туда вообще писать не сложно, разве нет?

Amir писал(а):
Да, сжатые тоже понимает.

УРА Бителу!
В доку!!!111


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат лога bgdl
СообщениеДобавлено: 06 сен 2011, 10:03 
Не в сети
Клиент

Зарегистрирован: 17 дек 2010, 15:27
Сообщения: 147
Карма: 22
Хм а подскажите по структуре сжатых логов .. т.к по описанию размер лога получается слишком большим ..а на самом деле он 300кб

UPD хм разобрался вроде

после хедера идет сразу сжатый весь дата блок до конца файла .. а внутри уже структура дата


Вложения:
log.png
log.png [ 48.33 КБ | Просмотров: 23271 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат лога bgdl
СообщениеДобавлено: 13 мар 2012, 13:09 
Не в сети

Зарегистрирован: 09 июл 2009, 11:31
Сообщения: 82
Откуда: Россия
Карма: 20
Добрый день.

Появилась ли готовая тулза для конвертирования из BGDL в формат flow-tools? Очень хочется ее заиметь :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат лога bgdl
СообщениеДобавлено: 13 мар 2012, 19:08 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
Напишите - будет ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат лога bgdl
СообщениеДобавлено: 21 мар 2012, 16:56 
Не в сети

Зарегистрирован: 09 июл 2009, 11:31
Сообщения: 82
Откуда: Россия
Карма: 20
Таки написал :), правда в формат nfdump, т.к. он оказался лучше документирован. Оформил в вики, может кому-нибудь еще пригодится.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат лога bgdl
СообщениеДобавлено: 30 мар 2012, 16:56 
Не в сети

Зарегистрирован: 11 янв 2007, 14:38
Сообщения: 55
Карма: 2
Огромное спасибо!!!
Пригодится, еще как пригодится. Для прошлой версии биллинга сам писал приблуду, для руки недошли :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат лога bgdl
СообщениеДобавлено: 19 фев 2019, 16:26 
Не в сети
Аватара пользователя

Зарегистрирован: 22 янв 2018, 11:21
Сообщения: 16
Карма: 0
Спасибо! Помогло посмотреть логи...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 18 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.075s | 55 Queries | GZIP : On ]