|Home|私のLinux活用記録-Home-|

私のLinux活用記録

-Page18-

 

[Webalizer の導入]

作成:2004年04月29日

Web Server のアクセス解析ソフト Webalizer を導入しました。解析結果は 非公開にしていますが、導入の要領と運用上の要点をまとめたので、掲載します。

参考ホームページ
http://www.mm-labo.com/computer/linux/webalizer.html
http://penguin.nakayosi.jp/linux/webalz.html

パッケージ
webalizer-2.01.10-0vl1.i386.rpm from Vine Plus

インストール
# rpm -ivh webalizer-2.01.10-0vl1.i386.rpm

設定ファイル
解析対称のログファイルは /var/log/httpd/access_log (Apache のデフォルト)
解析結果のデータファイルを配置するディレクトリは /mnt/hdc1/webalizer としています。
設定ファイルは /etc/webalizer.conf です。以下の項目のみ編集します。

LogFile        /var/log/httpd/access_log
OutputDir      /mnt/hdc1/webalizer

Apache の設定
Apache の設定ファイル /etc/httpd/conf/httpd.conf へ以下を追記します。

<Directory /mnt/hdc1/webalizer> <== /mnt/hdc1/webalizer のアクセス権限設定
Order deny,allow
Deny from all          <== すべてのクライアントからのアクセスを拒否
Allow from 192.168.1.2 <== ローカルクライアント 192.168.1.2 からのアクセスを許可
</Directory>
Alias /webalizer /mnt/hdc1/webalizer <== http://SERVER_NAME/webalizer を
                                         /mnt/hdc1/webalizer に読みかえ

webalizer の実行と結果の検索
■ webalizer の実行
# /usr/bin/webalizer
■ 結果の検索
ブラウザーから http://SERVER_NAME/webalizer とします。

cron による自動実行
デフォルトでは、/etc/cron.weekly/ 配下に webalizer.cron が設定されているので、一週間に一度は自動実行されます。
cron を用いて毎日指定の時刻に webalizer を自動実行するには、/etc/crontab に以下の一行を追加します。
mm hh * * * * root /usr/bin/webalizer
mm:webalizer を起動する時刻(分:00〜59)
hh:webalizer を起動する時刻(時:00〜23)
この設定では、一日一回、指定の時刻に webalizer が実行されます。

若干の問題への対応
最近、Long URL を使った不正アクセス(アタック?) が頻繁にあります。これらのログが、access_log に溜ってくると、webalizer が正常に動作しなくなるようです。
対策としては、不正アクセスしてくる IP Address を塞ぐのが安全なのですが、218.xxx.xxx.xxx 219.xxx.xxx.xxx など、ランダムであるため塞ぎきれません。いまのところ、webalizer の動作以外に不都合が出ていませんので、以下のように対応しています。

Long URL を使った不正アクセスのログを access_log から削除して、別途、access_log_alz を作成し、webalizer の解析用ログファイルを access_log_alz に変更します。
この操作と webalizer の実行を bash スクリプトファイル webalizer.sh に書き、cron で webalizer.sh を自動実行します。

■ /etc/webalizer.conf の変更
LogFile        /var/log/httpd/access_log_alz <== 変更
OutputDir      /mnt/hdc1/webalizer
■ /usr/local/bin/webalizer.sh の内容
------------------------------ 以下 webalizer.sh ------------------------------
#!/bin/sh
cd /var/log/httpd
grep -v "SEARCH" access_log > access_log_alz
/usr/bin/webalizer -c /etc/webalizer.conf > /usr/local/bin/webalizer_log
------------------------------ 以上 webalizer.sh ------------------------------
[注]
3行目は、access_log 中の Long URL による不正アクセスログには "SEARCH" が含まれているので、これを含まない行を access_log_alz に出力するスクリプトです。
4行目は、"/usr/bin/webalizer" だけでも OK ですが、
実行時の設定ファイル指定 "-c /etc/webalizer.conf" と、
実行結果(メッセージ)の出力先指定 "> /usr/local/bin/webalizer_log"
を記述しています。

■ /etc/crontab の変更
mm hh * * * * root /usr/local/bin/webalizer.sh <== 変更

戻る

counter1counter2counter3counter4counter5counter6

|Home|
 
Valid XHTML 1.1 Valid CSS!