Apache 服務器Log分析應用實例
2024-08-27 18:28:31
供稿:網友
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
產生日志但不包括 圖片。
虛擬主機日志設置
代碼:
<virtualhost 12.34.56.78:80>
serveradmin [email protected]
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日志文件
</virtualhost>
注:日志文件是針對每一個虛擬主機產生的所以可以配置一臺服務器上多個虛擬主機的日志分析
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.
#
<directory "/usr/local/awstats/wwwroot">
options none
allowoverride none
order allow,deny
allow from all
</directory>
該配置在運行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
配置需要認證的目錄:
代碼:
<directory "/db/htdocs/www/awstat/">
authtype basic
authname "restricted files"
authuserfile /usr/local/apache2/passwd/passwords
require user loguser
</directory>
其中在 /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中添加
代碼:
<directory "/db/htdocs/www/awstat/">
authtype basic
authname "restricted files"
authuserfile /usr/local/apache2/passwd/passwords
require user loguser
</directory>
如果www.abc.net 虛擬主機 主目錄為/db/htdocs/www/ 則在瀏覽器中輸入http://www.abc.net/awstat/awstats.www.abc.net.html 就可以通過認真訪問靜態頁面
3,如果用靜態頁面就不要忘了注釋掉
loadmodule cgi_module modules/mod_cgi.so
五,獻給我最愛的飛飛。
六,由于本人是初學者,本文略顯粗糙,如有任何指點和問題歡迎和我聯系,大家相互交流提高 :[email protected]
歡迎大家復制,但請大家保留本文的完整,謝謝!!