我尝试了所有方法:
service varnishlog start
- 记录一切
varnishlog -D -c -m TxStatus:503 > /var/log/varnish/varnish.log
- 似乎什么也没做
varnishlog -c -m TxStatus:503 > /var/log/varnish/varnish.log
- 仅记录直到我关闭 SSH 连接
我没选择了,有什么可以帮忙的吗?
注意:varnishncsa 不是一个选项,因为它没有告诉我哪个错误导致了 503。我正在运行 Varnish 3.x(最新版本)和 CentOS 5.8,并以 Apache 2 作为后端。
答案1
如果我理解正确的话,varnishlog -c -m TxStatus:503 > /var/log/varnish/varnish.log 确实可以满足您的需求,但缺点是一旦关闭 ssh 就会停止。
如果你需要临时记录 503 错误,比如等几个月,有时间来调试一个问题,那么你可以看看 nohup 或 screen。
如果需要永久记录 503 错误,请查看 varnishlog 初始化脚本(/etc/init.d/varnishlog)。
答案2
对于那些因沮丧而寻找 Varnish 4 中相同问题的解决方案的人,请参见下文:
varnishlog -a -w /var/log/varnish/varnish50x.log -q "RespStatus >= 500 or BerespStatus >= 500"
Varnish 4 取消了 varnishlog 中的 -m 选项,而是提出了一种名为 VSL 的新过滤查询语言,该语言可在新选项 -q 中使用。在上述命令中,-a 提供仅附加选项而不是覆盖文件,-w 允许将输出写入文件,-q 用于 VSL 查询。上述命令将记录 varnish 响应或后端响应状态 >=500(包括可怕的 503 错误)的条目。