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 前头的#号删掉
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
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
看到这个就说明成功的运行了日志切割和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{ 添加如图
11.进入浏览器
http://localhostIP:8000(端口)/awstats.yzg.html
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