rsst Posted December 12, 2006 Posted December 12, 2006 Пишу билинг для небольшой домашней сеточки. Возникла такая проблемка... Инфу о трафике у меня собирает ipcad, соответственно аггрегирует его и засылает netflow на локальный порт. Там я его отлавливаю nfacctd и пытаюсь складывать в базу postgres. Дык вот что мне сказать или первому, или второму (ipcad или nfacctd), чтобы инфа о трафике сбрасывалась в базу постепенно, а не когда юзер скачает в один поток непрерывно фильм метров на 600 при ограничении 50??? Умаялся, уже неделю голову ломаю.... Помогите плз... Вставить ник Quote
EvilShadow Posted December 12, 2006 Posted December 12, 2006 Поиграйтесь с таймаутами в настройках ипкада Вставить ник Quote
balamutang Posted December 13, 2006 Posted December 13, 2006 до сих пор думал что нетфлоу инфу только по окончании сессии отдает, вне зависимости от ее продолжительности и размера. или это не так? Вставить ник Quote
anclbob Posted December 13, 2006 Posted December 13, 2006 у меня вообще без заморочек работает! настроил ipcad на ng* и сохраняю статистику в файлик (только входящий) и раз в час запускается скрипт , разносит всё в мускульную базу... вообщем биллинг получился на ура с модулями кассиру и прочей лабудой Вставить ник Quote
Forst Posted December 13, 2006 Posted December 13, 2006 Я раньше тоже с NetFlow пробывал колбасится, сейчас вернулся к rsh. Получилось классно. Вставить ник Quote
EvilShadow Posted December 13, 2006 Posted December 13, 2006 до сих пор думал что нетфлоу инфу только по окончании сессии отдает, вне зависимости от ее продолжительности и размера. или это не так?Нет.В комментариях в конфиге ипкада написано, что делает параметр active timeout. Вставить ник Quote
rsst Posted December 13, 2006 Author Posted December 13, 2006 Короче забил я на nfacctd... написал скриптик, который распарсивает и складывает инфу от ipcad в базу и в файл рядышком... В базе видимо хранить таки все не буду... Триггер на insert и процедурка, раскидывающая инфу о байтах в статическую табличку... Все так прикольненько получается :) Вся логика на постгресе. Морду можно писать на чем угодно :) товарищ пишет на пхп, я вот пишу под винду на делфях :) Вставить ник Quote
EvilShadow Posted December 13, 2006 Posted December 13, 2006 У меня нетфло собирается через fprobe-ulog, два коллектора - nnfc, который складывает все в мускульную рабочую базу и flow-capture, который делает бэкапы. Кста, с постгром nnfc тоже работать умеет. Перепробовал много сенсоров и коллекторов, но текущий вариант имхо лучший Вставить ник Quote
Илья Дмитриевич Posted December 13, 2006 Posted December 13, 2006 Ксати существует ли нормальный веб интерфейс для статистики nfacctd а то чё то Flox не очень у меня захотел работать ? Вставить ник Quote
ldmitry Posted July 28, 2010 Posted July 28, 2010 (edited) Друзья, Во-первых, нельзя получать данные по NetFlow ни равномерно, ни по завершении сессии, т.к. роутер должен держать свободными свои буфера, и освобождает их так быстро как возможно. К тому же, счетчик байт на поток только 32 бита. Так что на одну в понимании TCP сессию, вы можете получить многие сотни потоков в понятиях NetFlow. Как вы это обработаете уже не проблема роутера ;-) Во-вторых, БД MySQL в силу многих ограничений очень плохо работает с такими объемными данными которые вы можете получить по NetFlow (большие массивы не удаляются, при параллельных извлечениях и одновременно с этим "большой" вставке запросы на извлечение черезвычайно (встают практически) замедляются вне зависимости от извлекаемого объема). Вам обязательно надо предварительно обработать данные ещё до этой базы. Я имел опыт обработки NetFlow утилитами из пакета flow-tools, работал с тремя базами - MySQL, MS SQL и PostgreSQL, и скажу что для задач работы с сетевой статистикой, баз равных PostgreSQL просто нет. Например, оказалось быстрее загнать данные в PostgreSQL, там суммировать и выгрузить итоги в нужную мне базу, чем делать это утилитами или, тем более (упаси бог) грузить сырые данные в MS или (упаси бог дважды) в MySQL. Вот тут я написал всё на эту тему: http://ldmitry.blogspot.com/2010/07/netflow-3_12.html Edited July 28, 2010 by ldmitry Вставить ник Quote
blackjack Posted July 28, 2010 Posted July 28, 2010 наткнулся тоже когдато на такие грабли вот http://forum.nodeny.com.ua/index.php?topic=180.0 Вставить ник Quote
ldmitry Posted July 28, 2010 Posted July 28, 2010 наткнулся тоже когдато на такие грабливот http://forum.nodeny.com.ua/index.php?topic=180.0 О, а я тоже использовал ipacct, ещё когда полоса была в пару мегабит всего. Для него 20 тыс. потоков в час уже неплохая нагрузка, к тому же он на роутере работает-то. А по нетфлоу с 400 Мегабитного потока получаем статистику и нет проблем, а там до 70 млн. потоков в час доходит.С ipacct-то я все данные в MySQL заносил и БД не была узким местом :-) Вставить ник Quote
Giga-Byte Posted July 29, 2010 Posted July 29, 2010 Друзья, Во-первых, нельзя получать данные по NetFlow ни равномерно, ни по завершении сессии, т.к. роутер должен держать свободными свои буфера, и освобождает их так быстро как возможно. К тому же, счетчик байт на поток только 32 бита. Так что на одну в понимании TCP сессию, вы можете получить многие сотни потоков в понятиях NetFlow. Как вы это обработаете уже не проблема роутера ;-) Во-вторых, БД MySQL в силу многих ограничений очень плохо работает с такими объемными данными которые вы можете получить по NetFlow (большие массивы не удаляются, при параллельных извлечениях и одновременно с этим "большой" вставке запросы на извлечение черезвычайно (встают практически) замедляются вне зависимости от извлекаемого объема). Вам обязательно надо предварительно обработать данные ещё до этой базы. Я имел опыт обработки NetFlow утилитами из пакета flow-tools, работал с тремя базами - MySQL, MS SQL и PostgreSQL, и скажу что для задач работы с сетевой статистикой, баз равных PostgreSQL просто нет. Например, оказалось быстрее загнать данные в PostgreSQL, там суммировать и выгрузить итоги в нужную мне базу, чем делать это утилитами или, тем более (упаси бог) грузить сырые данные в MS или (упаси бог дважды) в MySQL. Вот тут я написал всё на эту тему: http://ldmitry.blogspot.com/2010/07/netflow-3_12.html я против хранения этой информации в реляционной базе данных, в этих данные (netflow) какбы мало реляционности. иногда юзерам надо статистику куда столько денех ушло. ну и по закону, просто храню 3 года... машинка со стареньким процом, с несколькими 2-х терабайтными винтами, которая с каталиста получает копию потока с вланов всех аплинков и пишет на винт в формате flow-tools вот и будет висеть демон, который с помошью запуска flow-tools будет неспеша выгребать нужную информацию с винтов по разным критериям и хранить результат, пока либо абонент не заберёт в личном кабинете, либо девочка в офисе не распечатает и не отдаст за деньги. ПЫ.СЫ. трафик не считаю этой штуковиной. только для информации. Вставить ник Quote
Giga-Byte Posted July 29, 2010 Posted July 29, 2010 ну и кто не вкурсе, в сетях нет слова байт, там есть слово октет, и октет равен 8 битам. и как-то некорректно всё это, всмысле учет трафика, тем более по данным netflow. Вставить ник Quote
Giga-Byte Posted July 30, 2010 Posted July 30, 2010 а по чем корректно?ну на порту абонента.если хочется по зонам (выделить локальную сеть например) - по счетчикам фаерволла но я ни по тому ни по другому, а по третьему... Вставить ник Quote
ldmitry Posted July 30, 2010 Posted July 30, 2010 (edited) ну на порту абонента.если хочется по зонам (выделить локальную сеть например) - по счетчикам фаерволла Всяк корректно, я давно работаю в провайдерах и скажу, что по NetFlow корректно и, я бы сказал, стандартно. Главное, Вы можете дать клиенту детализацию, которая совпадет полностью с суммой.На порту, как вы правильно заметили по зонам не разделишь. Хотя это чаще всего не нужно, зато объемы данных заметно меньше. А вот насчет счетчиков фаервола - это для совсем маленьких объемов, т.к. вам надо промаршрутизировать трафик через машину со счетчиками. Есть методы, связанные с пассивным слушанием, но тогда вы не имеете контроля над не подсчитанным объемом. Ведь если свитч, который делает mirroring на ваш "слушающий" интерфейс, или сам интерфейс или ОС дропают такой трафик (из-за нехватки буферов на пиках и т.п.) вы ничего о нем не знаете. В отличие от NetFlow роутеров, которые отчитываются о дропнутых потоках в т.ч. В общем, последними двумя методами (счетчики фаервола и "слушание") пользуются небольшие провайдеры, а для крупных - NetFlow и данные с портов. Edited July 30, 2010 by ldmitry Вставить ник Quote
Giga-Byte Posted July 30, 2010 Posted July 30, 2010 ... по NetFlow вполне корректно.я доверяю только кошке, а т.к. на бордере не кошка, то нетфлоу только для информации Главное, Вы можете дать клиенту детализацию, которая совпадет полностью с суммой.соглашусь, это самый главный плюс учета по данным нетфлоу,и туева туча минусов, например не выделять использовавшийся адрес другому абоненту сколько-то времени (этож надо учесть при выдаче динамического адреса), где-то держать информацию об отключеных абонентах и ловить netflow пакеты, считать октеты Хвремени Вставить ник Quote
Giga-Byte Posted July 30, 2010 Posted July 30, 2010 (edited) а по чем корректно?ну это всё технически, а есть ещё и экономическая часть (тоесть если делать совсем всё по закону, что не получается)это я про счет за услуги на основании чего? бита/байта/октета, а есть ли эталон этого бита/байте/октета... правда на это никто и не заморачивается тоесть безлимит рулит теперь и у нас и теперь для юриков... Edited July 30, 2010 by Giga-Byte Вставить ник Quote
blackjack Posted July 31, 2010 Posted July 31, 2010 ну на порту абонента.если хочется по зонам (выделить локальную сеть например) - по счетчикам фаерволла я вот думаю что по счетчикам фаервола это некорректно, потому что если у васн допустим стоит фря, и через нее ходит 1000 абонентов в интернет и локалку, то не будете же вы держать 2000 правил ipfw count ? по зонам должен разбирать внешний обработчик, который знает какие сеть есть локалка, какие сети есть партнерские/пиринговые, ну и все что не попадает под критерии это интернет. Обработчик самописный скрипт, часть биллинга или еще какая нибудь примочка. Вставить ник Quote
littlesavage Posted July 31, 2010 Posted July 31, 2010 Giga-Byte, эталона бита в секунду для безлимитов тоже нет. Вставить ник Quote
Giga-Byte Posted August 2, 2010 Posted August 2, 2010 (edited) Giga-Byte, эталона бита в секунду для безлимитов тоже нет.:)вово, я вообще предлагал сделать один тариф, "доступ в инет", можно модификацию: быстрый и нормальный :) "медленный" делать не стоит, чтобы не ронять АРПУ. Edited August 2, 2010 by Giga-Byte Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.