BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 16 июн 2024, 06:57

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




Начать новую тему Ответить на тему  [ Сообщений: 22 ] 
Автор Сообщение
 Заголовок сообщения: Привязка c Flow Tools
СообщениеДобавлено: 27 май 2008, 09:25 
Не в сети

Зарегистрирован: 02 апр 2008, 12:58
Сообщения: 78
Карма: 0
Добрый день,

Наши тесты NetFlow коллектора с версией 4.4 дают все равно заниженные результаты по сравнению с FlowTools. У нас есть рац предложение. Расскажу немного о том как работает у нас и хотелось бы узнать, об интеграции всего этого дела в BGBilling.

FlowTools настроены самым обычным образом. В БД, в которую все сливается подключаетеся скрипт и делает выборку каждые 5 минут. При этом в другую БД заливается информация о трафике. БД организованы очень просто: IP адрес источника, IP адрес назначения, временной промежуток и количество переданных кБ. Мы хотели бы просто подсовывать эти данные в биллинг и умножать их там.

За счет такой схемы мы боримся с объемом занимаемой информацией. За 3 месяца прошло оклол 6 терабайт по сети. Информация о них в БД занимает 1,3 ГБ. Если хотите мы всю схему детально выложим.

Сейчас стоит вопрос об интеграции всего этого дела в BGBilling. В первую очередь хотелось бы знать ваше мнение и какие могут быть подводные камни, ну и как вы порекомендуете это реализовать?

Заранее спасибо,


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 29 май 2008, 15:28 
Не в сети

Зарегистрирован: 02 апр 2008, 12:58
Сообщения: 78
Карма: 0
UP


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 29 май 2008, 19:17 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
Какой модуль планируете использовать IPN или VPN


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 30 май 2008, 00:29 
Не в сети

Зарегистрирован: 02 апр 2008, 12:58
Сообщения: 78
Карма: 0
Ну вообще планируем IPN.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 30 май 2008, 12:00 
Не в сети

Зарегистрирован: 23 янв 2008, 12:19
Сообщения: 12
Карма: 0
Kama s Utra немножко неправильно описал схему, имеющуюся у нас сейчас.
Есть коллектор flow-tools
Есть фильтры к flow-nfilter
Есть скрипт, который достает информацию согласно фильтрам по каждому нашему IP адресу о количестве переданной и принятой информации в виде (Время, IP Адрес, Принято Мб, Передано Мб):
Код:
1207900800      1535624046      1924465 308181


Далее есть база MySQL куда это все прогружается.
Flow-Tools настроены каждые 5 минут создавать новый файл, а также после закрытия предыдущего файла запускать программу обработки, которой и является скрипт.
Получается, скрипт формирует нужную информацию, по нужным адресам и складывает ее в базу MySQL.
В MySQL есть идентичные таблички, называются 5min, 1hour, 1day
Код:
+----------+---------------------+------+-----+---------+-------+
| Field    | Type                | Null | Key | Default | Extra |
+----------+---------------------+------+-----+---------+-------+
| time     | int(10) unsigned    | NO   | PRI |         |       |
| ip       | int(10) unsigned    | NO   | PRI |         |       |
| download | bigint(20) unsigned | NO   |     |         |       |
| upload   | bigint(20) unsigned | NO   |     |         |       |
+----------+---------------------+------+-----+---------+-------+


Также в MySQL создан триггер:
После добавления в информации в таблицу 5min, округлить время до 1 часа, добавить эту информацию в таблицу 1hour, если первичный ключ (time, ip) уже есть (происходит 11 раз в час, так как периоды 5-ти минутные), то просуммировать информацию по столбцам download и upload.
Тоже самое происходит и в таблице 1day, но время округляется до суток.

Таким образом в таблице 1day мы имеем список IP адресов и информацию об их прокачанном трафике.
Теперь все что нам нужно сделать для определения трафика за месяц, это просто попросить у MySQL:
Код:
select replace(sum(download)/1048576, '.', ','),replace(sum(upload)/1048576, '.', ',') from 1day where time between unix_timestamp('2008-04-01 00:00:00') and unix_timestamp('2008-04-30 00:00:00') and ip between inet_aton('172.16.0.0') and inet_aton('172.16.0.255');

