先来点废话:通过构建的HTTP服务器将Web发布后,随着不断被访问,Apache会记下每个访客的基本信息。CentOS的情况下,这些信息通常保存在位于/var/log/httpd/下的相应日志文件中。但Apache单调的日志,除了提供给我们一些最基本的服务器被访信息、以及出错信息之外,我们很难单纯的通过日志文件得到更多、更系统的关于时间、规律性、地点方面的信息。这也使得很难通过单纯的日志去系统的分析流量。
但通过Awstats,我们可以把Apache的日志作为一种有效资源,获得更加系统化的信息。
实质上,Awstats就是一套分析系统,它将日志文件统计学式的进行分析与统计,然后提供一个能够反映规律性的界面给我们。Awstats并不是仅能应用于分析Apache的日志,在邮件服务器等等方面,它也被广泛的应用。但在这一节中,只介绍在Web服务器中运用Awstats建立统计系统的方法。
但通过Awstats,我们可以把Apache的日志作为一种有效资源,获得更加系统化的信息。
实质上,Awstats就是一套分析系统,它将日志文件统计学式的进行分析与统计,然后提供一个能够反映规律性的界面给我们。Awstats并不是仅能应用于分析Apache的日志,在邮件服务器等等方面,它也被广泛的应用。但在这一节中,只介绍在Web服务器中运用Awstats建立统计系统的方法。
1,下载并安装 Awstats
wget [url]http://nchc.dl.sourceforge.net/sourceforge/awstats/awstats-6.5-1.noarch.rpm[/url] ← 下载Awstats的rpm包
rpm -ivh awstats-6.5-1.noarch.rpm 用RPM包安装。
2,配制awstats
/usr/local/awstats/tools/awstats_configure.pl ← 运行初始配置脚本
-----> Running OS detected: Linux, BSD or Unix
Warning: AWStats standard directory on Linux OS is '/usr/local/awstats'.
If you want to use standard directory, you should first move all content
of AWStats distribution from current directory:
/root
to standard directory:
/usr/local/awstats
And then, run configure.pl from this location.
Do you want to continue setup from this NON standard directory [yN] ? y ← 选择y,同意安装到默认目录下
Warning: AWStats standard directory on Linux OS is '/usr/local/awstats'.
If you want to use standard directory, you should first move all content
of AWStats distribution from current directory:
/root
to standard directory:
/usr/local/awstats
And then, run configure.pl from this location.
Do you want to continue setup from this NON standard directory [yN] ? y ← 选择y,同意安装到默认目录下
Enter full config file path of your Web server.
Example: /etc/httpd/httpd.conf
Example: /usr/local/apache2/conf/httpd.conf
Example: c:\Program files\apache group\apache\conf\httpd.conf
Config file path ('none' to skip web server setup):
> /etc/httpd/conf/httpd.conf ← 指定Apache配置文件所在位置
Example: /etc/httpd/httpd.conf
Example: /usr/local/apache2/conf/httpd.conf
Example: c:\Program files\apache group\apache\conf\httpd.conf
Config file path ('none' to skip web server setup):
> /etc/httpd/conf/httpd.conf ← 指定Apache配置文件所在位置
-----> Need to create a new config file ?
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ? y ← 选择y,同意创建一个新的对象配置文件
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ? y ← 选择y,同意创建一个新的对象配置文件
-----> Define config file name to create
What is the name of your web site or profile analysis ?
Example: [url]www.mysite.com[/url]
Example: demo
Your web site, virtual server or profile name:
> [url]www.centospub.com[/url] ← 为统计对象创建代号(推荐以网站URL作为代号)
What is the name of your web site or profile analysis ?
Example: [url]www.mysite.com[/url]
Example: demo
Your web site, virtual server or profile name:
> [url]www.centospub.com[/url] ← 为统计对象创建代号(推荐以网站URL作为代号)
-----> Define config file path
In which directory do you plan to store your config file(s) ?
Default: /etc/awstats
Directory path to store config file(s) (Enter for default):
> ← 直接按回车,接受将Awstats的配置文件置于/etc/awstats下
In which directory do you plan to store your config file(s) ?
Default: /etc/awstats
Directory path to store config file(s) (Enter for default):
> ← 直接按回车,接受将Awstats的配置文件置于/etc/awstats下
-----> Restart Web server with '/sbin/service httpd restart' ← HTTP服务重新启动
-----> Add update process inside a scheduler
Sorry, configure.pl does not support automatic add to cron yet.
You can do it manually by adding the following command to your cron:
/root/wwwroot/cgi-bin/awstats.pl -update -config=www.centospub.com
Or if you have several config files and prefer having only one command:
/root/tools/awstats_updateall.pl now
Press ENTER to continue... ← 按回车继续进行配置
Press ENTER to finish... ← 按回车结束初始配置
Sorry, configure.pl does not support automatic add to cron yet.
You can do it manually by adding the following command to your cron:
/root/wwwroot/cgi-bin/awstats.pl -update -config=www.centospub.com
Or if you have several config files and prefer having only one command:
/root/tools/awstats_updateall.pl now
Press ENTER to continue... ← 按回车继续进行配置
3,然后对刚刚创建的对象配置文件进行配
vi /etc/awstats/awstats.[url]www.test.com.conf[/url] ← 修改对象配置文件(文件名与上一步初始配置中设置的域名对应)
4,再对httpd.conf中面向Awstats的部分进行必要设置。
vim /etc/httpd/conf/httpd.conf
#
# Directives to allow use of AWStats as a CGI
#
----------------------------------------------------
Alias /awstatsclasses "/root/wwwroot/classes/"
Alias /awstatscss "/root/wwwroot/css/"
Alias /awstatsicons"/root/wwwroot/icon/"
ScriptAlias /awstats/ "/root/wwwroot/cgi-bin/"
----------------------------------------------------
找到以上水平线间的语句群,对相应路径进行正确修改。变为下面水平线间状态:
----------------------------------------------------
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 "/root/wwwroot"> ← 找到这一行,对相应路径进行正确修改
↓
<Directory "/usr/local/awstats/wwwroot"> ← 变为此状态
# Directives to allow use of AWStats as a CGI
#
----------------------------------------------------
Alias /awstatsclasses "
Alias /awstatscss "
Alias /awstatsicons
ScriptAlias /awstats/ "
----------------------------------------------------
找到以上水平线间的语句群,对相应路径进行正确修改。变为下面水平线间状态:
----------------------------------------------------
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 "/root/wwwroot"> ← 找到这一行,对相应路径进行正确修改
↓
<Directory "/usr/local/awstats/wwwroot"> ← 变为此状态
5,重启httpd 服务器 使新的设置生效。
6对日志进行分析统计
vi /root/awstats.sh ← 建立统计用脚本如下:
#!/bin/bash
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=[url]www.centospub.com[/url]
(以上紫色字体部分的域名请根据实际情况设置)
[[email protected] ~]# chmod 700 /root/awstats.sh ← 赋予脚本可被执行的属性
[[email protected] ~]# /root/awstats.sh ← 运行脚本,开始进行统计(如日志量比较大的话,要花一段时间)
Update for config "/etc/awstats/awstats.[url]www.centospub.com.conf[/url]"
With data in log file "/var/log/httpd/access_log"...
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
Jumped lines in file: 0
Parsed lines in file: 55
Found 52 dropped records,
Found 0 corrupted records,
Found 0 old records,
#!/bin/bash
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=[url]www.centospub.com[/url]
(以上紫色字体部分的域名请根据实际情况设置)
[[email protected] ~]# chmod 700 /root/awstats.sh ← 赋予脚本可被执行的属性
[[email protected] ~]# /root/awstats.sh ← 运行脚本,开始进行统计(如日志量比较大的话,要花一段时间)
Update for config "/etc/awstats/awstats.[url]www.centospub.com.conf[/url]"
With data in log file "/var/log/httpd/access_log"...
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
Jumped lines in file: 0
Parsed lines in file: 55
Found 52 dropped records,
Found 0 corrupted records,
Found 0 old records,
7,然后在客户端的浏览器上访问 http://服务器IP地址(或你的域名)/awstats/awstats.pl?config=www.centospub.com 即可看到详细的分析统计资料,如下图:
8,计划任务
crontab -e ← 对定期任务执行时间表进行编辑,添加如下一行:
00 00 * * * /root/awstats.sh ← 添加此行到其中,让统计分析在每天0点更新
9,因为流量统计数据相对是不对外开放的。所以我们需要做一个访问控制
00 00 * * * /root/awstats.sh ← 添加此行到其中,让统计分析在每天0点更新
9,因为流量统计数据相对是不对外开放的。所以我们需要做一个访问控制
vim /etc/httpd/conf/httpd.conf
<Directory "/usr/local/awstats/wwwroot">
AuthType Basic
AuthName "Restricted Files"
AuthUserFile "/etc/httpd/conf/passwords" ← 密码和用户名存放的
Require user admin 访问用户名
</Directory>
AuthType Basic
AuthName "Restricted Files"
AuthUserFile "/etc/httpd/conf/passwords" ← 密码和用户名存放的
Require user admin 访问用户名
</Directory>
10,为awstats添加插件
LoadPlugin="tooltips"
#鼠标移动帮助
LoadPlugin="decodeutfkeys"
#解决搜索关键字的乱码
LoadPlugin="qqhostinfo"
#增加QQ纯真ip库
利用QQ的纯真库IP信息来显示中国化的IP来源
cd /usr/local/awstats/wwwroot/cgi-bin/plugins/
一般的类似插件都需要pm文件的支持,下载qqhostinof.pm 、qqwry.pl 将文件都放在awstats的cgi-bin/plugins下
下载纯真版IP数据库,解压缩后,只使用QQWry.dat(http://www.cz88.net/fox/这里有最新的下载我下载的08年的)
修改qqwry.pl,把./QQWry.dat改为${DIR}/plugins/QQWry.Dat
[[email protected] plugins]# vi qqwry.pl
my $ipfile="/usr/local/awstats/wwwroot/cgi-bin/plugins/QQWry.Dat";
LogFile="/var/log/httpd/mylog.log" ← 找到这一行,修改日至文件所在位置(指定Apache的日志文件)
↓
LogFile="/var/log/httpd/access_log" ← 变为此状态
DirData="/var/lib/awstats" ← 找到这一行,更改Awstats数据的保存位置
↓
DirData="." ← 变为此状态,让数据与awstats.pl脚本在同目录下
Lang="auto" ← 找到这一行,将auto改为cn
↓
Lang="cn" ← 变为此状态,让语言默认为中文
SkipHosts="" ← 找到这一行,在""之间添加无效访问规则
↓
SkipHosts="127.0.0.1 REGEX[^192\.168\.]" ← 变为此状态,本地及内部的访问不做分析统计
LevelForWormsDetection=0 ← 找到这一行,将0改为2
↓
LevelForWormsDetection=2 ← 变为此状态,将来自Worm的访问也不做分析统计
↓
LogFile="/var/log/httpd/access_log" ← 变为此状态
DirData="/var/lib/awstats" ← 找到这一行,更改Awstats数据的保存位置
↓
DirData="." ← 变为此状态,让数据与awstats.pl脚本在同目录下
Lang="auto" ← 找到这一行,将auto改为cn
↓
Lang="cn" ← 变为此状态,让语言默认为中文
SkipHosts="" ← 找到这一行,在""之间添加无效访问规则
↓
SkipHosts="127.0.0.1 REGEX[^192\.168\.]" ← 变为此状态,本地及内部的访问不做分析统计
LevelForWormsDetection=0 ← 找到这一行,将0改为2
↓
LevelForWormsDetection=2 ← 变为此状态,将来自Worm的访问也不做分析统计
转载于:https://blog.51cto.com/zjcookies/141709