Просто положите raw_fd_script в UTM5/bin/Scorp писал(а):Извините за ламерский вопрос.
А где в UTM5 прописать настройки на файлы из утилиты Magnum72.
check_ds
raw_fd_script
Не хранится детализированный трафик
Не хотел постить новую тему т.к. вопрос относительно скрипта (raw_fd_script) для детализации трафика .
Имеется установленная система FreeBSD 6.3-RELEASE i386, на ней только ядро utm5-2.1.006. Апач и мускуль на другой системе. Хотел воспользоваться скриптом, но эффекта никакого. В top`е запуск сприпта не видно.
Сделал все как написано в readme.txt . Даже прописал в настройках raw_fd_process_script, что тоже не дало результата.
Скрипт (raw_fd_script) подправил под себя
Ошибок в журналах нет.
Переменная $home-это где логи будут храниться?
Подскажите в чем может быть проблема?
Заранее благодарен.
Имеется установленная система FreeBSD 6.3-RELEASE i386, на ней только ядро utm5-2.1.006. Апач и мускуль на другой системе. Хотел воспользоваться скриптом, но эффекта никакого. В top`е запуск сприпта не видно.
Сделал все как написано в readme.txt . Даже прописал в настройках raw_fd_process_script, что тоже не дало результата.
Скрипт (raw_fd_script) подправил под себя
Код: Выделить всё
#!/usr/bin/perl
use Compress::Zlib;
sub loger;
$fileUTM = shift;
$home = "/stat/";
$logdir = "/var/log";
$log = $logdir."/ds.log";
opendir( DIRHANDLE, $logdir ) || die "Mount ERROR!";
if ( $fileUTM eq "" ) {
loger "No parametr!", "ERROR";
}
loger "$fileUTM", "START";
$size = ( stat( $fileUTM ) )[7];
if ( $size % 76 != 0 ) {
loger "Error UTM file!", "ERROR";
}
$rec = $size/76;
loger "Size: $size Record: $rec", "INFO";
open ( FH, "< $fileUTM" ) or loger " Error open file $fileUTM", "ERROR";
for ( $i=1; $i<=$rec; $i++ ) {
read ( FH, $t, 4 ); # 1-4
read ( FH, $src_ip, 4 ); # 5-8
read ( FH, $dst_ip, 4 ); # 9-12
read ( FH, $t, 8 ); # 13-20
read ( FH, $packets, 4 ); # 21-24
read ( FH, $bytes, 4 ); # 25-28
read ( FH, $time1, 4 ); # 29-32
read ( FH, $time2, 4 ); # 33-36
read ( FH, $src_port, 2 ); # 37-38
read ( FH, $dst_port, 2 ); # 39-40
read ( FH, $t, 16 ); # 41-56
read ( FH, $account_id, 4 ); # 57-60
read ( FH, $t, 4 ); # 61-64
read ( FH, $t_class, 4 ); # 65-68
read ( FH, $timestamp, 4 ); # 69-72
read ( FH, $t, 4 ); # 73-76
$tc = unpack ( "%32I" , $t_class );
$account_id = unpack ( "%32I" , $account_id );
if ( $tc == 0 ) {
$account_id = "a";
}
$t_class = pack ( "S" , $tc );
@time = localtime( unpack ( "%32I" , $timestamp ) );
$dirs=( $time[5]+1900 )."-".sprintf( "%02d", $time[4]+1 );
# 4 4 4 4 2 2 2 4 = 26
$arr{$account_id}{$dirs} .= "$src_ip$dst_ip$packets$bytes$src_port$dst_port$t_class$timestamp";
}
close FH;
$i=0;
foreach $k ( keys %arr ) {
foreach $d ( keys %{$arr{$k}} ) {
$dir = $home.$d;
opendir( DIRHANDLE, $dir ) || mkdir( $dir, 0755 );
open FH, ">>$dir/$k.ds.gz" or loger " Error open file $home/$k.utm\n", "ERROR";
print FH Compress::Zlib::memGzip( $arr{$k}{$d} );
close FH;
$i++;
}
}
loger "account: $i", "OK";
exit 0;
sub loger {
$mess = shift;
$error= shift;
@time = localtime();
$t = ( $time[5]+1900 ) . "-" . sprintf( "%02d", $time[4]+1 ) . "-" . sprintf( "%02d", $time[3] ) . " $time[2]:$time[1]:$time[0]";
open ( FH, ">> $log" );
print FH "$error: $t\n";
print FH "$mess\n";
close FH;
if ( $error eq "ERROR" )
{
exit 0;
}
}
Переменная $home-это где логи будут храниться?
Подскажите в чем может быть проблема?
Заранее благодарен.
можно подсказать, как правильно запустить unpack-ds, так понимаю синтаксис команды неправилен?
Код: Выделить всё
/netup/utm5/bin/unpack-ds /mnt/detalka/2010-08/4.ds.gz
Error open fole /mnt/detalka/2010-08/4.ds.gz at /netup/utm5/bin/unpack-ds line 9.
подбрал таки синтаксис:
спасибо за утилиту и все таки правилен ли синтакис, или еще есть какие варианты?
Код: Выделить всё
/netup/utm5/bin/unpack-ds /mnt/detalka/2010-08/4.ds.gz 4 | gzip > 4.txt.gz