вот что получаем на выходе
Код:
+------------------------------------------+----------------------------------------+
| replace(sum(download)/1048576, '.', ',') | replace(sum(upload)/1048576, '.', ',') |
+------------------------------------------+----------------------------------------+
| 52528,5692                               | 16500,9999                             |
+------------------------------------------+----------------------------------------+

Время выполнения запроса: 1.85с
Оперировать данными можно легко меняя запрос, а также производить группировку по дате, либо IP адресу.

Собственно вопрос, можно ли переделать модуль IPN, чтобы он не использовал свои накопленные данные, а просто просил наш MySQL о трафике для определенных клиентов. Т.е. в IPN нам придется вбить всего лишь IP адреса.

Спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 04 июн 2008, 16:17 
Не в сети

Зарегистрирован: 02 апр 2008, 12:58
Сообщения: 78
Карма: 0
Ну что нам ждать ответа?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 04 июн 2008, 16:32 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
ПЕРЕДЕЛЫВАТЬ модуль наврядли будем, в любом случае в текущей версии.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 04 июн 2008, 17:46 
Не в сети

Зарегистрирован: 02 апр 2008, 12:58
Сообщения: 78
Карма: 0
Ну а если мы будем подсовывать свои данные (время, ip, принято, скачено) в БД непосредственно? Это будет работать? Если да, то куда их надо вставлять. В описании БД не совсем понятно...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 04 июн 2008, 18:41 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
будет, а вот, что, куда и как это надо описывать, а на это пока времени нет


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 июн 2008, 09:54 
Не в сети

Зарегистрирован: 02 апр 2008, 12:58
Сообщения: 78
Карма: 0
Вы называете это технической поддержкой?

Поймите, что коллектор теряет данные. Flow tools не с потолка же берет те данные, которые в ваш Netfolow коллектор не попадают. Даже 10 мб с каждого клиента это уже 10 гб с 1000 клиентов. Уж не говоря о потерях под 7-10%. Не знаю как вам, но для розничных реселлеров трафика это немаловажно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 июн 2008, 10:55 
Не в сети

Зарегистрирован: 23 янв 2008, 12:19
Сообщения: 12
Карма: 0
ПЕРЕДЕЛЫВАТЬ совсем не обязательно, можно дописать новый

когда нам ждать ответа по нашей идее?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 июн 2008, 11:48 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
А почему не подходит такой метод?
http://wiki.bgbilling.ru/index.php/Связка_с_flow-tools


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 июн 2008, 12:30 
Не в сети

Зарегистрирован: 02 апр 2008, 12:58
Сообщения: 78
Карма: 0
Ну вообще система у нас работает, генерит минимальное количество данных, которого достаточно для нас. Значения агрегированные. Хотелось бы чтобы именно их билинг тарфицировал.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 июн 2008, 14:41 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Обсчет делится на два действия: обработка первичных логов и тарификация.
При обработке логов находится подходящий диапазон адресов (aid), договор(cid), к которому он привязан, услуга(sid) и с разделением за час записывается в таблицу ipn_contract_data_
При тарификации эти данные проходят через тарифное дерево и заполняется таблица contract_account, где указаны договор, месяц, услуга, сумма.

Т.е. можно разделить upload и donwload на две услуги и записывать эти данные в ipn_contract_data_mid_yyyyMM вместо обработки логов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 июн 2008, 18:18 
Не в сети

Зарегистрирован: 23 янв 2008, 12:19
Сообщения: 12
Карма: 0
Amir писал(а):
Обсчет делится на два действия: обработка первичных логов и тарификация.
При обработке логов находится подходящий диапазон адресов (aid), договор(cid), к которому он привязан, услуга(sid) и с разделением за час записывается в таблицу ipn_contract_data_
При тарификации эти данные проходят через тарифное дерево и заполняется таблица contract_account, где указаны договор, месяц, услуга, сумма.

