Все перепробовал:
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 в качестве серверной части.
Для тех, кто разочарован в поисках решения той же проблемы в Varnish 4, см. Ниже:
varnishlog -a -w /var/log/varnish/varnish50x.log -q "RespStatus >= 500 or BerespStatus >= 500"
Varnish 4 отказался от опции -m в varnishlog и вместо этого предложил новый язык запросов фильтров, называемый VSL, который доступен в новой опции -q. В приведенной выше команде -a предоставляет параметр appendonly вместо перезаписи файла, -w позволяет записывать вывод в файл, а -q - для запроса VSL. Вышеупомянутая команда будет регистрировать записи, в которых статус ответа varnish или backend> = 500 (включая ужасную ошибку 503).
Если я правильно понимаю, varnishlog -c -m TxStatus: 503> /var/log/varnish/varnish.log действительно соответствует вашим потребностям, но имеет обратную сторону, которая останавливается после закрытия ssh.
Если вам нужно временно зарегистрировать ошибку 503, например, в течение нескольких месяцев, время отладить проблему, вы можете посмотреть на nohup или на экран.
Если вам нужно постоянно регистрировать ошибку 503, взгляните на сценарий инициализации varnishlog (/etc/init.d/varnishlog).