Gestione dei log di Squid

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


Privacy Policy