Apacheの設定ファイル( /etc/httpd/conf/httpd.conf )
Webalizerを利用するために設定ファイル( httpd.conf )へログファイルの出力を設定する設定例を簡単に解説してみます。
...
SetEnvIf Request_URI "default\.ida" nolog
SetEnvIf Request_URI "cmd\.exe" nolog
SetEnvIf Request_URI "root\.exe" nolog
SetEnvIf Request_URI "Admin\.dll" nolog
SetEnvIf Request_URI "NULL\.IDA" nolog
SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(ico)|(css)$" nolog
SetEnvIf Request_URI "^/wp-admin(.*)" nolog
SetEnvIf Request_URI "^/wp-content(.*)" nolog
SetEnvIf Request_URI "^/wp-includes(.*)" nolog
SetEnvIf Request_URI "^/wp-cron.php(.*)" nolog
SetEnvIf Request_URI "^/wp-login.php(.*)" nolog
SetEnvIf Request_URI "^/wp-comments(.*)" nolog
...
<VirtualHost *:80>
ServerName wwww.example.com
DocumentRoot "/var/www/html"
ServerAlias wwww.example.com
ErrorLog /var/log/httpd/example-error.log
CustomLog /var/log/httpd/example-access.log combined env=!nolog
</VirtualHost>
...
|
Apacheの設定ファイル( /etc/httpd/conf.d/webalizer.conf )
Webalizerに出力ディレクトリを公開するための設定ファイル( webalizer.conf )を作成・設定する設定例を簡単に解説してみます。
Alias /usage /var/www/usage
<Location /usage>
Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from ::1
Allow from xxx.xxx.xxx.xxx
</Location>
|
誰でもアクセスできようにしたなら、
Allow from all
を指定すればOKです。
ただ、一般的に、誰でもアクセスできてしまうのは、問題も多いので、ここでは、IPアドレスによる制限を加えています。
この設定の後、必ず、出力先ディレクトリを作成しておきます。所有権もここではapacheに変更しておきます。
$ mkdir /var/www/usage
$ mkdir /var/www/usage/example
$ chown -fR apache. /var/www/usage
|
/var/www/usage/example は、
以降のwebalizerの設定で出てきますが、サイト毎にディレクトリを分けておきたいので、
wwww.exmaple.com 用のwebalizerの出力先ディレクトリとして/var/www/usage/exampleを作成しておきます。
これで全ての設定を終えたので、apacheの再起動しておきます。
$ /etc/init.d/httpd restart
|
ログローテーションの設定ファイル( /etc/logrotate.d/httpd )
Webalizerを利用するログファイルは、今ロギングしているファイルでなく、ログローテーションした最新ファイルをつかうのが一般的です。
毎日、ログローテーションし、
ロゴローテーションの実施後、
webalizerで前日のログファイルからアクセスを解析する
・・・という流れになります。
以下は、その設定例です。
/var/log/httpd/*.log {
daily
missingok
rotate 90
compress
ifempty
create 660 root wheel
sharedscripts
postrotate
/sbin/service httpd graceful
endscript
}
|
Webalizerの設定ファイル( /etc/webalizer.conf )
Webalizerの設定ファイル( webalizer.conf )の設定例を簡単に解説してみます。
LogFile /var/log/httpd/example-access.log.1.gz
OutputDir /var/www/usage/example
HistoryName example_webalizer.hist
Incremental yes
IncrementalName example_webalizer.current
HostName www.example.com
PageType htm*
PageType cgi
PageType shtml
PageType php
DNSCache exmaple_dns_cache.db
DNSChildren 10
HTMLHead <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
Quiet yes
AllSites yes
AllURLs yes
AllReferrers yes
AllAgents yes
AllSearchStr yes
AllUsers yes
HideURL *.gif
HideURL *.GIF
HideURL *.jpg
HideURL *.JPG
HideURL *.png
HideURL *.PNG
HideURL *.ra
HideURL *.css
HideURL *.CSS
HideURL *.ico
HideURL *.ICO
GroupReferrer yahoo.co.jp/ Yahoo!Japan
GroupReferrer google.co.jp/ GoogleJapan
GroupReferrer rakuten.co.jp/ InfoSeek(Rakuten)Japan
GroupReferrer goo.ne.jp/ Goo
GroupReferrer bing.com/ MSNJapan
SearchEngine .yahoo. p=
SearchEngine .google. q=
SearchEngine infoseek.co.jp qt=
SearchEngine rakuten.co.jp qt=
SearchEngine bing.com q=
SearchEngine goo.ne.jp MT=
SearchEngine biglobe.ne.jp q=
SearchEngine nifty.com q=
SearchEngine excite.co.jp search=
SearchEngine excite.com q=
SearchEngine livedoor.com q=
SearchEngine naver.jp q=
SearchEngine aol.jp q=
|
cronの設定ファイル( /etc/crontab )
Webalizerを毎日実行するようにcronに登録します。
まず、dailyの実施時刻を/etc/crontabで確認しておきます。
...
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
...
|
上記の設定であれば、毎日4:02に実施されることになっています。
これによりログローテーションも毎日4:02に実施されることになります。
ログローテーション実施後にwebalizerを実行したので、少し余裕をもって、30分後にwebalizerを実行するように /etc/crontab に登録してみます。
...
32 4 * * * root /usr/bin/webalizer -c /etc/webalizer.conf
...
|
ここまでできたら、1日後に /usage/exmaple/ へアクセスしてみてください。
webalizerで出力されたグラフ、表が見えたらOKです。
もし、うまくいかなかったら、ここで記載している内容を見直ししてみてください。
コメントを投稿 :