Varnish にリクエストを記録させたい。コマンドを見つけましたvarnishlog -a -w /var/log/varnish.log
が、何もログに記録されません。
その後、Varnish はデフォルトでログに書き込まないことがわかりました。ただし、ログの構成オプションが見つかりません。
HTTPリクエストをNCSACommonLog Formatでログに記録する場合は、を使用する必要がありますvarnishncsa
。CentOS / RedHatでは、Varnish RPMパッケージに、ロギングの開始に使用できるvarnishncsainitスクリプトが含まれています。デフォルトでは、にログを記録しlogfile="/var/log/varnish/varnishncsa.log"
ます。
さらに、1回のVarnishインストールで複数の異なるホストにサービスを提供する場合は、ホスト名もログに含める必要があります。これは、次の設定で実現できます。/etc/sysconfig/varnishncsa
DAEMON_OPTS="$DAEMON_OPTS -F '%{Host}i %h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\"'"
Anshuによるリンクで説明されている方法では、Varnishによってバックエンドサーバーに渡されたリクエストのみがログに記録されることに注意してください。キャッシュヒットリクエストは記録されません(Varnish 5.0より前-以下を参照)。したがって、この方法で収集されたHTTPDログは、統計分析には使用できません。
更新: @VikrantPogulaが述べたように、Varnish 5.0以降、すべてのクライアント要求がログに記録されます-キャッシュヒットを含みます。これはデフォルトの動作であり、-c
スイッチを使用して明示的にオンに切り替えることができます。
Varnish のメトリクスは、人々が苦労する共通の領域です。
1 回限りのリクエスト メトリックを取得するのは比較的簡単ですが、時間の経過に伴う全体的な追跡には、通常、varnishncsa を使用する必要があります。これは、メトリックのセットアップを含むワニスのインストールに関するガイドです