<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>digg.it &#187; virtualhosting</title>
	<atom:link href="http://digg.it/tag/virtualhosting/feed/" rel="self" type="application/rss+xml" />
	<link>http://digg.it</link>
	<description>Se non lo scrivo lo dimentico. Se lo scrivo qualcuno me lo ricorderà. Appunti di ermeneutica digg.itale</description>
	<lastBuildDate>Thu, 08 Jul 2010 13:43:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Analizzare il traffico dei VirtualHost di Apache con Munin</title>
		<link>http://digg.it/2009/05/19/analizzare-il-traffico-dei-virtualhost-di-apache-con-munin/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=analizzare-il-traffico-dei-virtualhost-di-apache-con-munin</link>
		<comments>http://digg.it/2009/05/19/analizzare-il-traffico-dei-virtualhost-di-apache-con-munin/#comments</comments>
		<pubDate>Tue, 19 May 2009 08:51:07 +0000</pubDate>
		<dc:creator>bago</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[munin]]></category>
		<category><![CDATA[virtualhosting]]></category>

		<guid isPermaLink="false">http://digg.it/?p=228</guid>
		<description><![CDATA[Prerequisiti Questo articolo prevede l&#8217;uso di Fedora Core 10 con Apache 2 installato e funzionante. Altre distribuzioni potrebbero richiedere la compilazione dei pacchetti che invece su FC10 sono già disponibili. Installare CBand Fortunatamente anche per il modulo cband esiste un pacchetto precompilato per FC10 e quindi l&#8217;installazione è molto rapida: sh# yum install mod_cband Installato [...]
Nessun articolo simile]]></description>
			<content:encoded><![CDATA[<h3><a href="http://digg.it/wp-content/uploads/2009/05/apache-vhost-monitoring-munin-cband.gif"><img class="alignright size-medium wp-image-232" title="apache-vhost-monitoring-munin-cband" src="http://digg.it/wp-content/uploads/2009/05/apache-vhost-monitoring-munin-cband-300x191.gif" alt="apache-vhost-monitoring-munin-cband" width="300" height="191" /></a>Prerequisiti</h3>
<p>Questo articolo prevede l&#8217;uso di Fedora Core 10 con Apache 2 installato e funzionante. Altre distribuzioni potrebbero richiedere la compilazione dei pacchetti che invece su FC10 sono già disponibili.</p>
<h3>Installare CBand</h3>
<p>Fortunatamente anche per il modulo cband esiste un pacchetto precompilato per FC10 e quindi l&#8217;installazione è molto rapida:</p>
<pre>sh# yum install mod_cband</pre>
<p>Installato il mod_cband aggiungiamo alla definizione di ogni VirtualHost che vogliamo monitorare la configurazione di cband:</p>
<pre>&lt;IfModule mod_cband.c&gt;
CBandLimit 600G
CBandExceededURL http://www.google.com
CBandScoreboard /var/run/httpd/cband_scoreboard-#DOMINIO#
CBandPeriod 1W
&lt;/IfModule&gt;</pre>
<p>Da notare che ho impostato un limite di 600GB in 1 settimana, che nel mio caso corrisponde praticamente a non limitare, poichè il traffico è molto minore. E&#8217; però necessario imporre un limite (seppur irraggiungibile) per far si che cband conteggi l&#8217;utilizzo di banda.</p>
<p>Fatto questo per ogni VH possiamo testare che la configurazione sia corretta, riavviare apache e vedere la pagina delle statistiche di cband:</p>
<pre>sh# httpd -t
sh# service httpd restart</pre>
<p>Aprendo http://localhost/cband-status vedremo una pagina simile a questa:</p>
<div id="attachment_231" class="wp-caption aligncenter" style="width: 560px"><a href="http://digg.it/wp-content/uploads/2009/05/cband-status-page.png"><img class="size-large wp-image-231" title="Pannello statistiche cband" src="http://digg.it/wp-content/uploads/2009/05/cband-status-page-550x393.png" alt="La pagina delle statistiche di cband" width="550" height="393" /></a><p class="wp-caption-text">La pagina delle statistiche di cband</p></div>
<h3>Impostare Classi in Cband</h3>
<p>cband permette di definire fino a 3 classi di utenti in base all&#8217;IP. Con un po&#8217; di lavoro possiamo quindi identificare i bot dei motori di ricerca, magari tenendo separato google che ci interessa più degli altri, e le classi di IP locali, per evitare che alcune macchine che effettuano richieste automatizzate possano inficiare le statistiche.</p>
<p>Queste sono le mie configurazioni messe in /etc/httpd/conf.d/mod_cband.conf</p>
<pre>&lt;CBandClass googlebot_class&gt;
CBandClassDst 66.249.64/20
&lt;/CBandClass&gt;

&lt;CBandClass local_class&gt;
CBandClassDst XXX.XXX.XXX.XXX
CBandClassDst 127.0.0.1
&lt;/CBandClass&gt;

&lt;CBandClass bots_class&gt;
# Yanga
CBandClassDst 91.205.124.3/22
# Exabot
CBandClassDst 193.47.80.0/24
# Slurp
CBandClassDst 72.30.0.0/16
CBandClassDst 74.6.0.0/16
CBandClassDst 67.195.114.0/24
CBandClassDst 67.195.37.0/24
CBandClassDst 202.160.178.0/20
# Yandex
CBandClassDst 77.88.22.0/21
CBandClassDst 93.158.146.0/23
# Jyxobot
CBandClassDst 195.113.214.197
# DotBot
CBandClassDst 208.115.111.0/24
# libwww-perl
CBandClassDst 195.210.89.0/24
# MSN con referrer di ricerca
# CBandClassDst 65.55.104.0/21
# Twiceler
CBandClassDst 216.129.119.1/24
CBandClassDst 64.1.215.1/24
CBandClassDst 208.36.144.1/24
CBandClassDst 38.99.13.1/24
CBandClassDst 38.99.44.1/24
# AskJeeves
CBandClassDst 66.235.124.0/24
# majestic12
CBandClassDst 85.23.64.207
CBandClassDst 212.50.134.32
CBandClassDst 85.16.151.236
CBandClassDst 85.113.244.201
CBandClassDst 68.192.9.221
CBandClassDst 85.178.109.63
# Wikio Feed
CBandClassDst 84.55.184.91
# Turnitin
CBandClassDst 65.98.224.7
# MSN
# CBandClassDst 65.55.208.0/24
# CBandClassDst 65.55.51.0/24
CBandClassDst 65.55.0.0/16
CBandClassDst 219.142.53.0/24
# Gaisbot
CBandClassDst 122.147.76.64/28
CBandClassDst 210.66.69.128/26
CBandClassDst 219.87.182.128/27
CBandClassDst 220.228.152.64/27
&lt;/CBandClass&gt;</pre>
<p>In questo modo il calcolo del traffico avverrà separatamente per &#8220;classe&#8221;. Potremo conoscere il traffico degli &#8220;utenti normali&#8221; per differenza, sottraendo dal traffico totale le classi local_class, bots_class, googlebot_class.</p>
<h3>Installare Munin</h3>
<p>Munin è uno strumento di monitoring con un meccanismo di estendibilità a plugin estremamente semplice ed intuitivo (rispetto a MRTG) che permette di monitorare uno o più server.</p>
<p>Munin si divide infatti in due pacchetti: munin e munin-node.</p>
<p>Mentre munin-node è necessario in ogni server che intendiamo controllare il pacchetto munin serve solamente nella macchina che aggregherà le statistiche per creare dei grafici tramite il noto strumento rrdtool.</p>
<p>Su Fedora Core 10 installare munin è molto semplice:</p>
<pre>sh# yum install munin munin-node</pre>
<p>Una delle peculiarità di munin è l&#8217;autoconfigurazione: i plugin infatti possono verificare l&#8217;ambiente in cui sono installati per stabilire se sono &#8220;applicabili&#8221; all&#8217;ambiente o meno. Per verificare l&#8217;autoconfigurazione possiamo lanciare questo comando:</p>
<pre>sh# munin-node-configure --shell</pre>
<p>L&#8217;output di questo comando conterrà l&#8217;elenco dei comandi da impartire alla shell per installare i plugin che dichiarano la loro compatibilità.</p>
<h3>Creare un plugin munin per mod_cband</h3>
<p>A questo punto non ci resta che creare un plugin munin che legga la pagina /cband-status e permetta così a munin di visualizzare il grafico degli accessi diviso per vhost.</p>
<p>Questo è un esempio del plugin munin che richiede la pagina e ne estrae i dati:</p>
<pre>#!/bin/sh

URL="http://localhost/cband-status?refresh=15&amp;unit=K";
WGET=`which wget`;
WGET_FLAGS="-Yoff";

# Settigs required for autoconf
#%# family=manual
#%# capabilities=autoconf

if [ "$1" = "autoconf" ]; then
echo no
exit 0
fi

if [ "$1" = "config" ]; then

echo 'graph_title CBandwith Usage '
echo 'graph_args -l 0'
echo 'graph_category apache'
echo 'graph_info This graph shows per virtual host traffic from the cband module.'
echo 'graph_vlabel Kbytes per ${graph_period}'

wget -q $WGET_FLAGS "$URL" -O - | grep -A 3 http |grep "^&lt;td .*http" |sed -e 's^.*http://\(.*\)".*^\1^' | while read site; do
metricname=$(echo $site | sed -e 's/\.//g')
#echo $metricname $site
echo $metricname'.label '$site
echo $metricname'.info Traffic generated on '$site'.'
echo $metricname'.min 0'
echo $metricname'.type DERIVE'
done;
exit 0
fi

if [ -x $WGET ]; then
SITES=$(wget -q $WGET_FLAGS "$URL" -O - | grep -A 3 http |grep "^&lt;td.*http" |sed -e 's^.*http://\(.*\)".*^\1^')
$WGET -q $WGET_FLAGS "$URL" -O - | grep -A 3 http |grep "^&lt;td.*\(color\|http\)" | while read v; do
echo -n $v | sed -e 's^.*http://\(.*\)".*^\1^' | sed -e 's/\.//g'
echo -n '.value '
read v;
echo $v | sed -e 's^.*\/\(.*\)KB.*^\1^'
done;
exit 0
fi

exit 0</pre>
<p>E questo è il risultato:</p>
<div id="attachment_234" class="wp-caption aligncenter" style="width: 511px"><a href="http://digg.it/wp-content/uploads/2009/05/apache-vhost-monitoring-munin-cband-google.gif"><img class="size-full wp-image-234" title="Grafico RRDtool Google" src="http://digg.it/wp-content/uploads/2009/05/apache-vhost-monitoring-munin-cband-google.gif" alt="Traffico generato da Google su ogni VHost" width="501" height="319" /></a><p class="wp-caption-text">Traffico generato da Google su ogni VHost</p></div>
<p>I plugin munin che ho creato sono molto spartani ma utili e controllano il <a href="http://digg.it/wp-content/uploads/2009/05/cband">traffico totale</a>, <a href="http://digg.it/wp-content/uploads/2009/05/cbandgoogle">quello di google</a>, quello <a href="http://digg.it/wp-content/uploads/2009/05/cbandbot">degli altri bots</a>, e il <a href="http://digg.it/wp-content/uploads/2009/05/cbanduser">traffico utente</a> (il totale meno i robot e meno la classe locale).</p>
<h3>Conclusioni</h3>
<p>Il modulo cband, nonostante non più aggiornato dal 2006, non sembra pesare sulle performance e la stabilità di apache2 e dopo un mesetto di utilizzo ne sono soddisfatto.</p>
<p>Dovrei migliorare il plugin configurando meglio le impostazioni dei grafici (usare il min/max/avg, stili di linea differenti.</p>
<h3>Troubleshooting</h3>
<p>Se cband non vi funziona bene probabilmente si tratta di un problema di ordine di caricamento dei files nella /etc/httpd/conf.d . Questi files vengono caricati in ordine alfabetico, quindi se le definizioni dei virtualhost le avete qui assicuratevi che vengano il ordine alfabetico dopo al mod_cband.conf</p>
<p>Io, per convenzione, li chiamo vh-dominio.conf</p>
<p>Nessun articolo simile</p>]]></content:encoded>
			<wfw:commentRss>http://digg.it/2009/05/19/analizzare-il-traffico-dei-virtualhost-di-apache-con-munin/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

