2012-10-03 13 views
12

Voglio ottenere Varnish per registrare le richieste. Ho trovato il comando varnishlog -a -w /var/log/varnish.log, ma non registra nulla.Come impostare la registrazione di Varnish?

Quindi ho trovato che Varnish non scrive per registrare per impostazione predefinita. Tuttavia non riesco a trovare le opzioni di configurazione per la registrazione.

+1

Nota anche quando si utilizza varnishlog -w con la versione <3.0.3, è necessario riavviarlo dopo ogni riavvio della vernice. – Doomsday

risposta

22

Se si desidera registrare richieste HTTP in NCSA Common Log Format è necessario utilizzare varnishncsa. Su CentOS/RedHat, il pacchetto Varnish RPM include uno script init varnishncsa che è possibile utilizzare per avviare la registrazione. Per impostazione predefinita, registra su logfile="/var/log/varnish/varnishncsa.log".

Inoltre, se si desidera servire diversi host diversi attraverso una singola installazione di Varnish, è necessario includere anche il nome host nel registro. Questo può essere realizzato con la seguente impostazione in /etc/sysconfig/varnishncsa

DAEMON_OPTS="$DAEMON_OPTS -F '%{Host}i %h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\"'" 

Si prega di notare che il metodo descritto nel collegamento da Anshu registra soltanto le richieste che sono attraversati da Varnish per i server back-end. Le richieste di hit della cache non verranno mai registrate (prima di Varnish 5.0 - vedere di seguito). Pertanto i registri HTTPD raccolti in questo modo non possono essere utilizzati per l'analisi statistica.

Aggiornamento: Come accennato @VikrantPogula, come di vernice 5,0 tutte le richieste client vengono registrati - tra cui riscontri nella cache. Questo è il comportamento predefinito e può essere attivato in modo esplicito utilizzando lo switch -c.

+20

Per abilitare la registrazione in realtà su Ubuntu: modificare/etc/default/varnishncsa' decommentare '# VARNISHNCSA_ENABLED = 1' run' servizio sudo varnishncsa restart' – George

+0

non ero in grado di utilizzare l'opzione -F in '/ etc/default/varnishncsa' (Ubuntu 14.04), probabilmente a causa delle citazioni di gestione della shell in modi strani. Quando ho provato a riavviare il servizio tramite 'sudo service varnishncsa restart', sono state visualizzate le opzioni di utilizzo per la vernice ma il servizio non è stato avviato. Sembra un bug irrisolto per me, vedi: http: // giantdorks.org/alain/workaround-for-broken-varnishncsa-logging-dovuto-shell-mishandling-of-spaces-in-log_format-variables/e https://bugs.debian.org/cgi-bin/bugreport.cgi ? bug = 657449 – Hirnhamster

3

In risposta alla risposta di Ketola, è possibile avere varnishncsa log anche richieste di hit in cache, passando il flag -c. Questo ti permetterà di usare i log di HTTPD per analizzare le statistiche.

Esempio: varnishncsa -c -a -w ~/varnish.log scriverà le richieste di cache colpo al file in formato predefinito NCSA

6

metriche in vernice sono uno spazio comune che le persone lottano con.

È relativamente facile ottenere alcune metriche di richiesta singola, ma il monitoraggio complessivo nel tempo generalmente implica l'utilizzo di varnishncsa. Ecco un guide on Varnish installation che include l'installazione metrica

+0

grazie :) '' '' '' '' '' –

1

Poiché sono atterrato qui e il suggerito fisso non ha aiutato:

mio varnishncsa.log era vuoto e il processo era in esecuzione.

È risultato che HAD TO specificare il formato del registro (qualsiasi formato).

Poiché questa intuizione in sé non ha risolto il mio script di init, l'ho risolto utilizzando this strategy.

Problemi correlati