我想让Varnish记录请求。我找到了命令varnishlog -a -w /var/log/varnish.log,但它没有记录任何内容。
然后我发现Varnish在默认情况下不会写入日志。但是,我无法找到用于日志记录的配置选项。
发布于 2012-10-03 18:48:37
如果你想在NCSA Common Log Format中记录超文本传输协议请求,你需要使用varnishncsa。在CentOS/RedHat上,Varnish RPM包包含一个varnishncsa init脚本,您可以使用该脚本开始日志记录。默认情况下,它会记录到logfile="/var/log/varnish/varnishncsa.log"。
此外,如果您希望通过一次Varnish安装为多个不同的主机提供服务,则还需要在日志中包含主机名。这可以通过/etc/sysconfig/varnishncsa中的以下设置来完成
DAEMON_OPTS="$DAEMON_OPTS -F '%{Host}i %h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\"'"请注意,Anshu的链接中描述的方法只记录Varnish传递到后端服务器的请求。缓存命中请求将永远不会被记录(在Varnish 5.0之前-见下文)。因此,通过这种方式收集的HTTPD日志不能用于统计分析。
更新:正如@VikrantPogula提到的,从Varnish5.0开始,所有客户端请求都被记录下来-包括缓存命中。这是默认行为,可以使用-c开关显式打开。
发布于 2015-05-04 12:27:27
Varnish中的指标是人们努力解决的一个共同领域。
获得一些一次性的请求指标相对容易,但随着时间的推移,总体跟踪通常涉及到使用varnishncsa。下面是一个包含指标设置的guide on Varnish installation
发布于 2014-10-10 16:03:57
作为对Ketola的回答的响应,您可以通过传递-c标志来让varnishncsa记录甚至缓存命中请求。这将允许您使用HTTPD日志来分析统计数据。
示例:varnishncsa -c -a -w ~/varnish.log将以默认NCSA格式将缓存命中请求写入文件
https://stackoverflow.com/questions/12705252
复制相似问题