[olug] Bandwidth Metering
Mike Peterson Charles
mpeterson at mail.charlesfurniture.com
Tue Jun 6 02:22:13 UTC 2006
What distro are you using for this ""lil linux router that could"" ?
How many physical network cards are you using?
Are the IP addresses being passed thru to servers?
-----Original Message-----
From: olug-bounces at olug.org [mailto:olug-bounces at olug.org] On Behalf Of
Charles Bird
Sent: Monday, June 05, 2006 6:59 PM
To: Omaha Linux User Group
Subject: Re: [olug] Bandwidth Metering
aha, I was thinking about the same idea as Sam Tetherow has stated, but
didnt know how to make it work.
But ya, basiclly i would like to have a record of usage for each IP address
(currently 16 soon 32)
yes route goes thru the "lil linux router that could"
and into Proliant hell. :)
Thankyou guys for the input.
> ----- Original Message -----
> From: "Sam Tetherow" <tetherow at shwisp.net>
> To: "Omaha Linux User Group" <olug at olug.org>
> Subject: Re: [olug] Bandwidth Metering
> Date: Mon, 05 Jun 2006 18:28:07 -0500
>
>
> This may not be the most elegant solution, but it's worked for me.
> You'll want to rotate the log files every once in a while or date them
> by setting $IPACCT_DIR to something meaningful like YYYYMM or YYYYMMDD.
>
> Hope it helps.
>
> For each IP to be monitored:
>
> iptables -A IPACCT -i $EXT -d IPADDR
> iptables -A IPACCT -o $EXT -s IPADDR
>
> Where EXT is the external interface and IPADDR is the ip address to be
> monitored
>
> Every 5 minutes run:
> #!/usr/bin/perl
> # This is a simple script that runs every 5 minutes and records how many
> bytes have
> # been sent and received foreach IP
> # The output is appended to $IPACCT_DIR/$IPADDRESS
>
> $IPACCT_DIR="/var/log/ipacct";
>
> open(STREAM, '/sbin/iptables -L IPACCT -n -x -v -Z |');
> $ts=time();
> while(<STREAM>) {
> if
> (/^\s*(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s*$/)
{
> # Didn't use all the values, but you might want them.
> my ($pkt, $bytes, $proto, $opt, $in, $out, $source, $destination)=($1,
> $2, $3, $4, $5, $6, $7, $8);
> if ($source eq "0.0.0.0/0") {
> $downstream{$destination}=$bytes;
> }
> if ($destination eq "0.0.0.0/0") {
> $upstream{$source}=$bytes;
> }
> }
> }
> foreach $ip (keys %downstream) {
> # print "$ip\t$ts\t$downstream{$ip}/$upstream{$ip}\n";
> open(LOG, ">>$IPACCT_DIR/$ip");
> print LOG "$ts\t$downstream{$ip}\t$upstream{$ip}\n";
> close(LOG);
> }
>
>
> Charles Bird wrote:
> > anyone know of a good method of measuring bandwidth usage per IP
> > within a given time frame?
> >
> > Wondering who has done this and if there are recommendations from
whomever.
> > I am assuming this would be a lil linux router task. I am not
> > looking to shape or limit, just monitor usage per IP.
> > Thx in advance.
> >
> >
> >
>
>
> --
> Sam Tetherow
> Sandhills Wireless
>
> _______________________________________________
> OLUG mailing list
> OLUG at olug.org
> http://lists.olug.org/mailman/listinfo/olug
>
--
_______________________________________________
Surf the Web in a faster, safer and easier way:
Download Opera 8 at http://www.opera.com
Powered by Outblaze
_______________________________________________
OLUG mailing list
OLUG at olug.org
http://lists.olug.org/mailman/listinfo/olug
More information about the OLUG
mailing list