L'attività di logging è fondamentale per ogni servizio in esecuzione su una macchina.
Su Apache oltre a fornire informazioni su eventi che riguardano il funzionamento del servizio, nei log si tiene traccia di tutte le richieste http eseguite al server web.
Il modulo mod_log_config gestisce tutte le attività di logging da Apache 1.3.5 in poi.
Generalmente su un server web si prvedono 2 diversi tipi di log:
I LOG DI ERRORE: Error_log
Contiene traccia di tutti gli errori incontrati da Apache. Di default viene scritto in /server_root/logs/error.log
ma la sua posizione può essere configurata:
ErrorLog /var/log/httpd/error_log
.
Ci può essere solo un ErrorLog nella configurazione generale, ma ne può essere definito uno per ogni VirtualHost. Non si può impedire ad Apache di loggare gli errori ma si possono evitare i tempi di scrittura su disco: ErrorLog /dev/null
.
E' possibile definire il livello di logging (in ordine di importanza: emerg - alert - crit - error - warn - notice - info - debug) con la direttiva LogLevel:
LogLevel warn
E' inoltre possibile utilizzare syslog per il logging, di default Apache usa la facility local7:
ErrorLog syslog
Ma si può definire una propria facility per gestire più facilmente /etc/syslog.conf. Con l'esempio che segue si passano al syslog i messaggi di errore utilizzando la facility apache:
ErrorLog syslog:apache
I LOG DI ACCESSO: Transfer_log
Qui vengono registrate tutte le richieste HTTP fatte al server dai client in rete. Sono fondamentali per poter analizzare il traffico su un sito Web e vengono allo scopo processati da appositi software di log analysys.
Il formato dei log di accesso può essere customizzato dall'utente ed includere i dati che interessano.
Al contrario dei log di errore, i transfer log vanno esplicitamente configurati e possono essere evitati.
L'impostazione di base del log viene fatto con la direttiva TransferLog ed è nel Common Log Format (host ident authuser date request status bytes):
TransferLog /var/log/httpd/access_log
.
Con la direttiva LogFormat si può scegliere cosa scrivere nel file di log e si definisce il nome del tipo di log, che può poi venir utilizzata con la direttiva CustomLog (nel caso che segue il nome del formato è common).
LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog logs/access_log common
Configurazione, analisi e gestione dei log di un server Web. Software di analisi dei log.