12.7. 統計情報の出力(cachemgr.cgi)

Squid は、/var/log/squid/access.log、/var/log/squid/cache.log、/var/log/squid/store.log の 3 つのログを出力しますが、これらのログを分析し、Squid の統計情報を出力するのが、キャッシュマネージャと呼ばれる CGI スクリプトです。キャッシュマネージャは /usr/lib/squid/cachemgr.cgi にインストールされます。しかし、このままでは CGI スクリプトである cachemgr.cgi を実行し、その統計情報を Web ブラウザで参照することはできません。Web サーバー Apache の設定を行い、このディレクトリに CGI スクリプトの実行許可を与えるか、すでに許可されているディレクトリに、cachemgr.cgi をコピーするなどの作業が必要となります。

ここでは、標準でインストールされる /usr/lib/squid/ ディレクトリで cachemgr.cgi を動作させるものとして説明します。Apache の詳細については 第9章を参照してください。Acache の設定ファイルである /etc/httpd/conf/httpd.conf ファイルに、以下の行を追加します。標準設定で /var/www/cgi-bin/ ディレクトリに関する設定がありますので、その後に追記すればよいでしょう。

ScriptAlias /squid/ "/usr/lib/squid/"

<Directory "/usr/lib/squid">
    AllowOverride None
    Options None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1 192.168.0.7
</Directory>

上記例では、/usr/lib/squid/ ディレクトリを /squid/ としてエイリアスを指定しています。つまり、サーバーのホスト名が www.turbolinux.co.jp の場合、クライアントは http://www.turbolinux.co.jp/squid/cachemgr.cgi でキャッシュマネージャにアクセスできるようになります。

Directory ディレクティブでは、セキュリティを考慮してキャッシュマネージャにアクセスできるホストを限定しています。上記の例では、localhost と 192.168.0.7 の IP アドレスを持つホストからのアクセスのみ許可するように設定しています。

また、必要に応じて /etc/squid/squid.conf でのアクセス制御も設定してください。すでに述べたとおり、/etc/squid/squid.conf の標準設定では localhost からのアクセスしか許可されていませんので、他のクライアントからキャッシュマネージャにアクセスするには、そのホストからのアクセスを許可する設定を追加する必要があります。

acl managerhost src 192.168.0.7/255.255.255.255

省略

http_access allow manager localhost
http_access allow manager managerhost
http_access deny manager

省略

/etc/httpd/conf/httpd.conf の設定が終了したら、変更を反映させるために Apache を再起動し、その後、Web ブラウザからキャッシュマネージャにアクセスします。

# /etc/init.d/httpd restart

キャッシュマネージャにアクセスすると、以下の画面が表示されます。

http_portタグによりポート番号を変更している場合はその番号を "Cache Port" へ入力します。"Manager name" と "Password" の欄は、空白のままで構いません。そのまま[Continue]をクリックすると次の画面が表示されます。

ここから、様々な統計情報を参照することができます。