Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Feb 2007 10:20:19 +0100
From:      Anders Nordby <anders@FreeBSD.org>
To:        Jorge Evangelista <netsecuredata@gmail.com>
Cc:        freebsd-isp@FreeBSD.org
Subject:   Re: Per virtualhost bandwidth/hitrate statistics for Apache
Message-ID:  <20070212092019.GB8025@fupp.net>
In-Reply-To: <de85c96f0702070733k5ec7e729t3a30b21dfab5dcca@mail.gmail.com>
References:  <20070207130614.GA15328@fupp.net> <200702070934.34074.lists@jnielsen.net> <de85c96f0702070733k5ec7e729t3a30b21dfab5dcca@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,

Thanks. But this is to limit bandwidth. I didn't want that. I just want
to measure how much bandwidth is used (and other things), per virtual
host, in real time.

On Wed, Feb 07, 2007 at 10:33:06AM -0500, Jorge Evangelista wrote:
> A days ago I have configured a web server with bandwidth manager
> (module bwmod) compile with apache web server. It works fine. You
> could try install  this module http://bwmod.sourceforge.net/index.html
> and test with your virtualhosts.
> 
> Here,  my small guide install, it made in spanish.
> 
> Instalando el bwmod, primero comentar las lineas mencionadas abajo
> 
> vi mod_bw.c
> 
> /* Compatibility for APR < 1 */
> #if (APR_MAJOR_VERSION >= 1)
>    #define apr_atomic_inc32 apr_atomic_inc
>    #define apr_atomic_dec32 apr_atomic_dec
>    #define apr_atomic_add32 apr_atomic_add
>    #define apr_atomic_cas32 apr_atomic_cas
>    #define apr_atomic_set32 apr_atomic_set
> #endif
> 
> 
> Compilar con el siguiente comando
> 
> /usr/local/apache2/bin/apxs  -i -a -c mod_bw.c
> 
> 
> Habilitar en apache   httpd.conf
> 
> BandWidthModule On
> 
> 
> Para bandwitdh ilimitado a una IP
> BandWidth 200.168.190.6  0
> 
> 
> Para colocar  el bandwidth a los virtual hosts
> 
> Limit al internal users to 1000 kb/s with a minimum of 50kb/s
> 
>    <Virtualhost *>
>      BandwidthModule On
>      ForceBandWidthModule On
>      Bandwidth all 1024000
>      MinBandwidth all 50000
>      LargeFileLimit * 500 50000
>      Servername www.example.com
>    </Virtualhost>
> 
>    Limit every user to a max of 10Kb/s on a vhost :
> 
>    <Virtualhost *>
>      BandwidthModule On
>      ForceBandWidthModule On
>      Bandwidth all 10240
>      MinBandwidth all -1
>      Servername www.example.com
>    </Virtualhost>
> 
> 
>   Examples :
>              BandWidth    all 102400
>              MinBandWidth all 50000
> 
>             The example above, will have a top speed of 100kb for the 1ยบ
>            client. If more clients come, it will be splitted accordingly but
>            everyone will have at least 50kb (even if you have 50 clients)
> 
>              BandWidth    all 50000
>              MinBandWidth all -1
> 
>             This example, makes everyone have 50kb as top speed.
> 
> 
> 
> 
> 
> 
> 
> On 2/7/07, John Nielsen <lists@jnielsen.net> wrote:
> >On Wednesday 07 February 2007 08:06, Anders Nordby wrote:
> >> I just wonder if anyone has any good hints about software to use (Apache
> >> module?) for fetching per-virtualhost statistics about bandwidth usage
> >> and hitrates (hits per second) from Apache. I've been using mod_watch
> >> for a while, to graph this with MRTG, but it's discontinued it seems.
> >>
> >> What do people use to measure statistics per virtualhost?
> >
> >I use Apache's logrotate and a separate log directory for each 
> >virtualhost. I
> >have a script that runs from cron every day that runs the logs through
> >webalizer and then cleans up logs older than a specified number of days. In
> >fact (since I'm feeling like sharing), here it is:
> >
> >#!/bin/sh
> >for path in `cat /usr/local/scripts/logpaths.txt` ; do
> >       for log in `find ${path} -name access\* | sort -n` ; do
> >               if [ -r ${path}/hostname.txt ]; then
> >                       host=`cat ${path}/hostname.txt`
> >                       /usr/local/bin/webalizer -Q -p -n ${host} \
> >                       -o ${path} ${log}
> >               else
> >                       /usr/local/bin/webalizer -Q -p -o ${path} ${log}
> >               fi
> >       done
> >       find ${path} -name \*.log\* ! -newermt '1 month ago' -delete
> >done
> >
> >The script depends on the existence of a "logpaths.txt" file, which 
> >contains a
> >list of directories to scan, one per line. It also supports an
> >optional "hostname.txt" for each directory so webalizer can use the right 
> >one
> >in the title of its reports. Webalizer output is stored in the log 
> >directory
> >but that could easily be changed.
> >
> >The output is plain HTML, so you can publish it on a (presumably private)
> >webserver somewhere. Since I give certain clients access to their reports I
> >use webmin for this. However I just point webmin to a dummy file within 
> >each
> >log directory and don't let it actually run webalizer (since my script
> >already takes care of that). So just the "View report" button works, but it
> >gets the job done.
> >
> >JN
> >_______________________________________________
> >freebsd-isp@freebsd.org mailing list
> >http://lists.freebsd.org/mailman/listinfo/freebsd-isp
> >To unsubscribe, send any mail to "freebsd-isp-unsubscribe@freebsd.org"
> >
> 
> 
> -- 
> "The network is the computer"
> _______________________________________________
> freebsd-isp@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-isp
> To unsubscribe, send any mail to "freebsd-isp-unsubscribe@freebsd.org"


-- 
Anders.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070212092019.GB8025>