UIE Meeting

giovedì 9 febbraio ore 20,30 - Casa delle Associazioni

Home Blog Usare Linux Ubuntu professionale: Usiamo il Logrotate - 2^ parte

Mar

17

Giu

2008

Ubuntu professionale: Usiamo il Logrotate - 2^ parte
UIELinux Blog - Usare Linux
Scritto da Teo   

Dopo aver visto come tenere sotto controllo la dimensione e la quantità dei files di logs grazie all'utility logrotate, in questo articolo vedremo un esempio pratico di come poter sfruttare questa funzione per altri scopi.

L'obiettivo del nostro esercizio è quello di attivare le statistiche di accesso di un nostro sito web
che, per evidenti motivi pubblicitari, chiameremo uielinux.

Per effettuare tali statistiche esistono svariati programmi che, leggendo il log di accesso del web server (solitamente chiamato access_log.xxxx),
riescono ad elaborarlo e a rappresentare, in un formato grafico umanamente leggibile, informazioni sugli accessi della nostra applicazione.

Per raggiungere il nostro scopo utilizzaremo la direttiva prerotate del logrotate per archiviare i files prima di ruotarli eliminando i più vecchi.
Per quanto riguarda le statistiche invece utilizzaremo webalizer, uno degli analizzatori di files di log più conosciuti in ambito opensource
che per i nostri scopi è più che adatto.

Nel nostro esercizio assumiamo che l'applicazione web gira nella directory /var/www e il log di apache viene messo sotto /var/log/apache2.
Qeste sono le impostazioni di default su una Ubuntu 8.04.

Bene, ora possiamo iniziare.


Installazione del software necessario

La prima cosa che dobbiamo fare è installare tutto il software necessario, quindi digitiamo: 

sudo apt-get install logrotate webalizer apache2
Ora creiamo nel nostro sito la cartella che conterra' le statistiche.
Digitiamo quindi:
mkdir /var/www/statistiche


Configurazione webalizer

Ora andiamo nella directory /etc/webalizer, che è il posto in cui troveremo i settaggi preimpostati di webalizer, e creiamo uno script
chiamato agg_stats.sh.

Incolliamoci il seguente testo:

#!/bin/bash
for i in /etc/webalizer/*.conf
do
echo ""
echo Elaboro: $i
echo "------------------------------------------------"
webalizer -c $i
done
exit 0

Questo script, quando eseguito, lancia il comando webalizer per tutti i files di configurazione esistenti nella directory /etc/webalizer
Ora creiamo a un file di configurazione di webalizer per la nostra aplicazione.

Il file suddetto lo chiamiamo uielinux.conf e al suo interno incolliamo il seguente testo:

LogFile          /var/log/apache2/access_log
OutputDir        /var/www/statistiche
HistoryName      webalizer.hist
Incremental      yes
IncrementalName  webalizer.current
ReportTitle      Statistiche su
HostName         uielinux

Le opzioni configurabili in questo files sono tantissime e vi rimandiamo alla documentazione del webalizer per approfondirle.
Le impostazioni che interessano a noi sono:

  • Logfile è la cartella in cui sono presenti i file da analizzare
  • OutputDir è la cartella in cui webalizer creerà i files html consultabili via browser per accedere alle statistiche

Ora che abbiamo configurato il nostro webalizer, mettiamo la chiamata a agg_stat.sh nel prerotate del logrotate, quindi aggiungiamo:

prerotate
          /etc/webalizer/agg_stats.sh
endscript


Configurazione Logrotate

nell'esistente file apache2 che contiene già una serie di impostazioni predefinite. Quindi avremo:

/var/log/apache2/*.log {
    weekly
    missingok
    rotate 52
    compress
    delaycompress
    notifempty
    create 640 root adm
    sharedscripts
    prerotate
              /etc/webalizer/agg_stats.sh
    endscript
    postrotate
        if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then
            /etc/init.d/apache2 reload > /dev/null
        fi
    endscript
}
 
Bene.

A questo punto abbiamo terminato.
Con cadenza giornaliera, accadra' che:
  • lo script logrotate presente nella cartella /etc/cron.daily verrà eseguito, e con esso tutte le configurazioni definite nella cartella /etc/logrotate.
  • Se si verificano le condizioni per far ruotare i files di log di apache, la direttiva prerotate del logrotate eseguira' lo script /etc/webalizer/agg_stats.sh
  • Lo script agg_stats.sh, per tutti i files .conf che troverà nella cartella /etc/webalizer lancerà il webalizer e aggiornarà le statistiche configurate.
  • L'aggiornamento delle statistiche genererà nella cartella /var/www/statistiche un file html con le statistiche del webserver.
Le statistiche saranno accessibili dal browser digitando http://nomeserver/statistiche/index.html

Di nuovo, buona rotazione a tutti
           
Commenti (0)add comment

Lascia la tua opinione
Accorcia box | Allunga box
I filtri ti rompono? Iscriviti


busy
 

Commenti

Utenti On-Line

 40 visitatori online
Utenti : 168
Contenuti : 88
Link web : 58
Tot. visite contenuti : 171523

UIELinux, oltre il Rubicone (anche oltre i soliti luoghi comuni)
Joomla! è un software libero rilasciato sotto licenza GNU/GPL
UIElinux All UIELinux Blog UIELinux Guide UIELinux Progetti