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.
Indice
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.