「AWStats」の設定

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

「AWStats」のインストール(「CentOS4.1」の場合のみ)

メールのログを変換する為のツールをインストールします。
なお、「CentOS5.0」では「Awstats」インストール時にインストールされるので必要ありません。

[root@CentOS ~]# wget http://jaist.dl.sourceforge.net/sourceforge/awstats/awstats-6.5.tar.gz <= 「AWStats」のダウンロード
[root@CentOS ~]# tar xzf awstats-6.5.tar.gz <= ダウンロードしたファイルの展開
[root@CentOS ~]# cp -r awstats-6.5/tools /var/www/awstats/ <= メールログ変換ツールのコピー
[root@CentOS ~]# rm -rf awstats-6.5* <= ダウンロードしたファイルの削除
「AWStats」の設定

新規に設定ファイルを作成します。
なお、「CentOS4.1」と「CentOS5.0」でログ変換スクリプトのインストール場所を変えていますので、その部分が違っています。

[root@CentOS ~]# vi /etc/awstats/awstats.postfix.conf <= 設定ファイルの作成
LogFile="perl /var/www/awstats/tools/maillogconvert.pl standard < /var/log/maillog |"
 <= 「maillogconvert.pl」のパスとログファイルのパスを指定(「CentOS4.1」の場合)
LogFile="perl /usr/bin/maillogconvert.pl standard < /var/log/maillog |"
 <= 「maillogconvert.pl」のパスとログファイルのパスを指定(「CentOS5.0」の場合)
LogType=M
LogFormat="%time2 %email %email_r %host %host_r %method %url %code %bytesd"
SiteDomain="crimson-snow.net" <= ドメインを指定
HostAliases="localhost 127.0.0.1 REGEX[myserver\.com$]"
DNSLookup=1
DirData="/var/www/awstats/postfix" <= AWStatsが保持する分析結果等のファイルを格納するディレクトリを指定
(絶対パスもしくはawstats.plからの相対パス)

DirCgi="/awstats" <= 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
LevelForWormsDetection=0
LevelForSearchEnginesDetection=0
LevelForFileTypesDetection=0
ShowMenu=1
ShowSummary=HB
ShowMonthStats=HB
ShowDaysOfMonthStats=HB
ShowDaysOfWeekStats=HB
ShowHoursStats=HB
ShowDomainsStats=0
ShowHostsStats=HBL
ShowAuthenticatedUsers=0
ShowRobotsStats=0
ShowEMailSenders=HBML
ShowEMailReceivers=HBML
ShowSessionsStats=0
ShowPagesStats=0
ShowFileTypesStats=0
ShowFileSizesStats=0
ShowBrowsersStats=0
ShowOSStats=0
ShowOriginStats=0
ShowKeyphrasesStats=0
ShowKeywordsStats=0
ShowMiscStats=0
ShowHTTPErrorsStats=0
ShowSMTPErrorsStats=1

ディレクトリの作成

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

[root@CentOS ~]# mkdir /var/www/awstats/postfix

オーナの変更

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

[root@CentOS ~]# chown apache /var/www/awstats/postfix <= 分析結果等の格納先のオーナをapacheに変更
[root@CentOS ~]# chmod 644 /var/log/maillog <= ログファイルのパーミッションを変更
「AWStats」の実行
[root@CentOS ~]# /var/www/awstats/awstats.pl -config=postfix -update

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

出力結果のHTML化

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

[root@CentOS ~]# /var/www/awstats/awstats.pl -config=postfix -output -staticlinks \
> /var/www/awstats/postfix.html

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

HTML化の自動実行

「Postfix」のログローテーションに合わせて実行するようにします。
また、ログ解析は maillog のみ行う為、その他のログローテーション時には実行しないようにします。

[root@CentOS ~]# vi /etc/logrotate.d/syslog <= 設定ファイルの編集
access_log のみスクリプトを実行するように以下を追加
/var/log/maillog {
    prerotate
        /var/www/awstats/awstats.pl -config=postfix -update > /dev/null
        /var/www/awstats/awstats.pl -config=postfix -output -staticlinks > /var/www/html/postfix.html
    endscript
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript

}
ここまで

/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {
↓
/var/log/messages /var/log/secure /var/log/spooler /var/log/boot.log /var/log/cron { <= 変更
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}
▲ページのトップへ