LoginSignup
1
2

More than 3 years have passed since last update.

varnishlogで特定のログのみ出力する方法

Last updated at Posted at 2018-10-20

Varnishのログは、以下のコマンドを実行して確認できます。

※ 導入やデバッグまでの手順については、以下を参考にしてください

Varnishを自社メディアに導入しました - LCL Engineers' Blog
LCLで運営している「バスとりっぷ」というメディアに、キャッシュサーバとしてVarnishを導入しました。導入する上でハマった事・得たノウハウなどを...
image.png
$ varnishlog

実行後はリクエストが送られるたびにキャッシュ対象のパス毎のログが出力されます。
それらの中から特定の値を見つければよいのですが、1つのログの出力はとても多いため目視で探すのは非常に困難です。
また、必要のないfaviconや画像などのアセットなどのログも大量に出力されるので1画面に収まることは少ないと思います。

この場合、varnishlogのオプションを利用することで欲しい情報のみを出力するようにできます。
今回は、キャッシュの存在を確認する方法を例にして説明します。

URLのみ出力する

URLはReqURLのタグで設定されているため、このタグのみ出力するよう指定します。

$ varnishlog -i requrl

*   << BeReq    >> 36

*   << Request  >> 35
-   ReqURL         /hoge/

*   << Session  >> 34

*   << Request  >> 32800
-   ReqURL         /assets/hoge/pc/application-b9fdskjaflsdkjfec0db473f11ef2345a932ec9cc31aa23ualfhahiuhaf.css

*   << Session  >> 32799

*   << BeReq    >> 32801

*   << BeReq    >> 39

*   << Request  >> 38
-   ReqURL         /images/hoge/logo.png

*   << Session  >> 37

*   << BeReq    >> 131075

*   << Session  >> 131073

...

RespHeaderタグのX-Cacheのみ出力する

URLに加えて、キャッシュフラグも表示します。
RespHeaderはいくつもの値が設定されているため、正規表現を使える-IX-Cache:を含めます。

$ varnishlog -I "RespHeader:X-Cache:" -i requrl

*   << Request  >> 196616
-   ReqURL         /hoge/
-   RespHeader     X-Cache: HIT desktop

*   << Session  >> 196615

*   << Request  >> 47
-   ReqURL         /assets/hoge/pc/application-b9fdskjaflsdkjfec0db473f11ef2345a932ec9cc31aa23ualfhahiuhaf.css
-   RespHeader     X-Cache: HIT desktop

*   << Session  >> 46

*   << Request  >> 196618
-   ReqURL         /images/bustrip/logo.png
-   RespHeader     X-Cache: HIT desktop

*   << Session  >> 196617

特定のURLのみ出力する

上記で出力したい要件は満たせていますが、他のURLも出力されてしまってノイズが多いです。
そこで/hoge/のみを指定して出力するようにします。

$ varnishlog -I "RespHeader:X-Cache:" -i requrl -q "ReqUrl eq '/hoge/'"

*   << Request  >> 196627
-   ReqURL         /hoge/
-   RespHeader     X-Cache: HIT desktop

以上で必要なログのみ出力できるようになりました。

補足
/hoge/
/images/hoge/img_sample.png
/hoge/?utm_source=fuga&utm_medium=referral&utm_content=nonews

これらを判別する際は正規表現を使うとよいです。

$ varnishlog -I "RespHeader:X-Cache:" -i requrl -q 'ReqUrl ~ "^\/hoge\/"'

他にも画像、アセットのみ除外はこのように書きます。

$ varnishlog -I "RespHeader:X-Cache:" -i requrl -q 'ReqUrl !~ "(jpg|jpeg|gif|png|bmp|assets)"'

クエリの種類:https://feryn.eu/blog/varnishlog-measure-varnish-cache-performance/#VSL_queries

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2