21.4. Troubleshooting con il file cache.log

Quando si implementa un nuovo sistema Squid è buona norma tenere sempre sotto controllo il file di log cache.log, verificare il contenuto di questo file di log è un ottimo sistema per eseguire il debug e il troubleshooting ed ottenere una configurazione ottimale per una nuova installazione di Squid.

21.4.1. Utilizzare tail(8) ed xterm(8)

Per verificare il funzionamento di Squid in tempo reale utilizzeremo il comando tail(8) che, se utilizzato con l'opzione -f continuerà a leggere tutti i caratteri prodotti dal file di log assumendo che il file stesso sia in continua crescita. Per lavorare correttamente utilizzeremo più finestre xterm(8). Questo programma, che fornisce l'emulazione terminale per un sistema X Window, ci consentirà di utilizzare diverse sessioni terminale per impartire comandi e tenere sotto controllo il file di log. Nell'esempio seguente eseguiremo il reload della configurazione di Squid con il comando squid -k reconfigure

% squid -k reconfigure
2004/04/13 12:34:39| Cache dir '/usr/local/squid/var/cache' size changed to 102400 KB
2004/04/13 12:34:39| Initialising SSL.
2004/04/13 12:34:39| Error error setting CA certificate locations: error:00000000:lib(0):func(0):reason(0)
2004/04/13 12:34:39| continuing anyway...
   

contemporaneamente utilizziamo il comando tail(8)

% tail -f /usr/local/squid/var/logs/cache.log
2004/04/13 12:21:14| Reconfiguring Squid Cache (version 3.0-PRE3)...
2004/04/13 12:21:14| FD 11 Closing HTTP connection
2004/04/13 12:21:14| FD 12 Closing ICP connection
2004/04/13 12:21:14| FD 13 Closing HTCP socket
2004/04/13 12:21:14| FD 14 Closing SNMP socket
2004/04/13 12:21:14| Cache dir '/usr/local/squid/var/cache' size remains unchanged at 102400 KB
2004/04/13 12:21:14| Initialising SSL.
2004/04/13 12:21:14| Error error setting CA certificate locations: error:00000000:lib(0):func(0):reason(0)
2004/04/13 12:21:14| continuing anyway...
2004/04/13 12:21:14| User-Agent logging is disabled.
2004/04/13 12:21:14| DNS Socket created at 0.0.0.0, port 32793, FD 7
2004/04/13 12:21:14| Adding nameserver 192.168.10.4 from /etc/resolv.conf
2004/04/13 12:21:14| Adding nameserver 192.168.10.254 from /etc/resolv.conf
2004/04/13 12:21:14| Accepting HTTP connections at 0.0.0.0, port 3128, FD 8.
2004/04/13 12:21:14| Accepting ICP messages at 0.0.0.0, port 3130, FD 10.
2004/04/13 12:21:14| Accepting HTCP messages on port 4827, FD 11.
2004/04/13 12:21:14| Accepting SNMP messages on port 3401, FD 12.
2004/04/13 12:21:14| WCCP Disabled.
2004/04/13 12:21:15| Loaded Icons.
2004/04/13 12:21:15| Ready to serve requests.
   

nel caso specifico viene segnalato un errore relativo alla impostazione del percorso della CA[1], vengono riconosciuti due name server e Squid rimarrà in ascolto delle connessioni HTTP sulla porta 3128, dei messaggi ICP sulla porta 3130, dei messaggi HTCP[2] sulla porta 4827. Per finire Squid accetta le connessioni SNMP sulla porta 3401. Nonostante l'errore segnalato, Squid si è avviato correttamente, il messaggio Ready to serve requests è fondamentale per definire lo stato attuale di Squid.

Il File cache.log dunque continene le informazioni relative alla configurazione di avviamento di Squid, fornisce dunque un insieme di informazioni relative agli errori che possono verificarsi durante le operazioni che vengono svolte da Squid e non solo in fase di avviamento. Per proseguire con il nostro esempio, abilitiamo l'acceleratore HTTP e confrontiamo nuovamente l'output del file cache.log

