您的位置:首页 > 运维架构 > Apache

apache日志分析工具awstats的安装与配置

2007-10-06 19:36 645 查看
原贴:http://blog.csdn.net/kevin263/archive/2006/06/26/836695.aspx


apache日志分析工具awstats的安装与配置













这是我综合了网上的资料和自己的经验编写的。在此感谢网络上无私奉献的前辈们。发现网络上都是linux环境的apache+tomcat+awstats配置,没有人将到过apache在Windows环境下时如何作。

1.1. 预备知识

在阅读本文档前,需要具备基本的apache配置知识,知道httpd.conf中各个配置的基本含义。这里假设你已经具备了这些基本知识。

1.2. 参考文档

ActivePerl 5.8.7 附带文档,安装后可以看到。
Apache Manual文档
Cronolog附带文档
Awstats附带文档

上面这些文档在安装完相应软件后都可以看到。

1.3. 软件版本

tomcat 5.0.18 for Linux
apache 2.0.55 for Win
ActivePerl 5.8.7 for Win
Awstats 6.5 for Win
Cronolog 1.6.1 for Win

1.4. 安装环境

Apache在一台win2000 server服务器上,tomcat运行在linux机器上,OS是RedHat AS3。

2.1. 安装软件步骤

这里假设已经安装好apache,tomcat,并配置好了二者(请通过JK1.2配置,不要使用JK2)。
1, 安装顺序:先activeperl,再Awstats,cronolog只需要copy到一个目录中就可以了。
2, ActivePerl的安装很简单,一直点击next就可以。
3, Awstats可以用安装版,也可以用解压版,二者区别在于安装版会自动运行awstats_configure.pl脚本,解压版需要自己手工执行此脚本,此外没有任何区别。
4, Cronolog.exe文件所在的目录一定不能有空格,如Program Files目录是不行的。

2.2 软件配置

下面的配置中,对httpd.conf和worker2.properties文件的修改必须重新启动apache才能生效,对awstats配置文件的修改不必重启apache.
1, 首先配置apache,使其可以cgi方式运行perl脚本。
a) 修改apache的httpd.conf文件,在其主目录配置中(例如<Directory "D:/Program Files/Apache Group/Apache2/htdocs">),对options 配置加入ExecCGI。Options修改后类似显示如下:
Options Indexes FollowSymLinks ExecCGI
b) 在httpd.conf文件中查询AddHandler cgi-script .cgi,去掉前面的#,并且修改为:
AddHandler cgi-script .pl

2, awstats安装程序对httpd.conf文件的修改
如果我们是通过安装程序安装awstats的话,awstats已经帮我们在httpd.conf中做好了如下的配置:
#
# Directives to allow use of AWStats as a CGI
#
Alias /awstatsclasses "C:/Program Files/AWStats/wwwroot/classes/"
Alias /awstatscss "C:/Program Files/AWStats/wwwroot/css/"
Alias /awstatsicons "C:/Program Files/AWStats/wwwroot/icon/"
ScriptAlias /awstats/ "C:/Program Files/AWStats/wwwroot/cgi-bin/"

#
# This is to permit URL access to scripts/files in AWStats directory.

#

<Directory "C:/Program Files/AWStats/wwwroot">

Options None

AllowOverride None

Order allow,deny

Allow from all
</Directory>
如果采用非安装版本,需要手工执行awstats_configure.pl脚本,回答脚本的问题就可以了。
3, 配置apache日志,通过cronolog实现日志文件按天分割。
修改httpd.conf文件中的customLog和erroLog配置为:
CustomLog "|D:/apachelog/cronolog.exe D:/apachelog/access/%Y%m%daccess.log" combined
ErrorLog "|D:/apachelog/cronolog.exe D:/apachelog/error/%Y%m%derror.log"
其中%Y%M%D表示每天生成一个格式为YYYYMMDDaccess.log的文件。

4, 配置Awstats
修改awstats生成的配置文件,这里是awstats.yoursite.com.conf(此文件是安装时指定域名后生成的,也可以手工修改awstats.model.conf然后重命名)。将其中的LogFile指向apache的access.log文件,其中%YYYY-24%MM-24%DD-24表示24小时前的日志文件。
LogFile="D:/apachelog/access/%YYYY-24%MM-24%DD-24access.log"
AllowToUpdateStatsFromBrowser=0(可以为1,推荐使用0)
LoadPlugin="decodeutfkeys"
5, 配置定时运行awstats分析日志
在windows的控制面板,选择“任务计划”,添加新任务,对于我们这样的站点,每天分析一下前一天的日志就可以了,比如设定任务运行时间为每天凌晨1点。对于需要运行的命令最好写到一个bat文件中,这里可以创建一个awstats.bat文件,内容为:
perl "D:/Program Files/AWStats/wwwroot/cgi-bin/awstats.pl" -config=yoursite.com –update
这里必须明确指定awstats.pl文件的位置。-config参数必须和awstats.yoursite.com.conf匹 配,既awstats.pl文件是通过-config参数来使用相应的配置文件的。

