Apache 服务器Log分析应用实例

互联网的飞速发展,无论是传统企业的网站,还是互联网企业,为了了解自己的客户来源,点击率等资料,对网站日志的分析尤为重要,以下就本人所做的日志分析系统与大家分享,希望能对大家有所帮助。

欢迎大家复制,但请大家保留本文的完整,谢谢!!


一,所用软件及工具
    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中的某个虚拟主机产生日志:

全局环境变量设置:  
  1. LogFormat "%h %l %u %t \"%r\" %>;s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
  2. SetEnvIf Request_URI \.gif$ gif-image
  3. SetEnvIf Request_URI \.GIF$ gif-image
  4. SetEnvIf Request_URI \.jpg$ gif-image
  5. SetEnvIf Request_URI \.JPG$ gif-image
  6. SetEnvIf Request_URI \.png$ gif-image
  7. SetEnvIf Request_URI \.swf$ gif-image
  8. SetEnvIf Request_URI \.SWF$ gif-image
  9. SetEnvIf Request_URI \.css$ gif-image
  10. SetEnvIf Request_URI \.CSS$ gif-image
  11. SetEnvIf Request_URI \.js$ gif-image
  12. SetEnvIf Request_URI \.JS$ gif-image
  13. SetEnvIf Request_URI \.ico$ gif-image
复制代码

产生日志但不包括 图片。  
虚拟主机日志设置
  1. <VirtualHost 12.34.56.78:80>;
  2.         ServerAdmin webmaster@abc.net
  3.         DocumentRoot /db/htdocs/www
  4.         ServerName www.abc.net
  5.         CustomLog "|/usr/local/cronolog/sbin/cronolog /db/logs/www.%Y-%m-%d.log" combined env=!gif-image
  6. #用cronolog截取存放在/db/logs/下的按日期产生的apache日志文件
  7. </VirtualHost>;
复制代码

注:日志文件是针对每一个虚拟主机产生的所以可以配置一台服务器上多个虚拟主机的日志分析
       b,别名设置
  1. #
  2. # Directives to allow use of AWStats as a CGI
  3. #
  4. Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"
  5. Alias /awstatscss "/usr/local/awstats/wwwroot/css/"
  6. Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"
  7. ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"

  8. #
  9. # This is to permit URL access to scripts/files in AWStats directory.
  10. #
  11. <Directory "/usr/local/awstats/wwwroot">;
  12.     Options None
  13.     AllowOverride None
  14.     Order allow,deny
  15.     Allow from all
  16. </Directory>;
复制代码

该配置在运行awstats/tools/awstats_configure.pl 后会自动产生所以不用手动添加。
      c,awstats需要cgi的支持如果没有添加cgi可以现在添加
  1. ./apxs -c -i /usr/local/src/httpd-2.0.50/modules/generators/mod_cgi.c
复制代码

再在httpd.conf 中添加
  1. LoadModule cgi_module         modules/mod_cgi.so
复制代码

d为了保护日志统计信息需要对某些目录进行认证设置,需要认证模块的支持
  1. ./apxs -c -i /usr/local/src/httpd-2.0.50/..../mod_auth.c
复制代码

再在httpd.conf 中添加
  1. LoadModule auth_module        modules/mod_auth.so
复制代码

配置需要认证的目录:
  1. <Directory "/db/htdocs/www/awstat/">;
  2.    AuthType Basic
  3.   AuthName "Restricted Files"
  4.   AuthUserFile /usr/local/apache2/passwd/passwords
  5.   Require user loguser
  6.   </Directory>;
复制代码

其中在 /usr/local/apache2/passwd/下产生passwords 的密码文件
   运行如下代码产生用户名为loguser用户及其密码
  1. /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位置
  1. LogFile="/db/logs/www.%YYYY-4-%MM-2-%DD-2.log"
复制代码

创建目录:mkdir /var/lib/awstats/
         执行:
  1. /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分钟更新一次,也可以根据你自己的需要修改更新的间隔
  1. */15 * * * * /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.abc.net
复制代码

四,安全性考虑
   1, 以上的设置由于要cgi支持,也增加了安全隐患可以用awstats 自带的awstats_buildstaticpages.pl来 生成静态页面 可以添加到crontab中
  1. */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中添加
  1. <Directory "/db/htdocs/www/awstat/">;
  2.   AuthType Basic
  3. AuthName "Restricted Files"
  4.   AuthUserFile /usr/local/apache2/passwd/passwords
  5.    Require user loguser
  6.   </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


五,献给我最爱的飞飞。

六,由于本人是初学者,本文略显粗糙,如有任何指点和问题欢迎和我联系,大家相互交流提高 :hoash2003@hotmail.com 


欢迎大家复制,但请大家保留本文的完整,谢谢!!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值