% squid -k reconfigure
2004/04/13 12:34:39| Initialising SSL.
2004/04/13 12:34:39| Using certificate in /usr/local/squid/etc/key.crt
2004/04/13 12:34:39| Using private key in /usr/local/squid/etc/key.key
2004/04/13 12:34:39| Error error setting CA certificate locations: error:00000000:lib(0):func(0):reason(0)
2004/04/13 12:34:39| continuing anyway...
2004/04/13 12:34:39| Cache dir '/usr/local/squid/var/cache' size changed to 102400 KB
2004/04/13 12:34:39| Initialising SSL.
2004/04/13 12:34:39| Error error setting CA certificate locations: error:00000000:lib(0):func(0):reason(0)
2004/04/13 12:34:39| continuing anyway...
   

contemporaneamente utilizziamo il comando tail(8)

% tail -f /usr/local/squid/var/logs/cache.log
2004/04/13 12:34:39| Reconfiguring Squid Cache (version 3.0-PRE3)...
2004/04/13 12:34:39| FD 8 Closing HTTP connection
2004/04/13 12:34:39| FD 10 Closing ICP connection
2004/04/13 12:34:39| FD 11 Closing HTCP socket
2004/04/13 12:34:39| FD 12 Closing SNMP socket
2004/04/13 12:34:39| Initialising SSL.
2004/04/13 12:34:39| Using certificate in /usr/local/squid/etc/key.crt
2004/04/13 12:34:39| Using private key in /usr/local/squid/etc/key.key
2004/04/13 12:34:39| Error error setting CA certificate locations: error:00000000:lib(0):func(0):reason(0)
2004/04/13 12:34:39| continuing anyway...
2004/04/13 12:34:39| Cache dir '/usr/local/squid/var/cache' size remains unchanged at 102400 KB
2004/04/13 12:34:39| Initialising SSL.
2004/04/13 12:34:39| Error error setting CA certificate locations: error:00000000:lib(0):func(0):reason(0)
2004/04/13 12:34:39| continuing anyway...
2004/04/13 12:34:39| User-Agent logging is disabled.
2004/04/13 12:34:39| DNS Socket created at 0.0.0.0, port 32796, FD 7
2004/04/13 12:34:39| Adding nameserver 192.168.10.4 from /etc/resolv.conf
2004/04/13 12:34:39| Adding nameserver 192.168.10.254 from /etc/resolv.conf
2004/04/13 12:34:39| Accepting HTTP connections at 0.0.0.0, port 3128, FD 8.
2004/04/13 12:34:39| Accepting HTTPS connections at 0.0.0.0, port 443, FD 10.
2004/04/13 12:34:39| Accepting ICP messages at 0.0.0.0, port 3130, FD 11.
2004/04/13 12:34:39| Accepting HTCP messages on port 4827, FD 12.
2004/04/13 12:34:39| Accepting SNMP messages on port 3401, FD 13.
2004/04/13 12:34:39| WCCP Disabled.
2004/04/13 12:34:39| Loaded Icons.
2004/04/13 12:34:39| Ready to serve requests.
2004/04/13 12:34:39| Configuring Parent www1.dominio.com/80/0
   

come potete ben vedere, è stata inizializzata la porta 443 che rimane in ascolto delle connessioni HTTPS. Possiamo concludere dicendo che il controllo del file cache.log è fondamentale per risolvere diversi problemi di configurazione e per tenere sotto costante controllo lo stato di funzionamento di Squid.

21.4.2. Livelli di debug

E' possibile aumentare il numero delle informazioni di debug che vengono registrate nel file di cache logging cache.log utilizzando il TAG debug_options. Normalmente l'output di questo file di log è impostato con un valore di debug molto basso, come default Squid imposta il TAG debug_options con il valore

debug_options ALL,1
   

se abbiamo la necessità di effettuare un tuning molto accurato della nostra web cache, possiamo impostare un valore di debug più alto

debug_options ALL,5
   

il full debugging viene rappresentato dal livello 9, questa impostazione determina la scrittura di file di log molto grandi. L'impostazione ALL determina il livello di debugging per tutte le sezioni, è raccomandabile eseguire il debug con l'impostazione ALL,1.

Note

[1]

CA è l'acronimo di Certification Authority

[2]

HTCP è l'acronimo di Hyper Text Caching Protocol