back to top

I file di log di Apache: access.log e error.log

Apache รจ un web server ampiamente utilizzato in grado di registrare eventi cruciali, comprese le richieste dai client, le risposte inviate e gli errori riscontrati. Questi eventi vengono memorizzati all’interno dei file di log, noti semplicemente come log, fondamentali per la gestione e la sicurezza dei server.

In questo articolo, esploreremo i due principali file di log generati da Apache, access.log e error.log, analizzando la loro importanza e dettagli pratici per la loro gestione.

Pubblicitร 

Cos’รจ un log?

Il termine log deriva da logbook, utilizzato per riferirsi ai registri di bordo delle navi nel XIX secolo. Oggi, nei sistemi informatici, i log memorizzano eventi e operazioni in modo simile a un diario di bordo, permettendo agli amministratori di monitorare il funzionamento del sistema.

La principale funzione dei log รจ facilitare l’analisi in caso di guasti, errori o attacchi informatici, rendendo possibile una rapida risoluzione di eventuali problematiche.

I log di Apache

Apache genera principalmente due tipi di log:

  • log degli accessi (access log);
  • log degli errori (error log).

Il log degli accessi

Il log degli accessi raccoglie informazioni su tutte le richieste ricevute dal server. Queste informazioni comprendono l’indirizzo IP dell’utente, la data e l’ora della richiesta, il metodo HTTP utilizzato, il file richiesto, lo stato della risposta, il referrer e lo user agent. Ecco un esempio di una tipica voce del registro di accesso:

123.123.123.123 - - [12/Sep/2010:15:34:25 +0300] "GET /foto/tramonto.jpg HTTP/1.1" 200 140 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.5 Safari/535.19"

Analizzando questa stringa, possiamo estrapolare una serie di informazioni fondamentali per il monitoraggio delle performance del server e per l’analisi del traffico.

Il log degli errori

Il log degli errori memorizza informazioni sugli errori riscontrati dal server durante le richieste, come, ad esempio, la mancanza di file o problemi di configurazione. Ecco un esempio comune di un errore registrato:

[12/Sep/2010:15:34:25 +0300] [error] [client 123.123.123.123] File does not exist: /var/www/favicon.ico

Dove sono i file di log

Per impostazione predefinita, Apache archivia i log di accesso e di errore in file separati. La loro posizione varia in base al sistema operativo in uso.

Sugli utenti di Debian e Ubuntu, i log degli accessi possono trovarsi in:

/var/log/apache/access.log
/var/log/apache2/access.log

Gli utenti di Red Hat, CentOS e Fedora troveranno invece il log degli accessi in:

/var/log/httpd/access_log

Se nessuno di questi percorsi รจ corretto, ci potrebbe essere una configurazione personalizzata nel file di configurazione di Apache:

CustomLog "/var/log/my-httpd-access.log"

Per conoscere la posizione e il nome dei file di log, puoi controllare il file di configurazione di Apache o eseguire il seguente comando nella shell del server Linux:

locate access.log

In alternativa, puoi cercare anche:

locate access_log

Se il file esiste, il sistema restituisce la sua posizione; in caso contrario, sarร  necessario affinare la ricerca o controllare direttamente nel file https.conf.

Leggere i file di log

I file di log sono semplici file di testo. Puoi scaricarli via FTP e aprirli con qualsiasi editor di testo, come il Blocco Note di Windows.

In alternativa, puoi visualizzare i file di log direttamente dalla shell del server con i seguenti comandi:

1) Visualizzare le attivitร  in tempo reale:

tail -f /var/log/apache2/access.log

Questo comando mostrerร  in tempo reale le nuove righe scritte nel file.

2) Visualizzare le ultime 100 righe del log:

tail -100 /var/log/apache2/access.log

3) Cercare un termine specifico all’interno del log:

grep ".jpg" /var/log/apache2/access.log

Questo comando restituirร  solo le righe relative ai file JPG.

4) Cercare le attivitร  di un indirizzo IP specifico:

grep "123.123.123.123" /var/log/apache2/access.log

Svuotare un file di log troppo pesante

Se un file di log cresce troppo e desideri azzerarlo, puoi utilizzare il seguente comando nella shell:

truncate -s 0 /var/log/apache2/access.log

Tuttavia, per i siti in produzione, รจ consigliabile implementare un sistema di log rotation, che archivia periodicamente i log (ad esempio, su base giornaliera) per evitare di gestire file di log di dimensioni notevoli.

Pubblicitร 
Claudio Garau
Claudio Garau
Web developer, programmatore, Database Administrator, Linux Admin, docente e copywriter specializzato in contenuti sulle tecnologie orientate a Web, mobile, Cybersecurity e Digital Marketing per sviluppatori, PA e imprese.