Назад | Перейти на главную страницу

Получите 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 в качестве серверной части.

Для тех, кто разочарован в поисках решения той же проблемы в 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).