Jump to content

Recommended Posts

Posted

Блин помогите с нетфлоу. Колектор работает нормально флоу валится в файлы - проблема с фильтрами.

Помогите с примером фильтра выдернуть статистику по определеному ип за определенное время.

Просто раньше такую статистику с билинга выдавали.

Posted

#!/usr/bin/perl -w
use strict;
if ($#ARGV == -1){
       print "Usage ./catdetails <netflow_file> <IP>\n";
exit 1;
}

my %count = ();
open (CMD, '/usr/bin/flow-cat '."$ARGV[0]".' | /usr/bin/flow-export -f2|') or die "Can't open flows: $!\n";
           while (<CMD>){
                       my @array = (split /,/, $_);
                                   if ($array[11] eq $ARGV[1]) {
                                               #11dst, 10 -src
                                               my $time = localtime($array[0]);
                                               print "$time\t$array[10]\t\t$array[5]\tdstport\t$array[15]\n";
                                               $count{$array[10]} += $array[5];
                                   }
           }
print "Detail statistic by source in bits:\n";
foreach(sort {$count{$b} <=> $count{$a}} keys %count) {
           print "$_\t\t$count{$_}\n";
}

 

Как пример привожу свой скрипт по вытаскиванию детальной статистики.

Posted

не спец в перле но не работает

/1.prl /var/log/flow/2011/2011-05/2011-05-09/ft-v05.2011-05-09.000001+0800 *.*.*.*

/usr/bin/flow-export: Exported 211235 records

Detail statistic by source in bits:

Posted

не спец в перле но не работает

/1.prl /var/log/flow/2011/2011-05/2011-05-09/ft-v05.2011-05-09.000001+0800 *.*.*.*

/usr/bin/flow-export: Exported 211235 records

Detail statistic by source in bits:

 

К сожалению я за вас не могу разбираться. Скрипт рабочий, проверить пути и все должно работать, так как сам его использовал на нескольких системах.

 

Вы уверены что скрипт вам выдал ошибку? А не просто отработал и не найдя нужно информации вывел вам пустую строку?

Posted

не спец в перле но не работает

/1.prl /var/log/flow/2011/2011-05/2011-05-09/ft-v05.2011-05-09.000001+0800 *.*.*.*

/usr/bin/flow-export: Exported 211235 records

Detail statistic by source in bits:

 

К сожалению я за вас не могу разбираться. Скрипт рабочий, проверить пути и все должно работать, так как сам его использовал на нескольких системах.

 

Вы уверены что скрипт вам выдал ошибку? А не просто отработал и не найдя нужно информации вывел вам пустую строку?

Что выдал я написал - то есть ничего

Posted

Мой вариант: http://sources.homelink.ru/flowfilter/flowfilter.pl.txt

Подразумевается, что свежие ft-файлы и старые архивы, перепакованные в bz2, лежат в /var/db/netflow.

Большое спасибо Илья отработало все на ура великолепно - сейчас чуть помаракую как юникстайм в нормальное время перевести.

Posted (edited)

Может проще всё в базу писать сразу постгреса или мускула? от туда и выборку делать проще сукильными запросами. Да и в том же мускуле есть тип таблиц arh.

Edited by gavru
Posted

Может проще всё в базу писать сразу постгреса или мускула? от туда и выборку делать проще сукильными запросами. Да и в том же мускуле есть тип таблиц arh.

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

Posted (edited)

А если применить агрегацию например суточную по посещённым ресурсам и группировать их со сложением трафа? Думаю после этого гиг в сутки превратится в метров 200.

Хозяин барин, я просто предложил.

Edited by gavru
Posted

Да и в том же мускуле есть тип таблиц arh.

Вообще-то archive.

В любом случае, затея сомнительная.

flow-tools-ng и nfdump пишут в файлы, то есть для прямой записи в sql пришлось бы либо дописывать их, либо сочинять собственный сборщик.

Ядро SQL создаст лишнюю нагрузку.

Данные нужны редко - хранить их в базе незачем.

 

А если применить агрегацию например суточную по посещённым ресурсам и группировать их со сложением трафа?

Это не может служить заменой детальной статистике. По договору нужно хранить сырые flows.

Для биллинга такие кучерявые отчёты тоже ни к чему, для него достаточно записей tstamp-userid-trafclass-sumbytes каждые несколько минут.

Posted
flow-tools-ng и nfdump пишут в файлы, то есть для прямой записи в sql пришлось бы либо дописывать их, либо сочинять собственный сборщик.

Ядро SQL создаст лишнюю нагрузку.

Данные нужны редко - хранить их в базе незачем

 

Ну в какой то степени согласен, перелопачивать готовые не имеет смысла.

Posted

А если применить агрегацию например суточную по посещённым ресурсам и группировать их со сложением трафа? Думаю после этого гиг в сутки превратится в метров 200.

Хозяин барин, я просто предложил.

А прокурору как отдавать ? Им желательно поточнее.

Posted

как юникстайм в нормальное время перевести.

http://perldoc.perl.org/POSIX.html -- strftime

я в перле вообще почти никак, но мне показалось там тупо с вывода flow-export строка пишется на прямую в файл

как ее там разобрать парсером я хз. Сможете помочь ?

Posted

я в перле вообще почти никак, но мне показалось там тупо с вывода flow-export строка пишется на прямую в файл

как ее там разобрать парсером я хз.

Примерно так:

perl -MPOSIX -ne 'chomp my @w = split(/,/, $_); $w[0] = POSIX::strftime("%Y-%m-%d %H:%M:%S", localtime($w[0])); print join(",", @w), "\n"' < /tmp/detailed_*.txt

Posted (edited)

Яснее не стало =) Но спасибо за помощь буду рыть в ту сторону

next unless /^\d/;

print $_;

my @w = split(/,/, $_); $w[0] = strftime("%Y-%m-%d %H:%M:%S", localtime($w[0])); print join(",", @w), "\n";

#print R $_;

$nlines++;

 

Кусок принял такой вид но есть ошибка Undefined subroutine &main::strftime called at ./flowfilter.pl.txt line 88, <F> line 2.

При использовании use POSIX; Вылетает ошибка Can't use string ("/tmp/filew8Krjr") as a symbol ref while "strict refs" in use at. Еще раз я в перле 0 =)

Edited by Gunner
Posted

А если применить агрегацию например суточную по посещённым ресурсам и группировать их со сложением трафа? Думаю после этого гиг в сутки превратится в метров 200.

Хозяин барин, я просто предложил.

А прокурору как отдавать ? Им желательно поточнее.

пофиг как отдавать, нет конкретного описания.

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

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 и с Политикой конфиденциальности.