How to setup Varnish logging?

前端 未结 5 1950
野性不改
野性不改 2020-12-08 22:47

I want to get Varnish to log requests. I found the command varnishlog -a -w /var/log/varnish.log, but it does not log anything.

Then I found that Varnis

5条回答
  •  盖世英雄少女心
    2020-12-08 23:26

    If you want to log HTTP requests in NCSA Common Log Format you need to use varnishncsa. On CentOS/RedHat, the Varnish RPM package includes a varnishncsa init script that you can use to start logging. By default it logs to logfile="/var/log/varnish/varnishncsa.log".

    Additionally if you wish to serve several different hosts through a single Varnish install, you'll want to include the host name in the log as well. This can be accomplished with the following setting in /etc/sysconfig/varnishncsa

    DAEMON_OPTS="$DAEMON_OPTS -F '%{Host}i %h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\"'"
    

    Please note that the method described in the link by Anshu only logs the requests that are passed through by Varnish to the backend servers. Cache hit requests will never be recorded (before Varnish 5.0 - see below). Therefore the HTTPD logs gathered this way cannot be used for statistical analysis.

    Update: As @VikrantPogula mentioned, as of Varnish 5.0 all client requests are logged - including cache hits. This is the default behavior, and can be switched on explicitly using the -c switch.

提交回复
热议问题