安装Awstats日志分析统计工具

By | 2013年2月16日

何为awstats

AWStats 是一个免费的强大而有个性的工具,带来先进的网络,流量,FTP或邮件服务器统计图.。本日志分析器作为CGI或从命令行在数个图形网页中显示你日志中包含的所有可能信息.。它利用一部分档案资料就能经常很快地处理大量日志档案,,它能分析日志文件来自从各大服务器工具 ,如 Apache日志档案 s (NCSA combined/XLF/ELF log format or common/CLF log format), WebStar, IIS (W3C的日志格式)及许多其他网站,Proxy(代理服务器)、Wap、流量服务器、邮件服务器和一些 FTP服务器 。

安装awstats所需的组件

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

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 emial@qq.com
   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@qq.com
   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链接就能看到中文页面了!