1.Nginx安装目录:/usr/local/nginx

  Nginx配置文件存放目录:/usr/local/nginx/conf/nginx.conf

  Nginx日志目录:/usr/local/nginx/logs

  Awstats安装目录:/usr/local/awstats

  Awstats配置文件存放目录:/etc/awstats

  日志切割脚本存放目录:/usr/local/nginx/nginx_log.sh


2.Nginx日志切割

   修改nginx.conf配置文件,使AWSTATS支持分析日志格式

  vim /usr/local/nginx/conf/nginx.conf  

  将log_format main 到 access_log  前头的#号删掉

nginx awstats 安装配置和日志分析_nginx


3.编写定时切割日志脚本

 vim /usr/local/nginx/nginx_log.sh

#!/bin/bash
#
log_path="/usr/local/nginx/logs"
pid_path="/usr/local/nginx/logs"
date=$(date -d "yesterday" "+%Y%m%d")
outdate=$(date -d "7 days ago" "+%Y_%m_%d")
delete_path=$log_path/$outdate
mv $log_path/access.log  $log_path/access.log_$date.log
mv $log_path/error.log   $log_path/error.log_$date.log
rm -rf $(find $log_path  -name "*.log" -mtime +7 -type f)
kill -USR1 `cat $pid_path/nginx.pid`

第二种切割日志脚本

  vim /usr/local/nginx/nginx_log.sh

#!/bin/bash
# This script run at 00:00
mv   /usr/local/nginx/logs/access.log /usr/local/nginx/logs/access_$(date  -d "yesterday" +
"%Y%m%d").log
#find /usr/local/nginx/logs/access_$(date-d  "yesterday" +"%Y%m%d").log -mtime +20 -exec rm
 -rf {} \;
kill -USR1 `cat  /usr/local/nginx/logs/nginx.pid


4.给脚本加上可以执行的权限

   chmod +x /usr/local/nginx/nginx_log.sh


5.安装awstats 

 wget  http://awstats.sourceforge.net/files/awstats-7.0.tar.gz

 tar xvf awstats-7.0.tar.gz

 mv awstats-7.0 /usr/local/awstats

 chown -R root:root /usr/local/awstats


6.配置awstats  

  cd /usr/local/awstats/tools

  ./awstats_configure.pl



Config file path ('none' to skip web  server setup):

none #这里不是apache,写none,跳过#


file (required if first install) [y/N]  ?输入y #创建一个全新的统计


Your web site, virtual server or  profile name:

yzg   #被统计网站的名字,随便起 #


其他的全部按回车直到结束。


7.修改统计日志文件的路径

# vim /etc/awstats/awstats.benet.conf

  nginx awstats 安装配置和日志分析_日志分析_02

 LogFile="/usr/local/nginx/logs/access_%YYYY-0%MM-0%DD-24.log"

  SiteDomain="yzg"

  HostAliases="yzg www.yzg 127.0.0.1  localhost"

  DirData="/var/lib/awstats"      #日志数据库路径


8.mkdir -p /var/lib/awstats

  /usr/local/awstats/wwwroot/cgi-bin/awstats.pl  -update -config=yzg

Error: Couldn't open server log file  "/usr/local/nginx/logs/access_20150403.log" : 没有那个文件或目录

上面的报错是说没有找到你指定的那个文件目录,手动创建一个

  touch  /usr/local/nginx/logs/access_20150403.log

  /usr/local/awstats/wwwroot/cgi-bin/awstats.pl  -update -config=yzg

nginx awstats 安装配置和日志分析_配置文件_03


看到这个就说明成功的运行了日志切割和awstats。

 Apache 上,可以直接打开 Perl 程序的网页查看统计。但本文开始时已经提到,Nginx  Perl 支持并不好,所以我们要换个方法,利用awstats 的工具将统计的结果生成静态文件。


9.Awstats生成静态文件

 /usr/local/awstats/tools/awstats_buildstaticpages.pl  -update  -config=yzg -lang=cn -dir=/usr/local/nginx/html/awstats  -awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl


10.修改nginx配置文件

 vim/usr/local/nginx/conf/nginx.conf   

 在文件末尾添加如下行

 include /usr/local/nginx/conf/vhosts/*conf;

在server{ 添加如图


nginx awstats 安装配置和日志分析_nginx_04


11.进入浏览器

   http://localhostIP:8000(端口)/awstats.yzg.html

   nginx awstats 安装配置和日志分析_日志分析_05

12.定时计划任务

  vim /usr/local/nginx/awstats.sh

#!/bin/bash
/bin/bash  /usr/local/nginx/nginx_log.sh
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl  -update -config=benet
/usr/local/awstats/tools/awstats_buildstaticpages.pl  -update  -config=benet-lang=cn -dir=/www/site/awstats   -awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl

 chmod +x /usr/local/nginx/awstats.sh

13.添加到crontab -e

   00 00 * * * /usr/local/nginx/awstats.sh