nuclearcat Опубликовано 9 августа, 2017 · Жалоба Кто-то делал "postprocessing" для netflow архивов? Я запилил на C++, сижу пытаюсь сделать кое-какой статистический анализ(пытаюсь создать статистику по потребителям), но обработка(в основном, но не так уж значительно - время уходит на выдергивание ip в username) - 40 минут на миллиард записей. Интересно если у кого-то был схожий опыт. Формат - nfdump+lzo Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
snvoronkov Опубликовано 10 августа, 2017 · Жалоба Формат - nfdump+lzo Используем flowtools. Тоже с компрессией. Самописный обработчик. Классифицирует поток по IP, суммирует и кладет в базу. Обрабатывается примерно на порядок быстрее. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
nuclearcat Опубликовано 10 августа, 2017 · Жалоба Суперинтересно! :) А какова приблизительно плотность записи и дисковая подсистема? У меня например тестовые выборки: 12.843.236 записей заняли 600 мбайт в сжатом виде(несжатые 960Mb), т.е. около 46 байт на запись в сжатом виде и ~75 в несжатом(но там сохранен практически полный netflow), сжатие lzo Ориентировочно у меня 20 гиг на миллиард записей, обычный винт - упираюсь в i/o, если не делаю соответствие ip в username (у меня динамика и адреса у юзеров часто меняются из-за перебоев с электричеством). Т.е. вычитывание 20 гиг со скоростью 90Мбайт в секунду ~511 секунд, по идее быстрее чем 8.51 минут не получится, на порядок разогнатся никак не выходит(у меня). Ну и плюс т.к. данные в тот же момент пишутся, максимальная скорость чтения ощутимо ниже. Самая главная проблема в том, что надо сделать экономное решение, можно конечно напхать SSD и памяти 128 гиг, но это нерентабельно. Хотя скорость дисковой подсистемы прийдется поднимать. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
snvoronkov Опубликовано 10 августа, 2017 · Жалоба # Записей $ for arg in ft-*; do flow-header < $arg; done | awk '/capture flows:/{s+=$4}END{print s}' 684362648 # Объем $ du -sk . 15281288 # Время на чтение $ time cat * > /dev/null real 1m58.828s user 0m0.273s sys 0m14.857s Но оно обсчитывается тупо раз в 10 минут. Файло пока в кэше обсчет идет бодренько. :-) Да, HP Smart Array E200, 128 mBps Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
nuclearcat Опубликовано 10 августа, 2017 · Жалоба Ааа.. блин, в кеше. В кеше у меня вообще все со свистом влетает :) Но кстати надо попробовать сделать preload данных, похоже производительность сильно падает, т.к. программа ждет вычитывания очередного куска данных. У вас еще похоже записи покороче, ~22 байта на запись, но тут у меня неизбежное зло - надо хранить максимум данных из netflow. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ichthyandr Опубликовано 10 августа, 2017 · Жалоба Кто-то делал "postprocessing" для netflow архивов? Я запилил на C++, сижу пытаюсь сделать кое-какой статистический анализ(пытаюсь создать статистику по потребителям), но обработка(в основном, но не так уж значительно - время уходит на выдергивание ip в username) - 40 минут на миллиард записей. Интересно если у кого-то был схожий опыт. Формат - nfdump+lzo а смысл? Записи всеравно перебирать одну за другой приходится, на чем не пиши - быстрее не будет, ибо O(n) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
nuclearcat Опубликовано 10 августа, 2017 · Жалоба Ничуть, nfdump складывает файлами, я уже сделал thread pool по количеству процессоров (заодно подтянул SSD) - скорость выросла раз в 5. Если конечно алгоритм позволяет разбить обработку (у меня позволяет). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
edo Опубликовано 10 августа, 2017 · Жалоба яндексовский clickhouse не смотрели? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pavel.odintsov Опубликовано 10 августа, 2017 · Жалоба Угу, Clickhouse рулит. Мы его в FastNetMon Advanced используем :) Запросы за последние месяцы выполняются мгновенно :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
wed Опубликовано 11 августа, 2017 · Жалоба Я пока заливаю так: nfdump -x ch_netflow.sh cat ch_netflow.sh #!/bin/bash nfdump -R /backup/nfdump/$1 -q -o pipe | /bin/sed 's/|/ /g' | /usr/bin/awk '{print strftime ("%F", $2)","strftime ("%F %T", $2)","$10","$11","$15","$16","$24","$6}' | clickhouse-client --host 127.0.0.1 --query="INSERT INTO netflow FORMAT CSV" && nfdump -r /backup/nfdump/$1 -bzw /backup/nfdump/$1-agg && rm /backup/nfdump/$1 Так же находил проект https://github.com/filonov-a/simplenat Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Sonne Опубликовано 18 июня, 2018 · Жалоба Есть ли живые коллекторы Netflow в Clickhouse кроме упомянутого выше FastNetMon ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Sonne Опубликовано 18 июня, 2018 · Жалоба Нашел кое что современное. Enterprise level Netflow collector как они себя называют от Verizon: https://github.com/VerizonDigital/vflow Пишет в очередь сообщений Kafka, из которой можно лить в Clickhouse Похожая штука от ClowdFlare: https://github.com/cloudflare/goflow Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
wed Опубликовано 13 мая, 2021 · Жалоба Тестировали коллекторы? Есть что-то новое и современное? Задумался насчет перехода. Хочется усреднить хранение, сделать агрегацию до 5ти минут например... Использовать кодеки сжатия в столбцах. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
GrandPr1de Опубликовано 14 мая, 2021 · Жалоба pmacct умеет агрегировать по времени перед тем как отправить дальше Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
edo Опубликовано 17 мая, 2021 · Жалоба бывает ли на свитчах 10g+ «классический» netflow? мне для логирования действий компьютеров в локалке, иногда задним числом оказывается нужно найти с какого компа были (единичные) запросы к какому-нибудь сервису, sflow такое не «заметит». Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
jffulcrum Опубликовано 17 мая, 2021 · Жалоба 1 час назад, edo сказал: бывает ли на свитчах 10g+ «классический» netflow? Nexus. CPU в них хорошие, должны вытащить. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
roysbike Опубликовано 17 мая, 2021 · Жалоба ipt_netflow и Postgres с TimeslaceDB дает хорошие результаты. TSDB жмет до 10 раз. Чанки создаются на каждый день Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...