是否有人开发或知道任何第三方工具(或不明显使用的库存工具)来帮助糟糕的系统管理员确定通过 Varnish 的请求发生了什么?虽然varnishstat
、varnishtop
和varnishhist
给我非常高级(或低级)的概述,但我正在寻找能告诉我以下内容的东西:
- 当前正在进行哪些请求(以及它们已经这样多久了,它们被发送到了哪里,诸如此类)
- 后端、虚拟主机等请求的平均服务时间
- 其他可以帮助我识别行为不端的后端、虚拟主机等的东西。
是否有人开发或知道任何第三方工具(或不明显使用的库存工具)来帮助糟糕的系统管理员确定通过 Varnish 的请求发生了什么?虽然varnishstat
、varnishtop
和varnishhist
给我非常高级(或低级)的概述,但我正在寻找能告诉我以下内容的东西:
varnishncsa
以Apache/NCSA组合日志格式显示日志(来自手册页)。您可以将它们与任何普通的日志分析器一起使用,以查找您拥有哪些用户代理、它们加载了哪些页面等。varnishlog
(/usr/bin/varnishlog
) 另一方面显示所有请求的详细输出,包含诸如正在使用哪些 VCL 命令(查找、散列、命中、交付等)和 HTTP 事务中的所有标头(varnishlog -o
将按请求分组)等信息。如果您有一个繁忙的站点,这将很快滚动浏览,但您可以使用 将它们写入磁盘-w
,或使用记录器工具 (/etc/init.d/varnishlog
)。请注意,这会很快填满磁盘,因为它非常详细(每个请求 10-30 行,具体取决于请求的发送位置,当然还有所有 HTTP 标头)。varnishreplay
可以从这样的日志文件重放 HTTP 流量。大多数工具都可以与正则表达式搜索一起使用。
制作 Varnish 的公司Redpill Linpro目前正在制作 web gui。我不确定它会有哪些功能(我认为他们也不太清楚),但我确信它会有很多监控图。
清漆:
一个技巧是使用自定义日志格式
varnishncsa
来包含更多有用的信息,例如:我使用以下内容
/etc/varnish/varnishncsa
添加此信息(varnishncsa 文档):这种配置允许我通过 grep 访问日志并添加历史命中率以及查找响应缓慢的页面。
清漆日志:
如本问题/答案中所述,如果您让 varnish 对后端执行健康检查,则可以使用 varnishlog 记录后端健康状况的变化。Running
varnishlog -O -I "healthy|sick"
将根据运行状况检查为您提供后端运行状况的运行更新。