English
 电子信箱
 加入收藏

  威盾防火墙 >> 新闻中心 >> 业界动态 >> Apache 服务器Log分析应用实例

 

Apache 服务器Log分析应用实例

威盾防火墙 2014-12-17

 

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

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


一,所用软件及工具 
1,Apache服务器 官方网址:http://www.apache.org 
2,awstats 日志分析软件 官方网址:http://awstats.sourceforge.net/ 
3,cronolog 日志截取软件 官方网址:http://www.cronolo.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 _blank>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 后可以在浏览器中输入 _blank>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/ 则在浏览器中输入html">http://www.abc.net/awstat/awstats.www.abc.net.html 就可以通过认真访问静态页面 
3,如果用静态页面就不要忘了注释掉 
LoadModule cgi_module modules/mod_cgi.so


五,献给我最爱的飞飞。

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


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


相关内容: 最新内容:
Debian的php和apache安全设置[2014-12-17]
如何抵御身份盗窃[2014-12-17]
IIS与SQL服务器安全加固[2014-12-17]
解决读取IIS服务器绝对路径错误的方法[2014-12-17]
服务器防黑主要是日常维护的5个步骤总结[2014-12-17]
IE最新安全漏洞补救几大措施[2014-12-17]