Questo piccolo "HoW-To" vi permetterà di inserire i log all'interno di un database e con l'utilizzo di un'interfaccia grafica scritta in php di avere report abbastanza dettagliati e personalizzabili
Sul sito ufficiale di squid potete trovare numerosi tool per l'analisi dei log
http://www.squid-cache.org/Scripts/
----------------------------
Requisiti
----------------------------
-Perl (i moduli richiesti sono elencati sotto)
-Mysql
-Apache+php
-access.log di squid
http://texilee.altervista.org/doc/apps/PHP_SQUID.rar
PHP_SQUID contiene la dir
sql -> struttura della tabella / qualche record di esempio
----------------------------
Inserimento dei log su DB
----------------------------
I log NON DEVONO essere in formato common. Qualora li aveste in quel formato
potete usare 'apacheconv' una utility che si trova nel pacchetto squid-graph per la conversione al formato nativo
http://squid-graph.securlogic.com/
Ecco un esempio di log in formato squid nativo
1083837773.713 411 192.168.20.168 TCP_MISS/200 437 GET http://www.texilee.altervista.org/SITO2/inc/img/counter/miniportail_2/cnt4.gif tex DIRECT/207.44.136.44 image/gif
1083837773.713 --> time
411
192.168.20.168 --> remotehost
TCP_MISS/200 --> status
437 --> bytes
GET
http://www.texilee.altervista.org/SITO2/inc/img/counter/miniportail_2/cnt4.gif --> request
tex --> rfc931
DIRECT/207.44.136.44
image/gif
Per informazioni riguardo i log di squid vi riporto qui.
----------------------------
Creazione della Tabella
----------------------------
CREATE TABLE logfile (
id int(11) NOT NULL auto_increment,
remotehost varchar(255) default NULL,
rfc931 varchar(64) default NULL,
request text,
status int(11) default NULL,
bytes int(11) default NULL,
time float(10,3) default NULL,
PRIMARY KEY (id),
KEY user_time (rfc931,time),
KEY time_index (time),
KEY user_status (rfc931,status)
) TYPE=MyISAM;
----------------------------
Requisiti inserimento dei log : squidparse.pl
----------------------------
Lo script per l'inserimento dei log è scritto in perl.
Fa parte del tool squidalyser, potete ovviamente sempre avvalervi dello script originale se trovate difficoltà con quello
modificato da me :)
http://squidalyser.sourceforge.net/
Per poter essere utilizzato bisogna installare i seguenti moduli (www.cpan.org)
DBD-mysql
DBI
Time
----------------------------
Inserimento dei log : squidparse.conf e crontab
----------------------------
Modificate i parametri di configurazione in squidparse.conf
Prestate attenzione al parametro
-> expire 4_w
Ogni volta che lo script entrerà in funzione tutti i record più vecchi di 4 settimane verranno eliminati dal DB.
Se volete conservare lo storico aumentatene il valore... se avete problemi di spazio o avete necessità di "controllare"
solamente i log recenti abbassate il valore anche a 1_d (un giorno)
#crontab -e
55 */4 * * * /usr/local/PHP_SQUID/squidparse.pl
Inserite una riga simile a questa nel crontab e ogni 4 ore verrà aggiornato il DB
----------------------------
Report con PHP_SQUID
----------------------------
PHP_SUID necessita di un web server che supporti php. Apache fa al caso nostro. Estratto il pacchetto tar.gz ad esempio su
/usr/local/PHP_SQUID spostate la dir php_squid all'interno del vostro web server (es. /www/htdocs/php_squid ).
Potete vedere lo script all'opera all'url
http://bud.altervista.org/squid_php/index.php