Перейти к содержимому
Калькуляторы

flow-tools

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

#!/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";
}

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

/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:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

/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:

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

/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:

 

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Изменено пользователем gavru

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Изменено пользователем gavru

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Вообще-то archive.

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

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

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

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

 

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

я в перле вообще почти никак, но мне показалось там тупо с вывода 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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 =)

Изменено пользователем Gunner

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.