天天看点

Linux 日志分析工具之awstats

        官方网站:AWStats is a free powerful and featureful tool that generates advanced web, streaming, ftp or mail server statistics, graphically. This log analyzer works as a CGI or from command line and shows you all possible information your log contains, in few graphical webb pages. It uses a partial information file to be able to process large log files, often and quickly. It can analyze log files from all major server tools like Apache log files (NCSA combined/XLF/ELF log format or common/CLF log format), WebStar, IIS(W3C log format) and a lot of other web, proxy, wap, straming servers, mail servers and some ftp servers.

        Awstats 是一个免费的日志分析工具,用perl开发。可以用于分析各种linux下的应用程序产生的日志,包括 apache/squid/samba/resin/tomcat 等等。在这里,我们主要用它来分析apache日志。

        统计包括访问,访问者,页面,点击,高峰时间,操作系统,浏览器,搜索引擎,关键字,机器人访问,端开的链接和更多的阻力截图排序。

        Awstats是一个非常简洁而且强大的统计工具。它可以统计您站点的如下信息:

一:访问量,访问次数,页面浏览量,点击数,数据流量等精确到每月、每日、每小时的数据

二:访问者国家、访问者IP、操作系统、浏览器等

三:Robots/Spiders的统计

四:纺客持续时间

五:对不同Files type 的统计信息

六:Pages-URL的统计

七:其它信息(搜索关键字等等) 

访问次数、独特访客人数,

访问时间和上次访问,

使用者认证、最近认证的访问,

每周的高峰时间(页数,点击率,每小时和一周的千字节),

域名/国家的主机访客(页数,点击率,字节,269域名/国家检测, geoip 检测),

主机名单,最近访问和未解析的 IP 地址名单

大多数看过的进出页面,

档案类型,

网站压缩统计表(mod_gzip 或者 mod_deflate),

使用的操作系统 (每个操作系统的页数,点击率 ,字节, 35 OS detected),

使用的浏览器,

机器人访问(检测 319 个机器人),

蠕虫攻击 (5 个蠕虫家族),

搜索引擎,利用关键词检索找到你的地址,

HTTP 协议错误(最近查阅没有找到的页面),

其他基于 URL 的个性报导,链接参数, 涉及综合行销领域目的.

贵网站被加入"最喜爱的书签".次数.

屏幕大小(需要在索引页补充一些 HTML 标签).

浏览器的支持比例: Java, Flash, RealG2 reader, Quicktime reader, WMA reader, PDF reader.

负载平衡服务器比率集群报告.

        Awstats 的运行需要 perl 环境的支持,从awstats 官方文档来看,它对apache http server 的支持是非常完美的。如果使用的 nginx,要运行awstats有点麻烦。首先nginx对perl 的支持是比较弱的,甚至官方也不建议使用;另外在日志格式上需要修改后才能正常运行。

awstats官方网站: http://awstats.sourceforge.net/   

perl官方网站: http://www.perl.com/    

awstats项目地址:http://sourceforge.net/projects/awstats/

        AWStats的功能很多,我在此主要用它来分析apache服务器的日志。安装使用之前还是说说大致的工作原理,AWStats提供一系列的perl脚本实现:服务配置,日志读取,报表生成等功能。

        而功能实现的具体执行过程是:首先,当然是apache将访问情况记录到日志中,AWStats每次执行更新时读取这些日志,分析日志数据,将结果存储到数据库中,(这个数据库是AWStats自带的【就是一文本文件】,并不需要第三方软件支持。),最后AWStats提供一个cgi程序通过web页面来显示数据库中所统计的数据。

AWStats的工作模式是这样的:

分析日志:运行后将日志统计结果归档到一个AWStats的数据库(纯文本)里;

输出日志:分两种形式

一种是通过cgi程序读取统计结果数据库输出(Linux中);

一种是运行后台脚本将输出导出成静态文件(Windows中);

其他同类日志统计分析工具有:

AWStats

Analog

Webalizer

环境信息约定:

日志文件位置:/usr/local/apache/logs

系统:CentOS6.5 X64

awstats安装位置:/usr/local/awstats

JAWStats安装位置:/htdoc/stats/

这里我们配置的站点域名:www.test.com

WEB服务器:Apache 2.2

静态页面文件输出路径:/usr/local/apache/data(可选)

Requirements:

To use AWStats, you need the following requirements:

Your server must log web access in a log file you can read.

You must be able to run perl scripts(.pl files) from command line and / or as CGI(Perl 5.007003 or higher required to run AWStats 6.9 or higher)

