PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Trafficauswertung am Switch



Phimay
08.09.06, 21:12
Hallo,

ich würde gerne den Traffic überwachen der über einen Switch geht. Als kleines Testobjekt hab ich hier einen Cisco Catalyst 1900. Kann diesen auch mit SNMP abfragen.
Beim googeln bin ich auf mrtg gestoßen.
mrtg zeigt mir aber scheinbar nur kb/s also das was momentan über den Port geht.
Was ich jedoch gern hätte ist etwas wie im August sind auf Port 22 insgesamt 5GB Traffic entstanden....

ist sowas möglich? Ich vermute ja nur wie? :-)

Gruß
Phil

marce
08.09.06, 22:54
AFAIK dürfte das nicht gehen - der Switch analysiert die Pakete ja nicht auf derart hoher Protokollebene - du könntest maximal einen Port als Sniffing-Port definieren und dort alles mitlesen und analysieren lassen...

marcdevil
08.09.06, 23:23
Was ich jedoch gern hätte ist etwas wie im August sind auf Port 22 insgesamt 5GB Traffic entstanden....

ist sowas möglich? Ich vermute ja nur wie? :-)

auch mit mrtg, brauchst ein volumenscript, zB. das hier: http://www.kordecki.de/mrtg/src.html


mrtg.cfg
ACHTUNG: der Name für den Volumeneintrag muss der Name des Eintrags der Bandbreite mit _v sein, also z.B. localhost_3 -> localhost_3_v

### Volume Interface 3 ###

Target[localhost_3_v]: `/usr/local/bin/mrtg_vol.pl /usr/local/httpd/data/default/mrtg localhost_3`
Title[localhost_3_v]: Traffic Analysis for DSL -- atom
MaxBytes[localhost_3_v]: 131072
Options[localhost_3_v]: gauge,absolute,growright,nopercent,noinfo,integer
kilo[localhost_3_v]: 1024
kMG[localhost_3_v]: MB,GB,TB
SetEnv[localhost_3_v]: MRTG_INT_IP="DSL Volume" MRTG_INT_DESCR="MB"
ShortLegend[localhost_3_v]:
YLegend[localhost_3_v]: Volumen
PageTop[localhost_3_v]: ...



mrtg_vol.pl

Das Script bekommt als Parameter den Pfad auf die MRTG-Logfiles und das Interface, für das die Volumenverechnung gemacht werden soll.
Das Script geht davon aus, das die Einheit in den MRTG-Logfiles Bytes ist, sollten es evtl. andere Einheiten sein, muß noch ein entsprechender Faktor eingebaut werden.
Hier kann mein mrtg_vol.pl runtergeladen werden.

#!/usr/bin/perl

$PATH=$ARGV[0];
$LOGFILE=$ARGV[1];

$IFILE="$PATH/${LOGFILE}.log";
$OFILE="$PATH/${LOGFILE}_v.log";

open IF,$IFILE or die "Kann $IFILE nicht zum lesen oeffnen: $!\n";
$sum=<IF>;
@data=<IF>;
close IF;

$time=0;
foreach $line (reverse @data) {
$lasttime=$time;
($time,$in,$out,$maxin,$maxout)=split / /,$line;
$lasttime=$time-1 if ($lasttime==0) ;
$lastmon=$mon;
($sec,$min,$std,$mtag,$mon,$year,$yday,$isdst)=loc altime($time);
if ($mon != $lastmon) {
$insum=0;
$outsum=0;
}
$delta=$time-$lasttime;
$insum+=int(($in*$delta)/(1024*1024));
$outsum+=int(($out*$delta)/(1024*1024));
push @outline,"$time $insum $outsum 0 0\n";
}

open OF,">$OFILE" or die "Kann $OFILE nicht zum schreiben oeffnen: $!\n";
print OF $sum;
foreach $line (reverse @outline) {
print OF $line;
}
close OF;

print "$insum\n$outsum\n".localtime(time())."\nVolumen\n"