Apache
Apache 伺服器Log分析應用執行個體
rhinux 發表於: 2004-11-28 22:11
互連網的飛速發展,無論是傳統企業的網站,還是互連網企業,為了瞭解自己的客戶來源,點擊率等資料,對網站日誌的分析尤為重要,以下就本人所做的日誌分析系統與大家分享,希望能對大家有所協助。
歡迎大家複製,但請大家保留本文的完整,謝謝!!
一,所用軟體及工具
1,Apache伺服器 官方網址:http://www.apache.org
2,awstats 日誌分析軟體 官方網址:http://awstats.sourceforge.net/
3,cronolog 日誌截取軟體 官方網址:http://www.cronolog.org
二,環境構架
1,RedHat AS 3
2,Apache
./configure –prefix=/usr/local/apache2/ --enable-so
make
make install
3, awstats
直接tar到 /usr/local/awstats
4,cronolog
./configure –prefix=/usr/local/cronolog
make
make install
三, 配置
1, apache
a,讓apache中的某個虛擬機器主機產生日誌:
全域環境變數設定:
代碼:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
SetEnvIf Request_URI \.gif$ gif-image
SetEnvIf Request_URI \.GIF$ gif-image
SetEnvIf Request_URI \.jpg$ gif-image
SetEnvIf Request_URI \.JPG$ gif-image
SetEnvIf Request_URI \.png$ gif-image
SetEnvIf Request_URI \.swf$ gif-image
SetEnvIf Request_URI \.SWF$ gif-image
SetEnvIf Request_URI \.css$ gif-image
SetEnvIf Request_URI \.CSS$ gif-image
SetEnvIf Request_URI \.js$ gif-image
SetEnvIf Request_URI \.JS$ gif-image
SetEnvIf Request_URI \.ico$ gif-image
產生日誌但不包括 圖片。
虛擬機器主機日誌設定
代碼:
ServerAdmin webmaster@abc.net
DocumentRoot /db/htdocs/www
ServerName www.abc.net
CustomLog "|/usr/local/cronolog/sbin/cronolog /db/logs/www.%Y-%m-%d.log" combined env=!gif-image
#用cronolog截取存放在/db/logs/下的按日期產生的apache記錄檔
註:記錄檔是針對每一個虛擬機器主機產生的所以可以配置一台伺服器上多個虛擬機器主機的日誌分析
b,別名設定
代碼:
#
# Directives to allow use of AWStats as a CGI
#
Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"
Alias /awstatscss "/usr/local/awstats/wwwroot/css/"
Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"
ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"
#
# This is to permit URL access to scripts/files in AWStats directory.
#
Options None
AllowOverride None
Order allow,deny
Allow from all
該配置在運行awstats/tools/awstats_configure.pl 後會自動產生所以不用手動添加。
c,awstats需要cgi的支援如果沒有添加cgi可以現在添加
代碼:
./apxs -c -i /usr/local/src/httpd-2.0.50/modules/generators/mod_cgi.c
再在httpd.conf 中添加
代碼:
LoadModule cgi_module modules/mod_cgi.so
d為了保護日誌統計資訊需要對某些目錄進行認證設定,需要認證模組的支援
代碼:
./apxs -c -i /usr/local/src/httpd-2.0.50/..../mod_auth.c
再在httpd.conf 中添加
代碼:
LoadModule auth_module modules/mod_auth.so
配置需要認證的目錄:
代碼:
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /usr/local/apache2/passwd/passwords
Require user loguser
其中在 /usr/local/apache2/passwd/下產生passwords 的密碼檔案
運行如下代碼產生使用者名稱為loguser使用者及其密碼
代碼:
/usr/local/apache2/bin/htpasswd -c /usr/local/apache2/passwd/passwords loguser
注意:先要在 /usr/local/apache2/下建passwd目錄
2,Awstats
運行 /usr/local/awstats/tools/awstats_configure.pl
主要設定的是需要輸入做統計的主機名稱的設定檔名如:www.abc.net
接著修改 剛才配置是產生的awstats設定檔 預設位置在:
/etc/awstats/awstats.www.abc.net.con 主要做指定log位置
代碼:
LogFile="/db/logs/www.%YYYY-4-%MM-2-%DD-2.log"
建立目錄:mkdir /var/lib/awstats/
執行:
代碼:
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.abc.net
更新,update 後可以在瀏覽器中輸入 http://www.abc.net/awstats/awstats.pl 進行訪問了。
3,cronolog (基本不用什麼修改)
4,crontab的修改
在 crontab中添加如下 命令保證15分鐘更新一次,也可以根據你自己的需要修改更新的間隔
代碼:
*/15 * * * * /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.abc.net
四,安全性考慮
1, 以上的設定由於要cgi支援,也增加了安全隱患可以用awstats 內建的awstats_buildstaticpages.pl來 產生靜態頁面 可以添加到crontab中
代碼:
*/15 * * * * /usr/local/awstats/tools/awstats_buildstaticpages.pl -update -config=www.abc.net -lang=cn -dir=/db/htdocs/www/awstat/ -awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl
這樣沒15分鐘在/db/htdocs/www/awstat/ 下產生各種靜態頁面
2,保護/db/htdocs/www/awstat/禁止未授權使用者訪問
在httpd.conf中添加
代碼:
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /usr/local/apache2/passwd/passwords
Require user loguser
如果www.abc.net 虛擬機器主機 主目錄為/db/htdocs/www/ 則在瀏覽器中輸入http://www.abc.net/awstat/awstats.www.abc.net.html 就可以通過認真訪問靜態頁面
3,如果用靜態頁面就不要忘了注釋掉
LoadModule cgi_module modules/mod_cgi.so
五,獻給我最愛的飛飛。
六,由於本人是初學者,本文略顯粗糙,如有任何指點和問題歡迎和我聯絡,大家相互交流提高 :hoash2003@hotmail.com
歡迎大家複製,但請大家保留本文的完整,謝謝!!