Jump to content

Recommended Posts

Posted

На данный момент всё кладётся netflow2mysql в 5ую mysql базу,скорость выборки устраивает но хочется чего-то нового.

Что посоветуете, постгресс? оракл?

Какие коллекторы умеют писать в них напрямую, или киньте линки на перловые скрипты для этого.

Posted

При этом подозреваю что постгресс и оракл на таких задачах и сопоставимом железе покажут такую же ( если не худшую ) скорость. Они выигрывают на большом количестве таблиц/потоков/транзакций, а bulk insers/select в пару потоков - это как раз mysql ублюдочный.

Posted
По сырому нетфлоу клиенты имеют свойство заказывать детализацию. До пакета. Поэтому приходится таки держать в базе...

 

нафига? пусть такая выборка будет прямо с харда идти, скажем раз в 20 минут и отправляться на почту юзеру и только по его запроосу (например как в системе ИССА у МТС). если юзеров будет много, то онлайновые детализации в скором времени займут 100% cpu.

Posted

А деталька только по запросу и делается. Просто клиент получает счет и начинает вопить "я этого не качал", показывайте детализацию. Выдаем ему двухгиговое полотенце, и всегда помогает. Грепать заради каждого такого (а их дохрена) пару десятков гигов сырых данных за месяц - сомнительное удовольствие. Тем более что заказать могут за произвольный период времени.

Posted
А деталька только по запросу и делается. Просто клиент получает счет и начинает вопить "я этого не качал", показывайте детализацию. Выдаем ему двухгиговое полотенце, и всегда помогает. Грепать заради каждого такого (а их дохрена) пару десятков гигов сырых данных за месяц - сомнительное удовольствие. Тем более что заказать могут за произвольный период времени.
а значит "грепать" мускулем сотенку гигов при таком раскладе - нормально?

а за детализацию деньги надо брать....

Posted

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

Ну если нет смысла менять mysql на что-то другое то пусть работает дальше.

Posted

В БД - аггрегированное по 10 мин.

Логи - по запросу. Всё равно хрен угадаешь, что искать нужно будет.

Вариант: cgi-скрипт, который поднимает с диска файлики flow-tools с NetFlow, переводит в текстовый формат и отсылает клиенту по http. Пусть хоть гиг логов съест :)

Posted

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

Posted

Не надо приспосабливать СУБД там, где должны работать другие инструменты.

Складывать потоки без обработки в БД только для детализации статистики - это большая глупость. Пишите файлами на винт, по запросу клиента применяйте grep. Это будет однозначно быстрее, чем все вышеперечисленные СУБД.

Posted
Не надо приспосабливать СУБД там, где должны работать другие инструменты.

Складывать потоки без обработки в БД только для детализации статистики - это большая глупость. Пишите файлами на винт, по запросу клиента применяйте grep. Это будет однозначно быстрее, чем все вышеперечисленные СУБД.

Yep. Но grep - не гламурно, рекомендую flow-tools!

Posted
Не надо приспосабливать СУБД там, где должны работать другие инструменты.

Складывать потоки без обработки в БД только для детализации статистики - это большая глупость. Пишите файлами на винт, по запросу клиента применяйте grep. Это будет однозначно быстрее, чем все вышеперечисленные СУБД.

 

Сомнительно что быстрее. Компактнее - да, но не быстрее. По крайней мере у меня греп работает медленнее. Оно кстати у меня еще и агрегируется. В этой же базе. И ротация таблиц/баз сделана, чтобы оно в архив отьезжало.

 

Зато я по этим сырым данным в любой момент могу сделать любую агрегацию. Не только потому что клиент просит, а для себя, тенденции посмотреть, аномалии выявить...

Posted

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

 

А в Оракле есть еще очень много вкусных вещей для такого хранения - партиционированные таблицы, например....

Posted
Пишите файлами на винт, по запросу клиента применяйте grep. Это будет однозначно быстрее, чем все вышеперечисленные СУБД.

У меня приличный обьём. греп не будет настолько быстро грепать как нужно.

Posted

Коллеги, это же какого размера должна быть БД, чтоб хранить NetFlow потока в 10 Терабайт/мес в БД в нежатом виде хотя бы с одного роутера хотя бы месяца за 3-4?!

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

 

И кстати, по flow-tool. Он использует вполне себе эффективную БД - файловую систему, для разбора логов по времени.

Это же может сделать любой другой коллектор, и grep (или другие средства, не суть важно) по этим файлам будет бегать вполне даже шустро. И если процессор сервера хорош, то считать и "прогрепить" жатый файл за 15 минут будет быстрее, чем поднять файл индексов всех записей за 3 месяца.

Posted
Коллеги, это же какого размера должна быть БД, чтоб хранить NetFlow потока в 10 Терабайт/мес в БД в нежатом виде хотя бы с одного роутера хотя бы месяца за 3-4?!

(Обьем переданых данных за месяц)/(средний размер сессии в байтах)*(размер записи в БД)*(количество месяцев)

Posted
У меня приличный обьём. греп не будет настолько быстро грепать как нужно.

Какие данные из потока используете (названия полей netflow) ?

Posted

rid

hid

ip_protocol_version

last_switched

first_switched

bytes

pkts

input_snmp

output_snmp

ipv4_src_addr

ipv4_dst_addr

prot tinyint(3)

src_tos

l4_src_port

l4_dst_port

tcp_flags

 

вторая

 

hid

version

system_uptime

unix_seconds

package_sequence

source_id

 

обычные две таблички netflow2mysql

есть способ проще?

Posted
Нетфлау кладётся в базу для того чтобы клиент мог у меня по клику в личном кабиненте подсмотреть детализацию с точностью до потока за любой промежуток времени (в разумных пределах)

Ну если нет смысла менять mysql на что-то другое то пусть работает дальше.

видимо объем трафика небольшой раз устраивает объем базы и скорость записи/выборки.

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

 

по вопросу хранения нетфлоу в мускуле - представим пакет UDP (или ICMP) размером 10-20 байт. теперь представим поток из этих пакетов 10 мбит (контра например какая-нить из 30-40 человек). каждый пакет - одна запись в таблицу. объем данных прошедший через сеть - 15 байт, объем данных прошедшик от коллектора к мускуль-серверу - 100-150 байт. при этом по 10 мбитам в секунду может проскочить грубо говоря 60000 пакетов, в мускуль-сервер за эту секунду зальется примерно 9 метров запросов (требуемая скорость гдето 65 мбит).

 

вопрос - а если канал будет не 10 мбит, а 1 гигабит? придется покупать десятигигабитные сетевухи и ведро ксеонов?

Posted
разрешать всем подряд незапланированные чуть ли не пиковые загрузки сервера

отнюдь не пиковые, да и не клацает кто попало просто так по кнопкам в личном кабинете.

Posted
отнюдь не пиковые, да и не клацает кто попало просто так по кнопкам в личном кабинете.

Просто скажите, сколько у вас пользователей и все вопросы отпадут. :)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.