我正在实施Varnish作为Ruby on Rails应用程序的反向代理,我正在使用Google Analytics(JS /客户端脚本来logging访问者数据),但延迟了几个小时,因此无法知道现在发生了什么。 我需要一目了然的实时数据,包括引用stream量和当前需求/秒。 现在,我正在使用一个简单的Rack中间件应用程序来执行实时统计(gist.github.com/235745),但是如果大部分stream量都打上光油,Rack将永远不会被击中,所以这将不起作用。
到目前为止,我find的最接近的解决scheme是http://www.reinvigorate.net/,但是它的testing版(头版上也没有实现细节)。
清漆是否有stream量日志,我可以自定义格式来匹配我的Apache日志,所以我可以将它们结合起来,还是我将不得不推出像GA一样的实时显示数据的JS实现?
由于性能原因,清漆不logging。 他们确实允许你使用varnishncsa访问shm,但是,你有几个select。
如果大多数浏览者支持javascript(Google Analytics(分析)是如何工作的),则可以在页面的某处放置一个更新stream程的小型webbug。 或者,您可以将特定图像定义为pass,然后分析后端日志,因为每个请求都会将该请求发送到后端。
if (req.url == "^tracker.jpg$") { pass }
tracker.jpg很容易成为一种将数据插入到本地日志中的脚本,或者可以在后端http webserver的weblog上运行日志分析。 如果你使用的是Apache:
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" varnishcombined CustomLog /var/log/apache2/domain.com-access.log varnishcombined
将在大多数日志分析程序期望看到客户端IP的列中使用X-Forwarded-For标头。
看看varnishncsa ,尤其是-c选项。 这可能是你想要的。
如果你想要实时的信息,你应该看看varnishtop和varnishstat命令。 这两个更新每一秒。 如果你能承受几分钟的时间,你可以考虑使用像Monit或Cacti这样的图表工具。
看到这个博客文章介绍使用varnishstat 。