首先将nginx做切割,将access.log按天归档存放。
可参考:http://blog.itpub.net/29773961/viewspace-1409066/
awstats的工具和脚本均由perl编写,所以在使用前需确认你的os中perl是否安装,rhel可以简易通过yum来安装或者更新perl。
官网下载:
http://www.awstats.org/

最新版本是7.4,2015年1月份的最新版本。
在这里我没有用最新版本,用的是7.2版本:

要获得版本的差别,可以参考官网的文档。
下载好后,通过tar -xzvf解压。
我将解压后的文件夹改名成awstats并放入/usr/local中。

cd /usr/local/awstats/tools
执行./awstats_configure.pl开始安装
其中会遇到几个问题,都看得懂英文,一路按照提示安下来。
其中需要输入your web site, virtual server or profile name:
这个实际上随意,实际上是修改/etc/awstats/中对应配置文件的文件名。
但根据习惯,还是建议输入你想分析的站点名称。
然后修改配置文件
vi /etc/awstats/awstats.*.conf
*是之前输入的web site
找到LogFile,修改为:
LogFile="*/access_%YYYY-24%MM-24%DD-24.log"
其中*对应为存放归档日志的目录。
(我的归档日志命名为:access_20150101.log,可以根据需求修改)
其中%YYYY-24%MM-24%DD-24代表系统时间的前一天,比如今天是20150102,那么%YYYY-24%MM-24%DD-24就是20150101。
awstats的做法是:
1.分析现有的access.log,并生成或更新awstats数据库。
2.从awstats数据库中获取,并生成awstats日志分析报告。(以html静态页面的方式呈现)
首先创建一个文件夹来存放awstats的日志结果:
比如mkdir -p /home/awstats
然后做步骤1:
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=*(*为之前输入的站点名)
可以理解指定使用/etc/awstats/awstats.*.conf这个配置文件。
这时awstats就会通过寻找配置文件中的logfile指定路径,然后做日志分析,并写入awstats数据库。
当然配置文件中还有其他选项,默认给出的.conf文件有1500多行,如果有需要,可以通读。
步骤2:
/usr/local/awstats/tools/awstats_buildstaticpages.pl -update -config=* \
-lang=cn -dir=/home/awstats \
-awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl
其中-dir指定的是之前生成存放html页面的文件夹。
只需要将html放入浏览器中,或者配置到nginx.conf中,就可以通过浏览器访问了。
这是我将我某几天的access.log分析的结果:

-
自动化
最后将步骤1和2的bash命令写入脚本,再添加到crontab中,就可以每天自动分析了。
当然要注意自动执行时间要晚于日志归档时间。
如果日志归档是在00:05做,那么分析一定得在这个时间之后。
最好将归档日志放到线下,传输到其他服务器上。避免日志分析所产生的资源占用。
crontab可参考:
http://blog.itpub.net/29773961/viewspace-1403802/。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29773961/viewspace-1425948/
,如需转载,请注明出处,否则将追究法律责任。