2012-10-03 9 views
12

Deseo obtener Varnish para registrar las solicitudes. Encontré el comando varnishlog -a -w /var/log/varnish.log, pero no registra nada.¿Cómo instalar el registro de barniz?

Luego descubrí que Varnish no escribe en el registro de forma predeterminada. Sin embargo, no puedo encontrar opciones de configuración para el registro.

+1

Tenga en cuenta también que al usar varnishlog -w con la versión <3.0.3, debe reiniciarlo después de reiniciar cada barniz. – Doomsday

Respuesta

22

Si desea registrar solicitudes HTTP en NCSA Common Log Format, necesita usar varnishncsa. En CentOS/RedHat, el paquete Varnish RPM incluye un script de inicio varnishncsa que puede usar para iniciar el registro. Por defecto, se registra en logfile="/var/log/varnish/varnishncsa.log".

Además, si desea servir a varios hosts diferentes a través de una única instalación de Varnish, también querrá incluir el nombre de host en el registro. Esto puede lograrse con el ajuste siguiente en /etc/sysconfig/varnishncsa

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

Tenga en cuenta que el método descrito en el enlace por Anshu sólo registra las solicitudes que se pasan a través de por el barniz a los servidores de fondo. Las solicitudes de aciertos de caché nunca se registrarán (antes de Varnish 5.0 - ver a continuación). Por lo tanto, los registros HTTPD recopilados de esta forma no se pueden usar para el análisis estadístico.

Actualización: Como se menciona @VikrantPogula, a partir de Varnish 5.0, se registran todas las solicitudes de los clientes, incluidos los hits de la caché. Este es el comportamiento predeterminado, y puede activarse explícitamente usando el interruptor -c.

+20

Para habilitar el registro de la realidad en Ubuntu: editar '/ etc/default/varnishncsa' uncomment' # VARNISHNCSA_ENABLED = 1' ejecutar 'varnishncsa servicio sudo restart' – George

+0

yo no era capaz de utilizar la opción -F en '/ etc/default/barnishncsa' (Ubuntu 14.04), probablemente debido a que el shell maneja citas de maneras extrañas. Cuando intenté reiniciar el servicio mediante 'sudo service varnishncsa restart', aparecieron las opciones de uso para barniz pero el servicio no se inició. Parece un error no resuelto para mí, mira: http: // giantdorks.org/alain/workaround-for-broken-varnishncsa-logging-due-to-shell-mishandling-of-spaces-in-log_format-variables/y https://bugs.debian.org/cgi-bin/bugreport.cgi ? bug = 657449 – Hirnhamster

3

En respuesta a la respuesta de Ketola, puede hacer que varnishncsa log even Solicite aciertos de caché, pasando el indicador -c. Esto te permitirá usar registros HTTPD para analizar estadísticas.

Ejemplo: varnishncsa -c -a -w ~/varnish.log escribirá solicitudes de aciertos de caché en el archivo en formato NCSA por defecto

6

métricas de barniz son un área común que las personas luchan.

Es relativamente fácil obtener algunas métricas de solicitud, pero el seguimiento general en el tiempo generalmente implica el uso de varnishncsa. Aquí es un guide on Varnish installation que incluye la configuración métrica

+0

gracias :) '' '' '' '' ' –

1

desde que aterrizó aquí y el sugerido fijo no ayudó:

Mi varnishncsa.log estaba vacío y el proceso estaba en marcha.

Resultó que tenía que especificar el formato de registro (cualquier formato).

Como esta información en sí misma no solucionó mi script de inicio, lo solucioné usando this strategy.