2012-10-03 7 views
12

リクエストを記録するためにワニスを取得したいと考えています。コマンドvarnishlog -a -w /var/log/varnish.logが見つかりましたが、何もログに記録されません。ワニスロギングの設定方法は?

次に、Varnishがデフォルトでログに書き込まないことがわかりました。しかし、私はロギングの設定オプションを見つけることができません。

+1

varnishlog -wをバージョン<3.0.3で使用する場合は、ニスを再起動するたびに再起動する必要があります。実際にUbuntuの上でログを有効にするには – Doomsday

答えて

22

NCSA Common Log FormatにHTTPリクエストを記録する場合は、varnishncsaを使用する必要があります。 CentOS/RedHat上で、Varnish RPMパッケージには、ログを開始するために使用できるvarnishncsa initスクリプトが含まれています。デフォルトでは、logfile="/var/log/varnish/varnishncsa.log"に記録されます。

さらに、単一のVarnishインストールで複数の異なるホストにサービスを提供する場合は、ホスト名もログに含めることをお勧めします。これはAnshuによってリンクに記載された方法は、唯一のバックエンドサーバにニスが通過している要求をログに記録しますので、予めご了承ください/etc/sysconfig/varnishncsa

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

に以下の設定を行うことができます。 キャッシュヒット要求は決して記録されません。(Varnish 5.0より前 - 以下を参照)。したがって、このようにして収集されたHTTPDログは、統計分析には使用できません。

更新: @VikrantPogulaが述べたように、Varnish 5.0以降、すべてのクライアント要求が記録されます(キャッシュヒットを含む)。これはデフォルトの動作であり、スイッチ-cを使用して明示的にオンにすることができます。

+20

: 編集 'は、/ etc/default/varnishncsa' コメント解除'#VARNISHNCSA_ENABLED = 1 ' 実行 'sudoのサービスvarnishncsaのrestart' – George

+0

は私がで-Fオプションを使用することができませんでした'/ etc/default/varnishncsa'(Ubuntu 14.04)を使用している可能性があります。 'sudo service varnishncsa restart'でサービスを再開しようとすると、ワニスの使用オプションが表示されましたが、サービスは開始されませんでした。未解決のバグのように見えます。http:// giantdorksを参照してください。org/alain/workaround-for-broken-varnishncsa-logging-for-mis-of-spaces-in-log_format-variables /およびhttps://bugs.debian.org/cgi-bin/bugreport.cgi ?バグ= 657449 – Hirnhamster

3

Ketolaの答えに応じて、-cフラグを渡して、varnishncsaにキャッシュヒット要求を記録させることができます。これにより、HTTPDログを使用して統計を分析することができます。

例:ワニス中varnishncsa -c -a -w ~/varnish.logはデフォルトNCSA形式のファイルにキャッシュヒット要求を書きます

6

メトリックの人が苦労していることを共通の領域です。

リクエストメトリックを取得するのは比較的簡単ですが、一般的には、varnishncsaの使用が一般的です。

マイvarnishncsa.logが空だったとプロセスが実行していた:私はここに上陸したと示唆した固定するのでここで助けにはならなかったメトリックの設定

+0

ありがとう:) '' '' '' '' ' –

1

が含まguide on Varnish installationです。

ログ形式(任意の形式)を指定する必要がありました。

この洞察自体は私のinitスクリプトを修正していないので、this strategyを使って修正しました。

関連する問題