If not, you can solve this by downloading last Perl version at  ActivePerl (Win32) or  Perl.com(Unix/Linux/Other)

1、安装 perl

awstats 是由 perl 语言编写的,不管是在Windows还是Linux下,都需要安装perl。所以要首先准备好 perl 环境,通常linux系统都是自带了perl的。

2、下载 awstats 工具(Last stable version is 7.4),并解压至常规目录 /usr/local

3、安装 awstats

由于 wget 下来的包文件的权限是非 root用户的,所以需要修改权限,否则稍后 *.pl 无法运行。

Awstats 会自动检测httpd.conf 配置文件,并在其配置文件末尾添加如下语句:

awstat 目录:

安装目录: /usr/local/awstats

配置文件: /etc/awstats

数据文件: /var/lib/awstats

3、查看awstats配置文件

        awstats_configure.pl 还将根据安装过程中您的回答(要分析的网站域名)信息,生成配置文件。结束这个向导以后,我们对www.test.com站点的awstats配置文件已经配置好了。下面我们来查看并修改一下这个配置文件。

接下来,编辑配置文件,AWStats 支持针对多个子域名生成分析日志,主要修改以下几行:

LogFile 指明apache的access log所在,这里也可以使用变量,例如:LogFile="/data/log/imysql.cn-access_log.%YY-24%MM-24%DD",具体的请查看 相关文档。

LogFormat 表示日志格式,我在apache的日志格式中,采用 combined,因此这里写成4。如果apache里设置的是 common,则在这里写 2,具体的对应关系可以看 Awstats文档。

SiteDomain 要分析的域名

DirData 分析结果存放位置(awstas数据库)

如果apache 进行了日志切割, 这里需要随机应变

    在上面的我们讲解了awstats的yum安装与源码安装,同时配置了一个监控实例,下面我们就执行一下这个监控实例www.test.com。

1、更新awasts数据库

        现在我们需要用awstats来生成对apache日志的统计分析信息。由于我们用的awstats是支持perl的FCGI动态化访问页面,所以此处我们只需要直接更新数据库即可。FCGI程序会自动将数据库以动态页面的形式展现出来,无须再手动生成静态页面了。

接下来我们来查看一下分析结果

如果还想通过web server查看分析结果,就需要让web server支持cgi才行了。在这里,我使用apache作为web server,因此我在编译apache时,加上了选项:--enable-cgi。

LoadModule cgid_module modules/mod_cgid.so

注意cgi脚本的执行权限,一定要apache用户拥有执行权限,否则可能提示Server Internal 错误。

注,如果,你顺利的执行了上面的所有操作。那么OK,现在你已经可以通过访问:http://localhost/awstats/awstats.pl?config=www.test.com ,效果如下图:

Linux 日志分析工具之awstats

cron更新数据库

    由于要得到新的统计信息,就必须更新数据库,也就是说重新做读取日志。分析日志提取里面新增的部分进行分析,将更新的数据存入数据库的过程。最好就让它定时执行。

    最后需要说明的是,在文中已经多次提到过,要能反应最新信息就必须更新数据库。也就是说你可能已经对它进行了多次访问,但是查看统计页面发现没变化。这是因为这些日志还没有更新到数据库.简单的方法就是定时执行。

假设我有两个站点:

www.test.com

mail.test.com 

配置多站点监控(也就是配置 多个awstats 配置文件即可。分析多个域名的日志,就是把 awstats_configure.pl 多操作几次)

注,配置 mail.test.com的 配置文件,其实步骤和上面www.test.com一样,只是在域名的地方做更改即可。下面我们就再来演示一下,

好了,下面步骤和上面www.test.com配置步骤一样,我这里就不重复说明。

1、IP 地址国家、区域显示问题

    Awstats默认安装之后是不具有识别访问者的国家和地区信息的,所以需要安装插件支持Awstats列出访问者的国家和地区,便于分析GeoIP免费的是国家/IP的数据表,GeoIPCityLite是地区的数据表。

(1).MaxMind目前免费提供了GeoIP 和GeoIPCityLite 数据包:可以定期每个月从以下地址下载

2、中文乱码问题

    Awstats是一套非常好用的免费的日志分析软件,他是用perl实现的,支持web log、ftp log和mail log;而且它还能自动根据你浏览器的字符设置来选取语言(支持中文)。但是缺省安装的话有个问题,就是用来搜索的关键字如果是中文的话显示出来是乱码的。 之所以搜索的关键字句会变成乱码的原因,主要是因为现在的搜索引擎都是使用UTF8,而Awstats是使用decodeUTFkeys这个plugin来处理搜索引擎的UTF8关键字,默认是没有打开的,所以在显示上会出现乱码。要解决中文乱码问题,方法也很简单,

