Ведение журнала в Varnish
Одна из действительно замечательных функций Varnish — это система ведения журнала. Вместо записи в обычный файл журнала Varnish записывает в сегмент общей памяти, называемый VSL — Varnish Shared Log. Когда сегмент заполняется, мы начинаем с начала, перезаписывая старые данные.
Это намного быстрее, чем запись в файл, и не требует места на диске. Кроме того, это предоставляет вам гораздо больше информации, когда вам это нужно.
Обратная сторона заключается в том, что если вы забудете запустить программу, которая запишет журналы на диск, они будут перезаписаны.
varnishlog — это одна из программ, которые можно использовать для просмотра того, что регистрирует Varnish. varnishlog предоставляет вам исходные журналы, всё, что записывается в журналы. Есть и другие клиенты, которые могут получить доступ к журналам, мы покажем их позже.
В окне терминала, в котором вы запустили Varnish, теперь наберите varnishlog -g raw и нажмите Enter.
Вы увидите медленно прокручивающиеся строки такого вида:
0 CLI - Rd ping 0 CLI - Wr 200 19 PONG 1273698726 1.0
Это главный процесс Varnish проверяет процесс кэширования, чтобы убедиться, что всё в порядке.
Теперь перейдите в браузер и перезагрузите страницу, отображающую ваше веб-приложение.
Вы увидите строки следующего вида:
11 SessOpen c 127.0.0.1 58912 :8080 0.0.0.0 8080 1273698726.933590 14 11 ReqStart c 127.0.0.1 58912 11 ReqMethod c GET 11 ReqURL c / 11 ReqProtocol c HTTP/1.1 11 ReqHeader c Host: localhost:8080 11 ReqHeader c Connection: keep-alive
Первый столбец — произвольное число, оно идентифицирует транзакцию. Строки с одинаковым числом поступают из одной и той же транзакции. Второй столбец — метка сообщения журнала. Все записи в журнале помечены меткой, указывающей вид выполняемой операции.
Третий столбец показывает, поступают ли данные от клиента или к нему («c») или от/к бэкенду («b»). Четвёртый столбец — это регистрируемые данные.
Теперь вы можете фильтровать данные с помощью varnishlog. Основные параметры, которые вам, вероятно, понадобятся:
- ‘-b’
-
Показывать только строки журнала из трафика между Varnish и серверами бэкенда. Это будет полезно при оптимизации показателя попадания в кэш.
- ‘-c’
-
То же, что и ‘-b’, но для трафика со стороны клиента.
- ‘-g request’
-
Группировать транзакции по запросу.
- ‘-q query’
-
Выводить только транзакции, соответствующие этому запросу.
Дополнительную информацию по этой теме вы можете найти в varnishlog.
Copyright © 2006 Verdens Gang AS
Copyright © 2006–2020 Varnish Software AS
Licensed under the BSD-2-Clause License.
https://varnish-cache.org/docs/7.4/users-guide/operation-logging.html