|
通过我们构建的HTTP服务器将Web发布后,随着不断被访问,Apache会记下每个访客的基本信息。CentOS的情况下,这些信息通常保存在位于/var/log/httpd/下的相应日志文件中。但Apache单调的日志,除了提供给我们一些最基本的服务器被访信息、以及出错信息之外,我们很难单纯的通过日志文件得到更多、更系统的关于时间、规律性、地点方面的信息。这也使得很难通过单纯的日志去系统的分析流量。
但通过Awstats,我们可以把Apache的日志作为一种有效资源,获得更加系统化的信息。
实质上,Awstats就是一套分析系统,它将日志文件统计学式的进行分析与统计,然后提供一个能够反映规律性的界面给我们。Awstats并不是仅能应用于分析Apache的日志,在邮件服务器等等方面,它也被广泛的应用。但在这一节中,只介绍在Web服务器中运用Awstats建立统计系统的方法。
|
首先下载并安装Awstats。
[root@sample ~]# wget http://nchc.dl.sourceforge.net/sourceforge/awstats/awstats-6.5-1.noarch.rpm ← 下载Awstats的rpm包 100%[====================================>] 1,095,131 155.28K/s ETA 00:00 15:35:06 (158.94 KB/s) - `awstats-6.5-1.noarch.rpm' saved [1095131/1095131] [root@sample ~]# rpm -ivh awstats-6.5-1.noarch.rpm ← 安装Awstats ----- AWStats 6.5 - Laurent Destailleur ----- If first install, follow instructions in documentation |
然后删除安装后的遗留源文件。
[root@sample ~]# rm -f awstats-6.5-1.noarch.rpm ← 删除安装后的遗留源文件 |
|
接下来对Awstats进行初始配置。
[root@sample ~]# /usr/local/awstats/tools/awstats_configure.pl ← 运行初始配置脚本 ----- AWStats awstats_configure 1.0 (build 1.6) (c) Laurent Destailleur ----- -----> Running OS detected: Linux, BSD or Unix -----> Check for web server install Enter full config file path of your Web server. -----> Check and complete web server config file '/etc/httpd/conf/httpd.conf' -----> Update model config file '/etc/awstats/awstats.model.conf' -----> Need to create a new config file ? -----> Define config file name to create -----> Define config file path -----> Create config file '/etc/awstats/awstats.www.centospub.com.conf' -----> Restart Web server with '/sbin/service httpd restart' ← HTTP服务重新启动 Stopping httpd: [ OK ] -----> Add update process inside a scheduler A SIMPLE config file has been created: /etc/awstats/awstats.www.centospub.com.conf Press ENTER to finish... ← 按回车结束初始配置 |
然后对刚刚创建的对象配置文件进行配置。
[root@sample ~]# vi /etc/awstats/awstats.www.centospub.com.conf ← 修改对象配置文件(文件名与上一步初始配置中设置的域名对应) |
|
接下来,再对httpd.conf中面向Awstats的部分进行必要设置。
[root@sample ~]# vi /etc/httpd/conf/httpd.conf ← 编辑Apache的配置文件 |
然后,重新启动HTTP服务,使新的设置生效。
[root@sample ~]# /etc/rc.d/init.d/httpd restart ← 重新启动HTTP服务,使设置生效 |
|
配置完毕后,我们可以通过各种适用于自己的方式,定义统计的方式以及输出的结果。在这里,介绍最简单,也是最广泛的统计方法,如下:
[root@sample ~]# vi /root/awstats.sh ← 建立统计用脚本如下: |
然后在客户端的浏览器上访问 http://服务器IP地址(或你的域名)/awstats/awstats.pl?config=www.centospub.com 即可看到详细的分析统计资料,如下图:
|
[1] 完成以上配置,我们已经可以通过客户端的浏览器,掌握Web服务器的访问量、来路等等详细的信息,但由于Awstats的统计是基于Apache日志的, 我们必须通过awstats.pl对当前最新的日志文件进行统计才能得到最新的统计结果。也就是说,在我们运行自行创建的awstats.sh脚本之前, 当前在客户端能够看到的统计分析结果,只是上一次运行awstats.sh脚本时统计的结果。想得到最新的统计结果,必须再次运行awstats.sh。 在这里,我们将其设置为每天定时自动运行,以便于每天都能查看到最新的信息。如下:
[root@sample ~]# crontab -e ← 对定期任务执行时间表进行编辑,添加如下一行: |
[2] 在一些情况,可能并不希望外界看到日志统计分析的结果。对此,我们可以为Apache添加面向于Awstats的访问限制,如下:
[root@sample ~]# vi /etc/httpd/conf.d/awstats.conf ← 创建面向于Awstats的配置文件 |
[3] 用Firefox浏览分析结果时,字体会显得很难看(因为Firefox和IE识别11px字体不一样),所以用Firefox浏览器的情况,可以通过修改awstats.pl输出css的相关字体尺寸进行修改,而达到用Firefox浏览时也和IE一样能够正确显示出适当尺寸的字体。方法就是直接编辑"/usr/local/awstats/wwwroot/cgi-bin/awstats.pl",将文件中所有“11px”的地方都替换为“12px。
注意:apache的LOG日志需要设置为combined模式,来输出更为详细的信息例如:
CustomLog logs/sdg.com-access_log combined
扩展
安裝 GeoIP C API :
请到 http://geolite.maxmind.com/download/geoip/api/c/ 下载最新的版本。
解压缩后进入该目录(tar zxvf)。
执行 ./configure。
执行 make。
执行 make install。
以上就完成安裝,而且会在 /usr/local/share/GeoIP 产生一個 GeoIP.dat 的文件。
再安裝 GeoIP Perl API
请到 http://geolite.maxmind.com/download/geoip/api/perl/ 下载最新的版本。
解压缩后进入该目录。(tar zxvf)
执行 perl Makefile.PL。
执行 make。
执行 make install。
完成安裝。
接下来就是编辑awstats.www.zwnking.com.conf 文件,因为我們已经安装了GeoIP,而 awstats在解析IP需要的就是GeoIP.dat,所以请按下面步骤编辑 awstats.www.zwnking.com.conf:
LoadPlugin="tooltips"
LoadPlugin="decodeutfkeys"
LoadPlugin="geoip GEOIP_STANDARD /usr/local/share/GeoIP/GeoIP.dat"
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /usr/local/share/GeoIP/GeoLiteCity.dat"
(2)GeoLiteCity.dat 用來解析城市、地区的信息,请到 http://geolite.maxmind.com/download/geoip/database/下载GeoLiteCity.dat.gz,这样 awstats 就可以做IP反解析,报表中就可以显示访客的国家与城市来源。
把这个文件也要放在/usr/local/share/GeoIP下。
在awstats.www.zwnking.com.conf中的配置:
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /usr/local/share/GeoIP /GeoLiteCity.dat"
按照我的方法 在 (mt) 中安装 AWStats 完成后,可以再做以下几方面的工作:
1、开启以下几个插件,可显示一些额外提示、把 IP 转换为国家和城市信息。
(方法:打开 awstats.osxcn.com.conf,找到如下插件,去掉前面的注释,把 GeoIP.dat 和 GeoLiteCity.dat 的路径改为自己实际的)
LoadPlugin=”tooltips”
LoadPlugin=”decodeutfkeys”
LoadPlugin=”geoip GEOIP_STANDARD /var/www/vhosts/osxcn.com/httpdocs/awstats/GeoIP.dat”
LoadPlugin=”geoip_city_maxmind GEOIP_STANDARD /var/www/vhosts/osxcn.com/httpdocs/awstats/GeoLiteCity.dat”
提示:需要先在 (mt) 上安装 Geo::IP::PurePerl 模块才能使用 GeoIP,到这里下载。
2、安装纯真版 IP 数据库来分析 IP
GeoLiteCity.dat 对中国城市的统计不准确,在国内还是珊蝴虫和纯真版 IP 数据库比较好,Albert 做了一个显示来访者位置的插件 qqhostinfo,使用纯真版 IP 数据库。
1) 下载 纯真版 IP 数据库,解压后得到 QQWry.Dat。
2) 下载 qqhostinfo.pm。
3) 下载 分析 QQWry.dat 的 perl 脚本,得到 qqwry.pl,打开修改一下,把 ./QQWry.Dat 修改为 ${DIR}/plugins/QQWry.Dat。
4) 把 QQWry.Dat, qqhostinfo.pm, qqwry.pl 放在 cgi-bin/plugins下面。
5) 打开 awstats.osxcn.com.conf,在 # PLUGINS 部分加上一句 LoadPlugin=”qqhostinfo”。
提示:使用 qqhostinfo 插件需要安装 Net::XWhois 模块,到这里下载。
3、打上几个中文搜索引擎定义的补丁 (可选)
AWStats 6.6 在这方面已经做得很好了,如果有这个需要的可以打上车东提供的补丁。
TOP 8 Chinese local search engines
需要在本地打好补丁后再上传,如在 Ubuntu 上把他们放在同一个目录,然后:
patch search_engines.pm search_engines.pm.patch
4、让图标显示出来
按照上一篇文章安装 AWStats 后,没有把图标文件上传,查看 awstats.osxcn.com.conf 配置文件发现默认图标 DirIcons=”icon” 是这样的。那么只需要把 icon 放在 /httpdocs/awstats/ 目录下就可以了。
icon 文件夹在 AWStats 包里 awstats-6.6/wwwroot/icon 这个位置。
5、如果你的网站访问量达到千万级,可以使用 “AWStats 的千万级日志解决方案”。
命令行统计增加: -databasebreak=day
报表输出时增加: &databasebreak=day&day=DD
日志分割
1、下载(最新版本)
# wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
2、解压缩
# tar zxvf cronolog-1.6.2.tar.gz
3、进入cronolog安装文件所在目录
# cd cronolog-1.6.2
4、运行安装
# ./configure
# make
# make install
5、查看cronolog安装后所在目录(验证安装是否成功)
# which cronolog
一般情况下显示为:/usr/local/sbin/cronolog
整个安装过程结束,下面需要把日志的格式配置一下:
1、虚拟主机配置文件 httpd-vhosts.conf
将Web日志设置 CustomLog 修改为以下格式
CustomLog "|/usr/local/sbin/cronolog /www/logs/example_%Y%m%d.log" combined
CustomLog "|/usr/local/sbin/cronolog /usr/local/apache/logs/access _%Y%m%d.log" combined
当然,错误日志设置 ErrorLog 也可以利用 cronolog 分割,设置为
ErrorLog "|/usr/local/sbin/cronolog /www/logs/error_%Y%m%d.log"
2、如果服务器上只有一个站点(当然这种情况比较少),直接按上面所说格式修改 httpd.conf 文件日志设置部分。
说明:
- 绿色部分 为 cronolog 安装后所在位置,系统版本不同可能位置不完全一样,以 which 命令查看到的位置为准;
- 蓝色部分 为设置的日志文件所在位置,根据需要修改;
- 红色部分 为设置的日志文件标识性字符,根据需要修改;
- %Y%m%d 为日志文件分割方式,例子中为“年月日”,也可以修改成自己需要的。
配置apache日志
GNU/Linux LogFile="/path/to/apache/logs/access_%YYYY-24%MM-24%DD-24.log"