在配置文件中把decodeutfkeys这个plugin打开就可以了。在配置文件中找到:

#LoadPlugin="decodeutfkeys"

去掉前面的#就可以了。

这样我们的中文显示就完成了,但是打开LoadPlugin="decodeutfkeys"这个插件在一些机器上会报错,下面我们来演示一下报错的情况。

Linux 日志分析工具之awstats

从上面的报错可以看出这是缺少 Perl 的 URI:Escape模块,下面我们解决一下这个问题:

    AWStats是在Sourceforge上发展很快的一个基于Perl的WEB日志分析工具。相对于另外一个非常优秀的开放源代码的日志分析工具Webalizer,AWStats的优势在于:

1.界面友好:可以根据浏览器直接调用相应语言界面(有简体中文版)

2.基于Perl:并且很好的解决了跨平台问题,系统本身可以运行在GNU/Linux上或Windows上(安装了ActivePerl后);分析的日志直接支持Apache格式 (combined)和IIS格式(需要修改)。Webalizer虽然也有Windows平台版,但目前已经缺乏 维护;AWStats完全可以实现用一套系统完成对自身站点不同WEB服务器:GNU/Linux/Apache和Windows/IIS服务器的统一统计。

3.效率比较高:AWStats输出统计项目比Webalizer丰富了很多,速度仍可以达到Webalizer的1/3左右,对于一个日访问量 百万级的站点,这个速度都是足够的;

4.配置/定制方便:系统提供了足够灵活但缺省也很合理的配置规则,需要修改的缺省配置不超过3,4项就可以开始运行,而且修改和扩展的插件还是 比较多的;

5.AWStats的设计者是面向精确的"Human visits"设计的,因此很多搜索引擎的机器人访问都被过滤掉了,因此有可能比其他日志统计工具统计的数字要低,来自公司内部的访问也可以通过IP过滤 设置过滤掉。

6.提供了很多扩展的参数统计功能:使用ExtraXXXX系列配置生成针对具体应用的参数分析会对产品分析非常有用。

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

看一看这个比较表在最著名统计工具 (AWStats, Analog, Webalizer,...)之间有何特点和不同的想法。AWStats 是一个在GNU通用公共许可证下发行的免费软件. 你可以看看这个许可证图表而知道你可以/不可以做。由于AWStats工程来自网上信息,但也作为CGI、 它可以与允许进入Perl、CGI与日志的大型网站主办提供商一起工作。

http://www.cnblogs.com/fnng/archive/2012/08/31/2666175.html

http://freeloda.blog.51cto.com/2033581/1346412

http://blog.fity.cn/post/389/

http://zzxtbl.blog.51cto.com/7620672/1650825

1、安装环境

windows Server 2008 R2

apache 2.2

awstats版本为7.3

Windows系统下配置 apache 日志切割方法:

A、使用 cronolog 日志轮转工具

从 http://cronolog.org/download/  可以下载 cronolog程序, 把下载的 cronolog程序放到 apache 的bin 目录下(详细参数参加: http://cronolog.org/usage.html)

Linux 日志分析工具之awstats

B、使用 rotatelogs 程序

