Jump to content
Калькуляторы

flow-report хочу странного?

Есть такой отчет (аггрегация по ip src/dst за час):

stat-report srcdst_haggr
    type ip-source/destination-address
    output
        format ascii
        sort +octets
        fields +first,+octets,-packets,-duration,-flows

stat-definition srcdst_haggr
    time-series 3600
    report srcdst_haggr

 

Получаю такую табличку:

# first,ip-source-address*,ip-destination-address*,octets

 

first в данном случае это время старта первого flow в файле, еще есть last это время последнего flow в файле.

Так вот, нужно получить максимальное и минимальное время для flow в пределах одной группировки по src/dst.

Если по русски, то это время когда был первый и последний запрос к определенному IP за час.

 

Если бы flow файл был таблицей в реляционке, то это бы выглядело примерно так:

SELECT src_ip, dst_ip, MIN(usecs) AS min_usecs,
MAX(usecs) AS max_usecs, SUM(octets) AS octets,
SUM(packets) AS packets, COUNT(*) AS flows
FROM flows_table
GROUP BY src_ip, dst_ip

 

Реально сделать это через отчеты?

Edited by SokolovS

Share this post


Link to post
Share on other sites

Попутно вопрос, кто как решает эту задачу. Вернее какими средствами? Может быть я не туда смотрю?

Share this post


Link to post
Share on other sites

может тупо flow-export куска в базу и там уже глумиться с отчетами?

Share this post


Link to post
Share on other sites

Да больно не хочется БД нагружать такой ерундой, в одном файле до 300-400 тыс. строк. Похоже, только патч :( т.к. в рассылке тоже ничего путного не посоветовали.

Share this post


Link to post
Share on other sites

для того же постгреса инсерт а затем выборка по таблице на пол миллиона записей - это не ахти какая нагрузка

или загоните в мускуль с типом таблицы MEMORY

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

думаю, это проще чем патчить flow-tools

Share this post


Link to post
Share on other sites

По первичному ключу конечно не нагрузка. А с группировкой всех записей по паре столбцов и подсчетом групповых функций тоже? По моему опыту это не так, проще работать не с СУБД в этом случае, либо с СУБД но не реляционками. Да и результат слишком большой получается чтобы его гонять по сети, а ставить только ради этого РСУБД на коллектор я конечно не буду.

 

Патчить просто потому, что это обязано быть в flow-report, т.е. там при группировке не подсчитываются MAX,MIN,AVG значения, а хотелось бы.

Edited by SokolovS

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this