Articles

Configurazione dei log degli errori e degli accessi di Apache

Posted by admin

Apache è un server HTTP open source e multipiattaforma. Ha molte potenti funzionalità che possono essere estese da un’ampia varietà di moduli. Quando gestisci i server Web Apache, una delle attività più frequenti che eseguirai è il controllo dei file di registro.

Sapere come configurare e leggere i log è molto utile quando si risolvono i problemi del server o dell’applicazione in quanto forniscono informazioni dettagliate sul debug.

Apache scrive i record dei suoi eventi in due tipi di log: log di accesso e log di errore., I registri di accesso includono informazioni sulle richieste del client e i registri degli errori informazioni sui problemi del server e dell’applicazione.

Questo articolo descrive come configurare e leggere i log di accesso e di errore di Apache.

Configurazione del log di accesso #

Apache webserver genera un nuovo evento nel log di accesso per tutte le richieste elaborate. Ogni record di evento contiene un timestamp e include varie informazioni sul client e la risorsa richiesta. I registri di accesso mostrano la posizione dei visitatori, la pagina che visitano, quanto tempo trascorrono sulla pagina e molto altro.,

La direttiva CustomLog definisce la posizione del file di log e il formato dei messaggi registrati.

La sintassi più semplice della direttiva CustomLog è la seguente:

CustomLog log_file format ;

Il log_file può essere relativo al ServerRoot o un percorso completo del file di registro. I messaggi di log possono anche essere reindirizzati a un altro programma utilizzando il simbolo di pipe |.

Il secondo argomento, format specifica il formato dei messaggi di log., Può essere una definizione di formato esplicita o un nickname definito dalla direttivaLogFormat.

LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combinedCustomLog logs/access.log combined
CustomLog logs/access.log "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\""

Per evitare di ripetere lo stesso codice più volte, preferiscono definire il LogFormat direttiva e di utilizzarlo come nickname nel CustomLog direttiva.

Per un elenco completo di tutte le stringhe di formato e modificatori, controllare la documentazione del modulo “mod_log_config”.,

Il terzo argomento è facoltativo e consente di scrivere messaggi di log solo quando viene soddisfatta una condizione specifica. Di solito, questo viene fatto usando le variabili di ambiente. La condizione può essere negata con il simbolo!.

Ad esempio, se si desidera escludere le richieste ai file css da scrivere nel file di registro, si utilizzerà quanto segue:

SetEnvIf Request_URI \.css$ css-fileCustomLog logs/access.log custom env=!css-file

Per modificare il formato di registrazione, è possibile definire una nuova direttivaLogFormat o sovrascrivere il formato predefinito., In genere è meglio definire un nuovo formato.

Mentre il log di accesso fornisce informazioni molto utili, richiede spazio su disco e può influire sulle prestazioni del server. Se il tuo server è a corto di risorse e hai un sito Web occupato, potresti voler disabilitare il registro di accesso.

Per fare ciò, è sufficiente commentare o rimuovere la direttiva CustomLog dalle sezioni di configurazione del server principale e del server virtuale.,

Se si desidera disattivare il log di accesso solo per un host virtuale, impostare il primo argomento del CustomLog direttiva /dev/null:

CustomLog /dev/null combined

Configurazione del Log di Errore #

Apache scrive messaggi circa l’applicazione e il server generale errori nel file di log di errore. Se si verificano errori nell’applicazione Web, il registro degli errori è il primo punto di partenza per la risoluzione dei problemi.

La direttiva ErrorLog definisce la posizione del nome del log degli errori., Assume la seguente forma:

ErrorLog log_file

Se il percorso dilog_filenon è assoluto, viene impostato come relativo aServerRoot. I messaggi di errore possono anche essere reindirizzati a un altro programma utilizzando il simbolo pipe |.

Il parametroLogLevel imposta il livello di registrazione. Di seguito sono riportati i livelli elencati in base alla loro gravità (dal basso all’alto):

  • trace1trace8 – Traccia messaggi.
  • debug – Messaggi di debug.,
  • info – Messaggi informativi.
  • notice – Avvisi.
  • warn – Avvertenze.
  • error – Errori durante l’elaborazione di una richiesta.
  • crit – Problemi critici. Richiede un’azione rapida.
  • alert – Avvisi. L’azione deve essere intrapresa immediatamente.
  • emerg – Situazione di emergenza. Il sistema è in uno stato inutilizzabile.

Ogni livello di registro include i livelli più alti., Ad esempio, se si imposta il livello di log su warn, Apache scrive anche error, crit, alert e emerg messaggi.

Quando il parametro LogLevel non è specificato, il valore predefinito è warn. Si consiglia di impostare il livello su almeno crit.

La direttiva ErrorLogFormat specifica il formato del log degli errori., Sulla maggior parte delle distribuzioni Linux, il server Apache utilizza il formato predefinito, che è sufficiente per la maggior parte dei casi.

Host virtuali e registrazione globale #

Il comportamento di registrazione e la posizione dei file possono essere impostati globalmente o in base all’host virtuale.

Quindi le direttive CustomLog o ErrorLog vengono impostate nel contesto del server principale, il server scrive tutti i messaggi di log negli stessi file di log di accesso e di errore., Altrimenti, se le direttive sono inserite all’interno di un blocco <VirtualHost>, solo i messaggi di log per quell’host virtuale vengono scritti nel file specificato.

La direttiva di registro impostata nel blocco <VirtualHost> sovrascrive quella impostata nel contesto del server.

Gli host virtuali senza CustomLog o ErrorLog avranno i loro messaggi di log scritti nei log del server globale.

Per una migliore leggibilità, si consiglia di impostare file di log di accesso e di errore separati per ciascun host virtuale., Ecco un esempio:

Ogni volta che si modifica il file di configurazione, è necessario riavviare il servizio Apache affinché le modifiche abbiano effetto.

Posizione dei file di log #

Per impostazione predefinita su distribuzioni basate su Debian come Ubuntu , i log di accesso e di errore si trovano nella directory/var/log/apache2. Su CentOS i file di log sono collocati nella directory/var/log/httpd.,

Lettura e Comprensione dei File di Log di Apache #

I file di registro può essere aperto e analizzato utilizzando i comandi standard come cat less grep cut awk e così via.,

Ecco un esempio di record dal file di registro di accesso che usi Debian ” combine formato di log:

bisogna abbattere ciò che ogni campo del record significa:

Uso tail comando per guardare il file di log in tempo reale:

tail -f access.log 

Conclusione #

i file di Registro di fornire utili informazioni circa problemi di server e in che modo i visitatori interagiscono con il tuo sito web.

Apache ha un sistema di registrazione molto configurabile che consente di personalizzare i log di accesso e di errore in base alle proprie esigenze.

Leave A Comment