rotatelogs 是 apache 自带的管道日志程序,参数如下(参考:http://lamp.linux.gov.cn/Apache/ApacheMenu/programs/rotatelogs.html )

Linux 日志分析工具之awstats

二、安装备忘

1、注意:由于awstats依赖于perl,所以提前安装perl环境

下载perl:   http://www.activestate.com/activeperl/downloads

或者直接在百度搜索下载: activeperl 

根据自己的环境选择不同的安装包,通常下载 ActivePerl_5.x.msi 可执行程序,然后安装

2、配置 apache 支持 perl (CGI)

3、解压AWStats

下载AWStats(国内环境的话,需要自带工具)

http://sourceforge.net/projects/awstats

自行选择需要解压的路径

4、设置配置文件

定位到awstats-7.3\tools下,执行 awstats_configure 文件,这个文件的主要功能就是设置WEB容器的路径,log路径等。

配置完后,APACHE的 httpd.conf 下会生成类似一下的内容

同时在awstats-7.3\wwwroot\cgi-bin文件夹下会生成一个 awstats.domain.com.conf 文件

4、修改配置文件

5、生成数据

6、修改awstats文件

7、浏览器打开

在浏览器中输入类似的地址 http://localhsot/awstats/awstats.pl?config=domain.com,正常情况下即可看到结果

高级配置

1、增加一个显示来访IP归属地的功能

执行如下命令

ppm install Geo::IP::PurePerl

ppm install Geography::Countries

ppm install IP::Country

ppm install Geo-IPfree

ppm install Net-Xwhois

安装GeoIP

http://dev.maxmind.com/geoip/legacy/geolite/

修改awstats.domain.com.conf文件,找到如下内容

# 开启 GeoIP 反查模块

LoadPlugin="geoip GEOIP_STANDARD D:/awstats/awstats-x.x/wwwroot/cgi-bin/ipdata/GeoIP.dat"

# 开启 IP 反查的外挂

LoadPlugin="geoipfree"

# 开启 decodeutfkeys 外挂,解决”用以搜索的关键词”乱码

LoadPlugin="decodeutfkeys"

更新配置文件

perl.exe awstats.pl -config=domain.com -update

2、定期更新

通过win的计划任务搞定

3、加一个需要用户名才可以访问的功能

由于要求在内网访问,所以没有涉及

参考阅读:

http://luestudy.blog.51cto.com/8480481/1395362

http://blog.chinaunix.net/uid-7354272-id-2643593.html

怎样在windows下安装Perl

http://jingyan.baidu.com/article/380abd0aa6c7371d90192c1b.html

awstats 分析 nginx 日志

1、安装nginx 以及 awstats 的过程就不讲解了, 可以参考上面的内容。

2、本文主要介绍通过让 awstats 对日志统计的结果生成静态页面,然后通过 Nginx 输出以达到统计 Nginx 访问日志的效果,其中还包括如何让 Nginx 自动切割日志文件。对于nginx的日志,我的做法是按天切割。

跟 Apache HTTP Server(以下称 Apache)不同的是,Apache 可以将日志输出通过管道的方式进行重新定向,依此来进行自动的日志切割。Nginx 在现今版本上还没能跟 Apache 一样,通过%YY等参数按日期分批创建日志,但是通过给 nginx 进程发送一个特定的信号,可以使 nginx 重新生成日志文件。我们可以定期执行一个 Shell 脚本来切换日志,重新命名或转移,具体的脚本如下:

将以上脚本内容保存为文件名为 logcron.sh 存到自定的目录中,例如 /opt/nginx/sbin/logcron.sh

使用 Crontab 让该脚本程序在每天晚上 11 点 59 分自动执行,即可做到按天创建日志。

需要注意的是,nginx的日志应该遵循以下格式,才可以被awstats识别,如定义日志格式

执行 tools 目录中的 awstats_configure.pl 配置向导,创建一个新的统计。

以上步骤默认会产生配置文件 ==>> /etc/awstats/awstats.slog.fity.cn.conf

awstats 配置文件的命名规则:awstats.website.conf

修改配置文件

用浏览器查看到统计的详细结果  http://youhostname/awstats/awstats.www.slog.fity.cn.html

至此,使用 awstats 已能完全支持 Nginx 的日志统计。

认证访问

一般站长都不愿随便让人知道自己站的真实流量,所以要把 Awstats 统计结果页面进行密码保护。Nginx 使用的是跟 Apache 一样的密码加密格式,这里需要用到 apache 自带的工具 htpasswd。

如果你在本机上默认装有 Apache,这你就只需在它的程序目录下运行

如果你想给你的awstats加上访问密码,可以见这里:nginx为目录或网站加上密码认证

问题汇总

当再次输入网址时,在页面上只出现了一行字:

Content-type: text/html; charset=gb2312 Cache-Control: public Last-Modified: Sat Feb 11 13:14:37 2016 Expires: Sat Feb 11 13:14:37 2016 

如果出现,是因为浏览器不支持frame(似乎是服务器端问题),请在页面上右键选择查看源文件,有这样一行字:Your browser does not support frames.You must set AWStats UseFramesWhenCGI parameter to 0 to see your reports.

好,现在去修改awstats.conf 配置文件,把UseFramesWhenCGI参数设成0。

http://www.ibm.com/developerworks/cn/linux/l-cn-awstats-nginx/

http://blog.sina.com.cn/s/blog_8db76d6d0101342m.html

http://lodar.net/methods-of-apache-web-log-daily-rotation/

http://www.linuxde.net/2013/06/14027.html

http://www.cnblogs.com/cocowool/archive/2010/09/07/1820626.html

http://www.cnblogs.com/cocowool/archive/2010/09/10/1823504.html

继续阅读