powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PERL) Вложенные хеши
15 сообщений из 15, страница 1 из 1
(PERL) Вложенные хеши
    #33373862
Metaller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишется парсилка netflow-логов. Для повышения быстродействия возникла мысль во время парсинга загнать данные в память, а потом уже оптом в sql.
Соответственно, структура данных нужна приблизительно такая:
$traffic = {$ip} {$time} [in, out].

Заполняется сейчас так: $traffic {$src_ip}{$stamp}[1] += $bytes;

Собственно, интересует правильно ли делаю (опыт работы с перлом не так уж велик) и как пробежать потом по всей этой структуре чтоб сформировать запросы и отправить их на sql-сервер.
...
Рейтинг: 0 / 0
(PERL) Вложенные хеши
    #33373936
g613
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на счет быстродействия помоему ты погарячился...

по поводу пробежаться:
Код: plaintext
1.
2.
3.
4.
5.
6.
foreach my $ip ( keys %traffic } )  {
 foreach my $time_stamp  ( sort { $a <=> $b } keys %{ $traffic{$ip} } ) {
   printf "insert bla-bla-bla values( .... )\n",
       $ip, $time_stamp, $traffic{$ip}->{$time_stamp}->[ 0 ],  $traffic{$ip}->{$time_stamp}->[ 1 ];
 }
}

P.S.
для работы с БД лучше пользовать трейсхолы


Встечный вопрос а чем ты траффик собираеш ? у меня вот последние три дня запарки с этим...
...
Рейтинг: 0 / 0
(PERL) Вложенные хеши
    #33373959
Фотография lissyara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 g613
а ты чем? :)
Любопытство, опять таки не праздное, вчера довоевал с перлом и net-snmp, щас
всё работает.


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
(PERL) Вложенные хеши
    #33373971
Metaller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собираю softflowd + flow-tools.

А если надо с кошек собирать, то можно посмотреть в сторону http://netacad.kiev.ua/flowc, правда, с помощью этой штуки трафик собирать с обычных тазиков можно только через ng_netflow, остальное не подходит.
...
Рейтинг: 0 / 0
(PERL) Вложенные хеши
    #33373977
Metaller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что касается быстродействия - могу поспорить. Чем для каждого flow дергать базу, лучше собрать трафик со всех клиентских потоков и запихнуть один раз.
...
Рейтинг: 0 / 0
(PERL) Вложенные хеши
    #33373985
g613
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lissyara
2 g613
а ты чем? :)
Любопытство, опять таки не праздное, вчера довоевал с перлом и net-snmp, щас
всё работает.


