Get varnishlog to log only 503 errors into file
I tried everything:
service varnishlog start
- logs everything
varnishlog -D -c -m TxStatus:503 > /var/log/varnish/varnish.log
- doesn't seem to be doing anything
varnishlog -c -m TxStatus:503 > /var/log/varnish/varnish.log
- only logs until I close my SSH connection
I'm out of options, any help?
Note: varnishncsa is not an option, since it doesn't tell me which error causes the 503. I'm running Varnish 3.x (latest) and CentOS 5.8 with Apache 2 as backend.
If I understand correctly varnishlog -c -m TxStatus:503 > /var/log/varnish/varnish.log does meet your needs but has the downside to stop once you close ssh.
If you need to temporary log 503 error, like for a few months, time to debug a problem, then you can look at nohup or screen.
If you need to permanently log 503 error, have a look at varnishlog init script (/etc/init.d/varnishlog ).
For those who land here in frustration looking for solution to the same problem in Varnish 4, see below:
varnishlog -a -w /var/log/varnish/varnish50x.log -q "RespStatus >= 500 or BerespStatus >= 500"
Varnish 4 did away with the -m option in varnishlog and instead came up with a new filter query language called VSL which is available in the new option -q. In the above command, -a provides appendonly option instead of overwriting the file, -w allows to write output to a file and -q is for the VSL query. Above command will log entries where varnish response or backend response status is >=500 (including the dreaded 503 error).