squidを経由してサイトにアクセスした場合、通常はどの端末がどのサイトへアクセスしたかの記録がログとして残される。 ログが残される場所は、squid.conf
の中のcache_access_log タグで指定された場所で、通常は "/var/log/squid/access.log"
となっている
ログにはどの端末から、何時、どこへアクセスしたか記録される。これを調べることで、端末がどんなサイトへどのようなリクエストを要求したかが容易に判るようになっている。
ログはテキスト形式で記録されているが、デフォルトではsquid独自の形式で記録されるがApacheなどと同じCLF形式とすることもできる。
(squidのaccessログの例)
::
1050591018.410 364 192.168.1.97 TCP_MISS/302 500 GET http://www.microsoft.com/isapi/redir.dll?
- DIRECT/207.46.134.155 text/html
1050591018.594 88 192.168.1.97 TCP_MISS/302 396 GET http://www.msn.co.jp/ - DIRECT/207.46.68.11 text/html
1050591018.976 270 192.168.1.97 TCP_MISS/200 34996 GET http://www.msn.co.jp/home.armx - DIRECT/207.46.68.11 text/html
::
ログの記録形式は、以下のような10の項目で構成される。
%9d.%03d %6d %s %s/%03d %d %s %s %s %s%s/%s %s
10項目は順に次のような内容が記録される。
- %9d.%03d --- ミリ秒で表現されるUTC(1970/1/1基点)の時間
- %6d --- 継続時間(ミリ秒)
- %s --- クライアントアドレス
- %s/%03d --- リザルトコード(結果コード)
- %d --- 転送バイト数
- %s --- リクエストメソッド
- %s --- URL
- %s --- RFC391
- %s%s/%s --- 階層コード
- %s --- タイプ
それぞれの詳しい意味は
こちらを参照。
しかしこのログ形式では特に時間(アクセス日時)が1970年1月1日からの秒時間(UTC時間)で記録されている為に、そのままではいつアクセスされたのかが判りにくい。
もし、ログを管理するならWebサーバなどのログ形式と同じ出力形式となっていた方が管理しやすい。 squidには、Webサーバなどのログ出力形式と同じ形式(CLF)で出力させるためのオプションが用意されている。
これには、squid.conf 設定ファイルの中で「emulate_httpd_log=on 」を指定すれば良い。
また、既にUTC時間で記録されてしまったログファイルの時間は、 Perl スクリプトで簡単に変換する事ができる。
Webalizer は、元々はWebサーバのログを解析するツールですが、Squid型式のLogも解析できるようになっており、解析したログがHTML形式で保存されるようになっています。解析結果は、いつ、どんなサイトにどれだけアクセスしたかや、どのページを閲覧したかなどをグラフィカルに表示してくれます。
詳しくは
こちらをご覧ください。
SARG (Squid Analysis Report Generator) は、Squid によって記録されたログファイルから、「誰が、どのサイトに、何時見に行ったか、どの位データをダウンロードしたか」などの情報をHTML型式のレポートにして報告するツールです。
詳しくは
こちらをご覧ください。