题 获取varnishlog仅将503个错误记录到文件中


我尝试了一切:

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作为后端。


5
2017-08-03 10:31






答案:


如果我理解正确varnishlog -c -m TxStatus:503> /var/log/varnish/varnish.log确实满足了你的需求,但是一旦你关闭ssh就会有缺点。

如果你需要临时记录503错误,比如几个月,调试问题的时间,那么你可以看看nohup或screen。

如果您需要永久记录503错误,请查看varnishlog init脚本(/etc/init.d/varnishlog)。


3
2017-08-03 10:50



编辑 /etc/init.d/varnishlog 没有效果(仍记录所有命中)。试着 nohup,再次登录,它仍在进程列表中,所以我猜它有效。谢谢! - Eduard Luca


对于那些沮丧地寻找解决Varnish 4中同样问题的人来说,请看下面:

varnishlog -a -w /var/log/varnish/varnish50x.log -q "RespStatus >= 500 or BerespStatus >= 500"

Varnish 4在varnishlog中删除了-m选项,而是提出了一种名为VSL的新过滤器查询语言,该语言在新选项-q中可用。在上面的命令中,-a提供appendonly选项而不是覆盖文件,-w允许将输出写入文件,-q用于VSL查询。上面的命令将记录varnish响应或后端响应状态> = 500的条目(包括可怕的503错误)。


7
2017-12-26 12:54



谢谢,这个命令在一个 tmux 贝壳的工作就像一个魅力! - lucaferrario
如果您使用最新的Varnish 4.1,请记住在参数中添加“-A”(因此列表变为 -a -A -w ... 有一个ASCII日志(否则Varnish写一个二进制日志) - lucaferrario