21.2. I log nativi

Abbiamo già visto che Squid utilizza diversi files di logs di cui quattro sono i file di log principali, questi vengono definiti dai seguenti TAG

il TAG cache_access_log

cache_access_log /usr/local/squid/var/logs/access.log
  

nel file access.log vengono registrate tutte le transazioni effettuate dai client

il TAG cache_log

cache_log /usr/local/squid/var/logs/cache.log
  

nel file cache.log vengono registrate tutte le informazioni sullo stato della cache, ne analizzeremo i dettagli in seguito

il TAG cache_store_log

cache_store_log /usr/local/squid/var/logs/store.log 
  

nel file store.log vengono registrate tutte le attività eseguite dallo storage manager di Squid

il TAG cache_swap_log

cache_swap_log /usr/local/squid/var/cache/swap.state
  

nel file swap.state viene memorizzato il file di log dello swap, si tratta di un file binario che include un checksum MD5 e che contiene i campi dello store entry. Non è necessario indicarlo in squid.conf in quanto verrà scritto automaticamente nella top level directory della cache_dir.

Possiamo anche definire il formato dei files di logs che può essere suddiviso in file di log nativi ed in file di log che emulano lo schema transazionale di un server web. Naturalmente le informazioni più importanti sullo stato di servizio della cache vengono memorizzate nel file cache.log, mentre il file dal quale riusciremo ad estrapolare il maggior numero di informazioni sul funzionamento del servizio di web cache è senza dubbio il file access.log. Ora analizziamo nel dettaglio il formato del file access.log

(1)1049790275.517(2)880(3)192.168.5.12(4)TCP_MISS \
(5)20012689(6)GET (7)ftp://it.samba.org/pub/samba \
(8)Federico DIRECT/(9)217.56.103.6 (10) text/html 
  

come possiamo notare vi sono ben 10 campi, questi campi vengono identificati utilizzando dei valori numerici, nello specifico di seguito ne forniamo il dettaglio

  1. TimeStamp

    è il momento in cui la richiesta diretta verso il sistema di cache è stata processata, da notare che il formato è "UNIX® Time" con la risoluzione in millisecondi

  2. Elapsed Time

    il tempo necessario per processare la richiesta, il tempo viene espresso in millisecondi

  3. Client Address

    determina l'indirizzo IP sorgente della richiesta

  4. Log Tag/HTTP Code

    si tratta dell'azione intrapresa da Squid in base alla richiesta (hit, miss, denied)

  5. Size

    la quantità di byte inviati al Client

  6. Request Method

    determina il metodo HTTP che viene utilizzato per soddisfare la richiesta (GET, POST)

  7. URL

    l'indirizzo internet del sito web richiesto dal client

  8. Ident

    determina l'utente o l'identificativo del client che ha richiesto il servizio

  9. Hierarchy Data / Hostname

    identifica come e dove la richiesta è stata processata

  10. Content Type

    come da RFC viene riportato il campo Content-Type dell'header HTTP

Naturalmente appare chiaro che con un pò di comandi shell UNIX® o perl scripting si può tirar fuori molto più di quello di cui abbiamo bisogno da questo file di log.