「SARG」の設定

「SARG」を用いて「Squid」のログ解析を行います。
なお、「Apache」の設定「Squid」の設定は完了済みとします。

「SARG」のインストール
[root@CentOS ~]# mkdir /usr/local/src/sarg <= 作業用ディレクトリの作成
[root@CentOS ~]# chmod 777 /usr/local/src/sarg <= 作業用ディレクトリのパーミッション変更
[root@CentOS ~]# exit <= 一般ユーザになる
[kaz@CentOS ~]$ cd /usr/local/src/sarg <= 作業用ディレクトリへ移動
[kaz@CentOS sarg]$ wget http://jaist.dl.sourceforge.net/sourceforge/sarg/sarg-2.2.2.tar.gz
 <= 「SARG」のソースをダウンロード
[kaz@CentOS sarg]$ tar xzf sarg-2.2.2.tar.gz <= ダウンロードしたファイルの展開
[kaz@CentOS sarg]$ cd sarg-2.2.2 <= 展開したディレクトリに移動

このままコンパイルすることも出来ますが、その場合ログのレポートを日本語で表示すると文字化けを起こしてしまいますので、 ソースファイルを編集します。
なお、sarg-2.2.3では既に記述されていますので、この修正は必要ありません。

[root@CentOS sarg-2.2.2]$ vi /usr/local/src/sarg/sarg-2.2.2/charset.c
void ccharset()
{
   if(strcmp(CharSet,"Latin2") == 0) strcpy(CharSet,"ISO-8859-2");
   else if(strcmp(CharSet,"Latin3") == 0) strcpy(CharSet,"ISO-8859-3");

   else if(strcmp(CharSet,"Japan") == 0) strcpy(CharSet,"EUC-JP"); <= 追加
   return;
}

上記の編集終了後、インストールします。

[kaz@CentOS sarg-2.2.2]$ ./configure 2>&1 | tee configure.log
[kaz@CentOS sarg-2.2.2]$ make 2>&1 | tee make.log <= コンパイル
[kaz@CentOS sarg-2.2.2]$ su <= スーパーユーザになる
パスワード(P): <= パスワードの入力
[root@CentOS sarg-2.2.2]# make install 2>&1 | tee make-install.log <= インストール
「SARG」の設定
[root@CentOS ~]# vi /usr/local/sarg/sarg.conf <= 設定ファイルの作成
#language English
↓
language Japanese <= 変更

#access_log /usr/local/squid/var/logs/access.log
↓
access_log /var/log/squid/access.log <= ログファイルを指定

#output_dir /var/www/html/squid-reports
↓
output_dir /var/www/squid-reports <= 「SARG」の出力先を指定

#charset Latin1
↓
charset Japan <= charsetを指定

ディレクトリの作成

「SARG」が出力するディレクトリを作成します。

[root@CentOS ~]# mkdir /var/www/squid-reports

日本語ファイルの設定

「SARG」の日本語の設定ファイルがおかしいので修正します。

[root@CentOS ~]# vi /usr/local/sarg/languages/Japanese <= 設定ファイルの編集
"Abuse レポート" <= 削除

"Making Abuse report" <= 削除

"Squid Abuse Report" <= 削除

"Authentication failures"
"拒否" <= 追加
"トップサイト" <= 追加
"SQUIDGUARD"

"Sarg log format"
"ダウンロード" <= 追加
"Graphic"

"Topuser" <= 削除
「Apache」の設定

「SARG」が出力したディレクトリにアクセス出来るように「Apache」を設定します。

[root@CentOS ~]# vi /etc/httpd/conf.d/sarg.conf <= 設定ファイルの作成
Alias /squid-reports/ "/var/www/squid-reports/"
<Directory "/var/www/squid-reports/">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

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

[root@CentOS ~]# /etc/rc.d/init.d/httpd restart
「SARG」の実行

「CentOS」はデフォルトでは文字コードがUTF-8ですので、EUC-JPに変更してから実行します。

[root@CentOS ~]# export LANG=ja_JP.EUC-JP
[root@CentOS ~]# sarg

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

「SARG」の自動実行

文字コードをEUC-JPに変更してから「SARG」を実行するスクリプトファイルを作成し、 「Squid」のログローテーションに合わせて実行するようにします。

[root@CentOS ~]# vi sarg.sh <= スクリプトファイルの新規作成
#!/bin/sh

LANG=ja_JP.EUC-JP

/usr/bin/sarg > /dev/null 2>&1

[root@CentOS ~]# chmod 755 sarg.sh <= スクリプトファイルに実行権限を付加

[root@CentOS ~]# vi /etc/logrotate.d/squid <= 設定ファイルの編集
/var/log/squid/access.log {
    weekly
    rotate 5
    copytruncate
    compress
    notifempty
    missingok
    prerotate <= 追加
        /root/sarg.sh <= 追加
    endscript <= 追加
}
▲ページのトップへ