6, 几个关于日志分析配置的高级话题
按上面的步骤可以配置出能运行的日志分析页面,但这并不安全,此外对于apache+tomcat这种部署环境我们必须配置好虚拟主机才能正确使用日志分析。
a) 对于日志分析的访问限制
awstats默认安装时对于httpd.conf的修改加入了如下段:
<Directory "C:/Program Files/AWStats/wwwroot">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
但这种配置任何人都可以访问日志分析页面,很不安全。需要做如下配置,只有知道密码的人才可以访问。
首先修改上面的默认配置为:
<Directory "d:/Program Files/AWStats/wwwroot">

AuthType Basic
AuthName "Restricted Files"
AuthUserFile "D:/Program Files/Apache Group/Apache2/conf/passwords "
Require user admin
</Directory>
这说明我们通过基本的安全认证方式限制用户访问,只有在D:/Program Files/Apache Group/Apache2/conf/passwords文件中注明的用户admin才可以访问日志分析页面。
然后在apache的bin目录下运行:
htpasswd –c ../conf/passwords admin
输入该用户的密码就可以了。这样每次访问日志分析页面时,必须输入正确的用户名和密码才可以进入。
b) apache+tomcat方式时虚拟主机的配置
一般情况下,我们使用基于name的虚拟主机,而不用基于ip的虚拟主机,配置基于name的虚拟主机需要在httpd.conf文件中加入类似如下内容:
NameVirtualHost 192.168.0.5:80
<VirtualHost 192.168.0.5:80>
ServerAdmin youname@yoursite.com
# DocumentRoot "D:/tomcat/webapps"
ServerName www.yoursite.com:80
ServerAlias yoursite.com
#ErrorLog logs/haolao.example.com-error_log
#CustomLog logs/haolao.example.com-access_log combined
</VirtualHost>

<VirtualHost 192.168.0.5:80>
ServerAdmin youname@yoursite.com
DocumentRoot "d:/Program Files/AWStats/wwwroot"
ServerName awstats.yoursite.com:80
</VirtualHost>
注意:NameVirtualHost后面的值必须和VirtualHost后面的值完全相同!比如这里都是192.168.0.5:80
虚拟主机通过ServerName区分,对于有多个域名的网站,可以使用ServerAlias。
当然如果想让虚拟主机生效,我们必须在DNS中对各个域名做好配置,对此这里不予描述。
Apache和tomcat结合的配置涉及到另外一个配置文件workers2.properties。在这个文件中,配合虚拟主机我们需要加入如下内容:
[uri:www.yoursite.com/*]
worker=ajp13:192.168.1.20:8009

这是告诉apache,涉及到上面这些URL的访问,请转给Tomcat处理,不在此列中的,由apache自己处理。
同时为了让日志分析处于安全保护之下,可以将上面对awstats安全的配置移入VirtualHost中。最终可能类似下面:
NameVirtualHost 192.168.0.5:80
<VirtualHost 192.168.0.5:80>
ServerAdmin youname@yoursite.com
ServerName www.yoursite.com:80
ServerAlias yoursite.com

#CustomLog logs/haolao.example.com-access_log combined
</VirtualHost>

<VirtualHost 192.168.0.5:80>
ServerAdmin youname@yoursite.com
DocumentRoot "d:/Program Files/AWStats/wwwroot"
ServerName awstats.yoursite.com:80

Alias /awstatsclasses "d:/Program Files/AWStats/wwwroot/classes/"
Alias /awstatscss "d:/Program Files/AWStats/wwwroot/css/"
Alias /awstatsicons "d:/Program Files/AWStats/wwwroot/icon/"
ScriptAlias /awstats/ "d:/Program Files/AWStats/wwwroot/cgi-bin/"

<Directory "d:/Program Files/AWStats/wwwroot">

AuthType Basic
AuthName "Restricted Files"
AuthUserFile "D:/Program Files/Apache Group/Apache2/conf/passwords "
Require user admin

</Directory>

</VirtualHost>

2.3. 配置后的测试

这里用awstats的动态分析日志方式,也可以将分析结果生成为静态html。
在浏览器输入http://youdomain.com/awstats/awstats.pl?config=yourdomain就可以看到日志分析页面了。当然如果想看到数据,必须在我们配好awstats后第二天访问才行,因为第二天早上的凌晨一点我们才对前一天的日志文件做分析,在此之前是没有统计数据的。
我们这里是:
http://awstats.yoursite.com/awstats/awstats.pl?config=yoursite.com
如果能看到awstats的页面说明配置成功了

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=836695
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: