11 giugno 2007

Persanalizzare le statistiche VHCS2@Debian

Sto usando da qualche tempo il bel pannelo di controllo per la gestione dei server VHCS2. Un appunto però mi sento di muoverlo al nostro caro pannello e cioè la gestione delle statistiche che sono un po' povere limitandosi a pochi dati.

Ho deciso quindi di estendere tali funzionalità e di mettere in funzione un sistema un po' più dettagliato. Per fare questo userme i software webalizer.

Questa mini-guida descrive come intsllare e rendere operativo un sistema di statistiche basato su apache2 su una debian 3.1 con installato VHCS2 v2.4.7.1 intsallato tramite apt-get.

Prima di tutto installiamo il software per leggere in formato web i log di apache:
apt-get install webalizer

Recatevi su /var/www/vhcs2 e salvate il seguente file nominandolo vhcs2-get-domaine.pl (dandogli i permessi di esecuzione) che ci servirà per scrivere in un file tutti i domini virtuali:

#!/usr/bin/perl -w

require '/var/www/vhcs2/engine/vhcs2_common_code.pl';
use strict;
use warnings;
&return_all_domains;

sub return_all_domains {
#initializing vars
my $sql;
my ($rs, $rdata) = (undef, undef);
$sql = "select domain_name from domain";

($rs, $rdata) = doSQL($sql);

my $dmn_count = @$rdata;

# open the file to write all domains in
open(FILE, '>/etc/webalizer/domains.txt') or die("Accs impossible /etc/webalizer/domains.txt");

if ($dmn_count > 0) {
foreach (@$rdata) {
my $row = $_;
print FILE @$row[0]."\n";
}
}
close FILE;
}


Ora nel file vhcs2-dmn-mngr sempre in /var/www/vhcs2/engine aggiungete le seguenti righe sostituendo con il nome della directory dove volete poter leggere le statistiche. Ad esempio se specificate "webalizer" le statistiche saranno accessibili all'indirizzo http://www.prova.it/webalizer (se volete dal pannello di controllo potrete proteggete quest'area).

$rs = make_dir(
"$www_dir/$dmn_name/htdocs/",
$sys_user,
$httpd_gid,
0770
);

return $rs if ($rs != 0);


Bene ora recatevi in /etc/webalizer creandola se non dovesse esserci, e crate il file vuoto domains.txt con i diritti di accesso. Inoltre create il file webalizer.cron che come facilmente avrete intuito serve per automazizzare il processo di generazione delle statistiche e digitate al duo interno:

#!/bin/bash
/var/www/vhcs2/engine/vhcs2-get-domaine.pl
for domain in `cat /etc/webalizer/domains.txt`
do
webalizer /var/www/virtual/$domain/logs/$domain-access.log -o /var/www/virtual/$domain/htdocs//
done


Ci siamo quasi. aggiungete nel crontab:
## Lancia le statistiche ##
1 0 * * * /etc/webalizer/webalizer.cron > /dev/null


ed abbiamo finito... Ogni giorno alle 00.01 verranno generate le nuove statisctiche per i domini virtuali presenti.

Alla prossima e buone statistiche..

Tondo è bello...

Tondo è bello...