Server  »  Articoli  »  Apache 

La registrazione degli accessi di Apache

di: Ermanno Ancona     19 Aprile 2006

Introduzione

Con il termine log si intende generalmente un file di puro testo (log file) in cui vengono registrate le operazioni eseguite da un programma. I motivi per i quali si ricorre a tali registrazioni sono principalmente:

  • monitoraggio: è fondamentale un feedback che permetta di tenere sotto controllo l'attività e le prestazioni di un'applicazione;
  • sicurezza: in caso di compromissione di un servizio può risultare importante risalire alle ultime operazioni che hanno preceduto il "fattaccio";
  • debug: al verificarsi di errori nell'applicazione i log aiutano ad individuare la fonte delle anomalie;
  • statistiche: forse l'aspetto più noto nel caso di un server web, data l'importanza di conoscere informazioni quali il numero di visitatori in un certo intervallo di tempo, le pagine più consultate, il tipo di browser utilizzato e via discorrendo.

Ebbene sì, nell'amministrare un server Apache, il tanto vituperato Grande Fratello o Echelon siamo noi che spiamo ogni mossa dei nostri visitatori.....naturalmente a fin di bene.

I tipi di log

Apache prevede due tipi di log, Access Log, log degli accessi, ed Error Log, log degli errori. Il primo registra tutte le richieste HTTP che giungono al server, il secondo memorizza informazioni diagnostiche ed errori incontrati nel processare le richieste. I log degli accessi sono suscettibili di notevole personalizzazione, mentre per gli errori possiamo definire solo il "livello" ovvero l'importanza che essi debbono assumere per essere registrati. Di seguito analizzeremo la memorizzazione degli accessi riservando un prossimo articolo alla descrizione del log degli errori.

Access Log

Se scorriamo il file di configurazione di Apache, httpd.conf, troveremo due direttive che si occupano di controllare la memorizzazione degli accessi: CustomLog e LogFormat. La prima, più importante, stabilisce la posizione del file di registrazione e cosa debba essere memorizzato. La seconda permette di assegnare un nome ad un prefissato formato di registrazione, per rendere più agevole il riferimento ad esso. Una possibile configurazione potrebbe essere la seguente:

LogFormat "%h %l %u %t \"%r\" %>s %b" common

CustomLog logs/access_log common

Vediamo nel dettaglio le direttive per poterle interpretare. Log Format viene seguita da una stringa delimitata da doppi apici, "%h %l %u %t \"%r\" %>s %b", si noti come venga effettuato l'escape mediante back slash in \"%r\" per evitare che i doppi apici siano interpretati come fine stringa. Al suo interno i caratteri preceduti dal simbolo di percentuale specificano al server un particolare tipo d'informazione che si vuole memorizzare. Ad esempio %h sta per remote host ed indica l'indirizzo IP o il nome dell'host che ha effettuato la richiesta, il %b finale identifica, invece, il "peso" dell'oggetto fornito al client, come potrebbe essere una pagina o un'immagine in essa contenuta. Naturalmente la documentazione ufficiale riporta l'elenco completo dei possibili parametri utilizzabili nella stringa di configurazione. La direttiva termina con la parola "common" che rappresenta il nome assegnato alla stringa di configurazione in modo tale che si possa fare riferimento ad essa mediante tale nick.

Custom Log specifica il path in cui sarà inizialmente creato e successivamente riempito il file degli accessi, il cui nome è, convenzionalmente, access_log nei sistemi unix e access.log nei sistemi windows. Notiamo che il percorso non inizia con una slash: sarà interpretato come relativo alla ServerRoot, directory principale del nostro web server dove normalmente hanno sede le configurazioni. Ad esempio /etc/httpd in un sistema linux e c:/Programmi/Apache Group/Apache2 in windows. In caso contrario dovremo specificarlo in modo completo, ad esempio /var/log/apache/access_log.
Infine ritroviamo le parola "common" che specifica ad Apache di utilizzare il formato per le registrazioni sopra definito.

Con notazione meno elegante, la configurazione sopra riportata poteva essere ottenuta anche così:

CustomLog logs/access_log "%h %l %u %t \"%r\" %>s %b"

Guide Server

Guida risparmio energetico per server

Dalla determinazione dei consumi al risparmio, dalla...

Guida Subversion

SVN è uno dei sistemi per il versioning più utilizzati al mondo....

Guida Application server

Cosa sono, quali sono e come possono essere utilizzati nella...

Altre guide

Newsletter

Ogni settimana, in due distinte newsletter: notizie a approfondimenti su Apache e IIS.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Amministratore di Reti Windows Server 2008

11 Giugno 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto