「AWStats」の設定

「AWStats」を用いて「Squid」のログ解析を行います。
なお、「Apache」の設定「Squid」の設定Webアクセスログ解析(AWStats)は完了済みとします。

「AWStats」の設定

新規に設定ファイルを作成します。

Gentoo ~ # vi /etc/awstats/awstats.squid.conf <= 設定ファイルの作成
LogFile="/var/log/squid/access.log" <= ログファイルのパスを指定
LogType=W
LogFormat=4
SiteDomain="crimson-snow.net" <= ドメインを指定
HostAliases="localhost 127.0.0.1 REGEX[myserver\.com$]"
DNSLookup=1
DirData="/var/lib/awstats/squid" <= AWStatsが保持する分析結果等のファイルを格納するディレクトリを指定
(絶対パスもしくはawstats.plからの相対パス)

DirCgi="/awstats/cgi-bin" <= awstats.plが格納されているディレクトリを指定
(絶対URLもしくはWWWサーバのルートディレクトリからの相対URL)

DirIcons="/awstats/icon" <= アイコンファイルが格納されているディレクトリを指定
(絶対URLもしくはWWWサーバのルートディレクトリからの相対URL)

EnableLockForUpdate=0
AllowAccessFromWebToFollowingIPAddresses=""
AllowToUpdateStatsFromBrowser=1
Lang="jp"

LevelForBrowsersDetection=0
LevelForOSDetection=0
LevelForRefererAnalyze=0
LevelForRobotsDetection=0
LevelForSearchEnginesDetection=0
LevelForKeywordsDetection=0
LevelForWormsDetection=0

ShowDomainsStats=0
ShowRobotsStats=0
ShowFileSizesStats=0
ShowOSStats=0
ShowBrowsersStats=0
ShowOriginStats=0
ShowKeyphrasesStats=0
ShowKeywordsStats=0

ディレクトリの作成

AWStatsが保持する分析結果等のファイルを格納するディレクトリを作成します。

Gentoo ~ # mkdir /var/lib/awstats/squid

オーナの変更

「AWStats」の設定で AllowToUpdateStatsFromBrowser を 1 にしましたが、 これは、出力結果に更新ボタンを設置し、ブラウザから最新のログの情報に更新します。
ただ、Apacheのユーザ権限で更新しますので、パーミッションエラーが起きます。
そこで、必要なディレクトリのオーナを変更します。
この作業は AllowToUpdateStatsFromBrowser を 0 に設定していれば必要ありません。

Gentoo ~ # chown apache /var/lib/awstats/squid <= 分析結果等の格納先のオーナをapacheに変更
Gentoo ~ # chmod 644 /var/log/squid/access.log <= ログファイルをapacheから見れるようにする
「Squid」の設定

「Squid」のログ形式を「AWStats」用に変更します。

Gentoo ~ # vi /etc/squid/squid.conf <= 設定ファイルの編集
# emulate_httpd_log off
↓
emulate_httpd_log on <= 変更

古いログファイルを削除します。

Gentoo ~ # rm /var/log/squid/access.log

「Squid」を再起動し、設定を反映させます。

Gentoo ~ # /etc/init.d/squid reload
「AWStats」の実行
Gentoo ~ # /usr/share/webapps/awstats/6.5-r1/htdocs/cgi-bin/awstats.pl -config=squid -update

http://サーバのIPアドレス/awstats/cgi-bin/awstats.pl?config=squid
でアクセスできれば問題ありません。

出力結果のHTML化

上記のままの設定で問題ありませんが、アクセスするたびにCGIスクリプトが実行されますので、 表示が遅く、サーバにも負荷がかかります。
そこで、出力結果をHTML化します。

Gentoo ~ # /usr/share/webapps/awstats/6.5-r1/htdocs/cgi-bin/awstats.pl -config=squid -output -staticlinks \
> /usr/share/webapps/awstats/6.5-r1/htdocs/squid.html

http://サーバのIPアドレス/awstats/squid.html
でアクセスできれば問題ありません。

HTML化の自動実行

「Squid」のログローテーションに合わせて実行するようにします。

Gentoo ~ # vi /etc/cron.weekly/squid.cron <= ローテーションファイルの編集
中身を以下のように変更
if test -e /var/run/squid.pid ; then
        if test -n "$(cat /var/run/squid.pid|xargs ps -p|grep squid)" ; then
                if test -x /usr/share/webapps/awstats/6.5-r1/htdocs/cgi-bin/awstats.pl ; then
                        /usr/share/webapps/awstats/6.5-r1/htdocs/cgi-bin/awstats.pl -config=squid -update > /dev/null
                        /usr/share/webapps/awstats/6.5-r1/htdocs/cgi-bin/awstats.pl -config=squid -output -staticlinks > /usr/share/webapps/awstats/6.5-r1/htdocs/squid.html
                fi
                /usr/sbin/squid -k rotate
        fi
fi
▲ページのトップへ