互联网的飞速发展,无论是传统企业的网站,还是互联网企业,为了了解自己的客户来源,点击率等资料,对网站日志的分析尤为重要,以下就本人所做的日志分析系统与大家分享,希望能对大家有所帮助。
欢迎大家复制,但请大家保留本文的完整,谢谢!!
[color=blue]一,所用软件及工具[/color]
1,Apache服务器 官方网址:http://www.apache.org
2,awstats 日志分析软件 官方网址:http://awstats.sourceforge.net/
3,cronolog 日志截取软件 官方网址:http://www.cronolog.org
[color=blue]二,环境构架[/color]
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
[color=blue]三, 配置[/color]
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 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日志文件
</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
[color=blue]四,安全性考虑[/color]
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
[color=blue]五,献给我最爱的飞飞。[/color]
[color=blue]六,由于本人是初学者,本文略显粗糙,如有任何指点和问题欢迎和我联系,大家相互交流提高 :hoash2003@hotmail.com [/color]
欢迎大家复制,但请大家保留本文的完整,谢谢!!
rhinux 回复于:2004-11-29 10:29:20
自己顶一个先,希望大家能提意见!
徐徐的飞飞 回复于:2004-11-29 13:35:03
以上四条,一条也没看明白 :em06:
就第5条看明白了 :em02: :em02: :lol:
wd 回复于:2004-11-29 13:56:59
晕死
徐徐的飞飞 回复于:2004-11-30 09:07:13
顶住, :em06:
千万不能沉~~~~~ :cry:
tianci3982730 回复于:2004-11-30 16:01:36
帮你顶偶在win下一直用awstats感觉不错
linux下还是mrtg
hrcxf 回复于:2004-11-30 21:47:31
mrtg没有awstats对apache日志记录那么详细和直观
rhinux 回复于:2004-12-03 10:26:56
本人测试一段时间后,觉得用awstats生成静态页面比较占系统,所以我建议各位有条件的可以单独做一台日志分析的机器,本人过段时间做一下,到时候在贴在这和大家分享
wing-qiang 回复于:2004-12-16 11:07:33
不错!顶一个!:)
szwsx 回复于:2005-01-01 15:03:36
非常感谢!!
aspbiz 回复于:2005-01-06 11:55:25
支持,
写得不错。
coldcoffee 回复于:2005-03-01 14:37:01
我是在win下安的apache和Awstats,我应该怎么配置?
rhinux 回复于:2005-04-10 14:16:35
awstats 安全漏洞
Warning, a security hole was recently found in AWStats versions from 5.0 to 6.2 when AWStats is used as a CGI: A remote user can execute arbitrary commands on your server using permissions of your web server user (in most cases user "nobody").
If you use AWStats with another version or is not available as a CGI, you are safe. If not, it is highly recommanded to upgrade to 6.4 version that fix this security hole and another less important one still present in 6.3.
入侵方法不便在此公布。
请用老版本的朋友升级到6.4 or 6.5(目前是测试版本)或者停掉cgi
rhinux 回复于:2005-04-10 14:44:08
#注释掉以下内容就可以了,这样的话可以用静态生成的方法
#或者自己改名字,加认证也可以。
# 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>;
james81327 回复于:2005-11-25 17:01:31
awstats能不能统计出,一个用户的在线时间呢?
|