AWStats 是一个免费的强大而有个性的工具,带来先进的网络,流量,FTP或邮件服务器统计图.。本日志分析器作为CGI或从命令行在数个图形网页中显示你日志中包含的所有可能信息.。它利用一部分档案资料就能经常很快地处理大量日志档案,,它能分析日志文件来自从各大服务器工具 ,如 Apache日志档案 s (NCSA combined/XLF/ELF log format or common/CLF log format), WebStar, IIS (W3C的日志格式)及许多其他网站,Proxy(代理服务器)、Wap、流量服务器、邮件服务器和一些 FTP服务器 。
awstats是一个基于perl语言来执行分析统计操作的,所以必须得安装perl包。幸运的是centos 6中默认就已经安装了。
不过还得安装mod_perl(apache里的perl模块), perl-Encode。
安装mod_perl模块
#安装mod_perl yum install mod_perl完成后,默认会在/etc/httpd/conf.d/下生成perl.conf文件,内容为:
#为Apache加载perl模块 LoadModule perl_module modules/mod_perl.so当系统开启Selinux时,就这样是无法加载mod_perl.so文件的,需要使用chcon命令处理下mod_perl.so文件的身份识别与安全环境类型
cd /etc/httpd/modules chcon -u system_u -t httpd_modules_t mod_perl.so可以在modules目录使用 ll -Z 命令查看所有so文件的安全环境等信息,只要把mod_perl.so文件改成和其他模块文件一样就行了。
安装perl_encode模块
这个很简单,直接yum安装即可。
#可以先查询下 yum list | grep perl* #找到perl encode模块的完整名,我的是perl-Encode-Detect.x86_64 yum install perl-Encode-Detect.x86_64
awstats的安装很简单,把下载的安装文件上传到/usr/local/awstats目录下,大致结构如下图:
在doc目录中,有详细的教程,网页版,pdf版,还是很简单的。这里简单的走一遍流程,配置一个对网站访问情况的案例。
配置有两种方法,一种是使用tools文件夹里的awstats_configure.pl文件,它将以询问的方式,帮我们自动创建配置文件等。
另一种就是手动,代替awstats_configure.pl脚本文件所做的操作,这里我选择手动,可以清楚整个配置过程,对哪些文件做了变动。
Step 1
在apache的配置文件中更改日志记录的格式为combined,如果使用了虚拟主机配置,记得也要修改。
#首先检查/etc/httpd/conf/httpd.conf文件 #确定CustomLog是否为combined CustomLog logs/access_log combined #如果虚拟主机配置<Virtual>里使用了CustomLog,则同样要使用combined <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/html/awstats ServerName awstats.com ErrorLog logs/awstats_err.log CustomLog logs/awstats_access.log combined #注意这里 </VirtualHost>Step 2
在apache里配置可供访问虚拟主机或者Alias,这里我选择虚拟主机,awstats_configure.pl默认使用的是alias,不过可以手动改掉。
#虚拟主机配置 <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/html/awstats ServerName awstats.com ErrorLog logs/awstats_err.log CustomLog logs/awstats_access.log combined </VirtualHost> <Directory "/var/www/html/awstats"> Options +ExecCGI #重要!这样pl脚本才能被执行 AllowOverride None Order allow,deny Allow from all #下面四行配置访问权限 AuthType Basic AuthName "Input username and password" AuthUserFile /etc/httpd/conf.d/auth.pwd Require valid-user </Directory> #默认的alias配置 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/" <Directory "/usr/local/awstats/wwwroot"> Options None AllowOverride None Order allow,deny Allow from all </Directory>
注意:供浏览器访问的默认目录为/usr/local/awstats/wwwroot,我在虚拟主机里改成了/var/www/html/awstats。
您需要做的就是把/usr/local/awstats/wwwroot目录里的内容复制到/var/www/html/awstats目录下。
当您开启了Selinux,httpd服务是只能读取/var/www/html目录下的文件的,当然除非手动修改其他文件夹文件的上下文安全环境,我这里就直接把wwwroot目录搬到/var/www/html下了,便于统一管理.
Step 3
这是最关键的配置,对多个网站进行分析统计时,需要进行的步骤。
#首先创建目录/etc/awstats(如果已经有了就跳过) mkdir /etc/awstats #然后复制awstats.model.conf文件到/etc/awstats下 cp /var/www/html/awstats/cgi-bin/awstats.model.conf /etc/awstats #更改文件名,重要!awstats根据文件名来区分不同网站的配置 #默认文件名中的model,替换成所配置网站的名称或者别名,这里我使用简单的别名(lijialong),在访问统计页面时需要使用到这个别名! cd /etc/awstats mv awstats.model.conf awstats.lijialong.conf接下来,就要对awstats.lijialong.conf这个文件开始配置了!(详细配置请参考awstats自带的docs,里面很详细)
#分析哪个日志文件,很重要,路径一定要对 LogFile="/var/log/httpd/lijialong.name_access.log" #分析的日志类型 LogType="W" #web log file #分析的站点域名,当您把所有网站的access log都放在默认的access_log文件中,awstats将通过这个值来区分不同网站 SiteDomain="www.lijialong.name" #站点域名的别名,比如二级域名(多个用空格隔开) HostAliases="lijialong.name a.lijialong.name" #分析结果文件存放目录,默认为/var/lib/awstats #这里我改成下面这个路径 DirData="/var/www/html/awstats/data" DirCgi="/cgi-bin" DirIcons="/icon"Step 4
配置文件完成后,就可以开始运行awstats了,运行前,我们需要先手动让awstats分析下log文件,它将自动产生分析结果到data目录中,然后通过浏览器输入地址进行访问。
在运行前,需要确定/var/www/html/awstats/cgi-bin/awstats.pl文件是否具有可执行权限!
手动执行分析
#awstats.pl文件是awstats的核心,所有的分析工作都由它来处理 #这里给出了两个参数:update就是更新的意思;config参数定义了需要分析哪个站点,此值就是前面提到的文件名中替换掉model的那个值 /var/www/html/awstats/cgi-bin/awstats.pl -update -config=lijialong
自动执行分析
#使用系统的crontab,自动运行! vim /etc/crontab #内容为(每半小时执行一次): */30 * * * * root /var/www/html/awstats/cgi-bin/awstats.pl -update -config=lijialong访问分析结果页面
通过浏览器访问:http://******/cgi-bin/awstats.pl?config=lijialong&lang=cn
就能看到页面了!config参数指定了需要看哪个网站的统计,lang参数指定了页面显示的语言。
修改awstats.pl文件,让页面默认中文显示
vim /var/www/html/awstats/cgi-bin/awstats.pl #大约在17244行,也可以搜索字符串 $Lang = 'en' #把en改为cn $Lang = 'cn';这样直接通过http://******/cgi-bin/awstats.pl?config=lijialong链接就能看到中文页面了!