Т.е. можно разделить upload и donwload на две услуги и записывать эти данные в ipn_contract_data_mid_yyyyMM вместо обработки логов.


т.е. получается мы можем своим скриптиком обрабатывать трафик полученный из других источников и записывать напрямую в базу BGBilling-а?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 июн 2008, 19:07 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Да. Обработка логов и тарификация - две разные задачи в планировщике.
В ближайщем будущем планируем переделать модуль ipn, изначально создававшийся для кредитовых договоров юр. лиц, для обсчета в реальном времени, поэтому никаких других существенных изменений с загрузкой логов и тарификацией делать не будем, чтобы не переделывать потом дважды.

Можно узнать примерную конфигурацию машины(в том числе сетевая карта), на котором идет потеря flows, объемы(кол-во пакетов)? Как делятся потоки?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 июн 2008, 10:34 
Не в сети

Зарегистрирован: 23 янв 2008, 12:19
Сообщения: 12
Карма: 0
Есть такая штука
http://wiki.openvz.org/Main_Page

Стоит на машине
Intel(R) Xeon(TM) CPU 3.20GHz 4х ядерный
2Гб памяти
320Гб жесткий диск

Созданы контейнеры на этой машине:
1. Flow-Tools с нашим скриптиком
2. MySQL куда скидывается вся агрегированная информация о трафике
3. BGBilling

В первом контейнере запущен flow-fanout, для репликации flow потока на разные хосты, т.к. CISCO не может слать flow больше чем на два направления.
flow-fanout реплицирует поток на flow-tools, стоящий в этом же контейнере и в BGBilling в другой контейнер.
Все это делается в пределах одной физической машины.

В итоге BGBilling считает меньше чем flow-tools


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 июн 2008, 20:45 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Спасибо.
Забыл спросить примерные объемы netflow трафика, пакетов или мб в сек..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 июн 2008, 09:44 
Не в сети

Зарегистрирован: 23 янв 2008, 12:19
Сообщения: 12
Карма: 0
среднесуточный объем каталога flow-tools с максимальным сжатием составляет порядка 350-400Mb и количеством записей ~ 20'000'000


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 июн 2008, 01:23 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
я думаю что проблема в этом:
antoxa писал(а):
flow-fanout реплицирует поток на flow-tools, стоящий в этом же контейнере и в BGBilling в другой контейнер.

т.к. flow-fanout работает с flow-tools в рамках одной VPS и OpenVZ как бы не при делах, а вот как только Вы начинаете слать из одной VPS в другую - в дело включается OpenVZ и хост-машина кои могут так или иначе сказаться на результатах ... запустите все на одной VPS-ке и проверьте, так данные тестов будут более точными ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 21 июн 2008, 14:52 
Не в сети

Зарегистрирован: 29 мар 2007, 16:21
Сообщения: 109
Откуда: Иркутск
Карма: 2
у нас стоит flow-tools в сутки собирается примерно 8-10Гиг логов

и мы не извращаемся и честно храним их все, и вам советуем :)

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

ни каких fanout мы не делаем (зачем грузить 2 раза проц/диск)
логи пишет отдельная машина (которая занимается только этим) на локальный диск и раз в час они скриптом переносятся по NFS на сервер и этим же скриптом конвертятся в формат БГ и кладутся БГ в правильную директорию, после чего дергается БГ что бы он загрузил лог за час. Все файлы лежат на NFS сервере и доступны и с БГ и с машин которые пишут лог.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 26 июн 2008, 16:34 
Не в сети

Зарегистрирован: 23 янв 2008, 12:19
Сообщения: 12
Карма: 0
так и мы идем к тому чтобы не использовать fanout, т.е. у нас есть первичный коллектор flow-tools, а отсюда уже и бгбиллинг должен скакать, т.е. мы его должны "скакать" в виде подсовываемых данных о трафике


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

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


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

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


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

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