[offtop]
деньги комерческой софтиной, а для детализации ( с ип адресами и пр ) все нетфлов пакеты проксируются в в flow-tools... Извращение сие не от нефиг делать - комерческий софт работает с БД sybase, суточный трафик для обсчета ~ 100 гигов, соотвественно БД несколько встает раком от такой нагрузки. flow-tools пишет в файлы своем внутреннем формате. Разбирается и перлом в том числе тоже...
Одно плохо чото я ни как не найду где у него агрегация настраивается и настраивается ли вообще... :(
[/offtop]
...
Рейтинг: 0 / 0
(PERL) Вложенные хеши
    #33373993
g613
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MetallerА что касается быстродействия - могу поспорить. Чем для каждого flow дергать базу, лучше собрать трафик со всех клиентских потоков и запихнуть один раз.

Как я уже говорил я вообще отказался от этого занятия как пихание этой статистики в БД... А у тебя время как из flow-tools парсится ?
...
Рейтинг: 0 / 0
(PERL) Вложенные хеши
    #33374014
Metaller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
g613
Как я уже говорил я вообще отказался от этого занятия как пихание этой статистики в БД... А у тебя время как из flow-tools парсится ?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Start             End               Sif   SrcIPaddress    SrcP  DIf   DstIPaddress    DstP    P Fl Pkts       Octets

 1103 . 15 : 41 : 20 . 698   1103 . 15 : 41 : 48 . 703   0       192 . 168 . 21 . 5      2571    0       194 . 44 . 218 . 103    80      6     6    122          13145 


while (chomp($rr=<LOG>))
{
$rr=~m/^(.*?)\s.*?(\d+\.\d+\.\d+\.\d+)\s.*?\s(\d+\.\d+\.\d+\.\d+)\s.*?\s(\d+)\s+$/;

$start=$ 1 ;
$start=~/^(\d\d\d\d)\.(\d\d).*?/;
my $time1= strftime "%Y", localtime;
my $stamp = $time1.$ 1 .$ 2 ;

}

...
Рейтинг: 0 / 0
(PERL) Вложенные хеши
    #33374082
nik2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Metaller g613
Как я уже говорил я вообще отказался от этого занятия как пихание этой статистики в БД... А у тебя время как из flow-tools парсится ?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Start             End               Sif   SrcIPaddress    SrcP  DIf   DstIPaddress    DstP    P Fl Pkts       Octets

 1103 . 15 : 41 : 20 . 698   1103 . 15 : 41 : 48 . 703   0       192 . 168 . 21 . 5      2571    0       194 . 44 . 218 . 103    80      6     6    122          13145 


while (chomp($rr=<LOG>))
{
$rr=~m/^(.*?)\s.*?(\d+\.\d+\.\d+\.\d+)\s.*?\s(\d+\.\d+\.\d+\.\d+)\s.*?\s(\d+)\s+$/;

$start=$ 1 ;
$start=~/^(\d\d\d\d)\.(\d\d).*?/;
my $time1= strftime "%Y", localtime;
my $stamp = $time1.$ 1 .$ 2 ;

}



у меня несколько по другому:
1 - `split /\s+/, $rr`- работает быстрее чем регэксп.
2 - год вполне можно получить `1900+(localtime)[5]`

вообще меня интересовало это больше с `политической` точки зрения...

P.S.
а агрегация в час не слишком много ?
...
Рейтинг: 0 / 0
(PERL) Вложенные хеши
    #33374103
Metaller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nik2
у меня несколько по другому:
1 - `split /\s+/, $rr`- работает быстрее чем регэксп.
2 - год вполне можно получить `1900+(localtime)[5]`

вообще меня интересовало это больше с `политической` точки зрения...

P.S.
а агрегация в час не слишком много ?

1 - а потом так же $1, $2 и т.д.?
2 - тут откровенное спасибо, идея хороша. :-)

что касается агрегации в час... это ж не просто статистика а биллинг будет, а клиенту хочется видеть почасово как правило.
...
Рейтинг: 0 / 0
(PERL) Вложенные хеши
    #33374122
g613
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Metaller nik2
у меня несколько по другому:
1 - `split /\s+/, $rr`- работает быстрее чем регэксп.
2 - год вполне можно получить `1900+(localtime)[5]`

вообще меня интересовало это больше с `политической` точки зрения...

P.S.
а агрегация в час не слишком много ?

1 - а потом так же $1, $2 и т.д.?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
chomp $rr;
@chunks = split /\s+/, $rr;
# start time
print $chunks[ 0 ];
# octets 
print $chunks[ 11 ];
...

2 - тут откровенное спасибо, идея хороша. :-)

что касается агрегации в час... это ж не просто статистика а биллинг будет, а клиенту хочется видеть почасово как правило.

хорошо тебе с почасовой... у меня вот поминутно хотят...
...
Рейтинг: 0 / 0
(PERL) Вложенные хеши
    #33374132
Metaller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
g613
хорошо тебе с почасовой... у меня вот поминутно хотят...

А для поминутной по ходу парсинга аппендятся файлы вида $ip.txt. Кому будет надо - вышлю на почту. Ну или из веб-морды покажу. :-))
...
Рейтинг: 0 / 0
(PERL) Вложенные хеши
    #33374137
g613
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Metaller g613
хорошо тебе с почасовой... у меня вот поминутно хотят...

А для поминутной по ходу парсинга аппендятся файлы вида $ip.txt. Кому будет надо - вышлю на почту. Ну или из веб-морды покажу. :-))

а народу то сколько у тебя ?
...
Рейтинг: 0 / 0
(PERL) Вложенные хеши
    #33374145
Фотография lissyara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня поминутно... но - народу - всего ничего. и траффика по сравнению с
вашими масштабами копейки.....


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
(PERL) Вложенные хеши
    #33374160
Metaller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
g613
а народу то сколько у тебя ?

Около 500 пока что. Начальство обещает под новый биллинг хороший тазик дать, так что должно быть нормально. Ну и newsyslog скажем помесячно с gzip'ом.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PERL) Вложенные хеши
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]