AWSTATS分析NGINX日志

1、修改NGXINX日志格式为下面格式:

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';

2、安装AWSTATS

/usr/local/awstats/tools/awstats_configure.pl
Enter full config file path of your Web server.
Example: /etc/httpd/httpd.conf
Example: /usr/local/apache2/conf/httpd.conf
Example: c:\Program files\apache group\apache\conf\httpd.conf
Config file path ('none' to skip web server setup):

如果使用了apache,哪么指定路径,如果没有使用,输入none
指定安装配置文件的位置,一般可以默认即可
3、更改配置文件

LogFile="/var/log/httpd/mylog.log"

更改为你的日志文件格式,即可,如

LogFile="/usr/local/nginx/logs/access.log-%YYYY%MM%DD"

后面代表日期格式,一般上面有说明,可以参考你的格式!
4、然后执行 Awstats 日志更新程序开始统计分析。

/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.moabc.net

5、生成HTML文件

mkdir  /data/webroot/awstats
/usr/local/awstats/tools/awstats_buildstaticpages.pl -update  \ 
-config=www.moabc.net -lang=cn -dir=/data/admin_web/awstats  \
-awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl

上述命令的具体意思如下:
/usr/local/awstats/tools/awstats_buildstaticpages.pl Awstats 静态页面生成工具
-update -config=www.moabc.net 更新配置项
-lang=cn 语言为中文
-dir=/data/admin_web/awstats 统计结果输出目录
-awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl Awstats 日志更新程序路径。
接下来,只需在nginx.conf 中,把该目录配置上去即可。 例子如下:(加粗部分):

server {
listen       80;
server_name  localhost;

location ~ ^/web/ {
root   /data/web;
index  index.html;
error_log off;
charset gb2312;
}

location ~ ^/awstats/ {	    # html 静态页面目录
        root   /data/webroot/awstats;
        index  index.html;
        access_log off;
        error_log off;
        charset gb2312; #最好把默认编码改成 gb2312避免浏览器因自动编码出现乱码的情况
}

location ~ ^/icon/ {             # 图标目录
        root   /usr/local/awstats/wwwroot;
        index  index.html;
        access_log off;
        error_log off;
        charset gb2312;
        }
}

用浏览器查看到统计的详细结果 http://youhostname/awstats/awstats.www.moabc.net.html
至此,使用 awstats 已能完全支持 Nginx 的日志统计。
回页首
配置 Awstats 自动运行
为了让整个日志的统计过程自动完成,我们需要设置 crontab 计划任务,让 Nginx 日志切割以及 Awstats 自动运行,定时生成结果页面。

#vi /etc/crontab
11 59 * * * /opt/nginx/sbin/logcron.sh #半夜11:59  进行日志切割
00 1 * * * /usr/local/awstats/tools/awstats_buildstaticpages.pl  \
-update -config=www.moabc.net -lang=cn -dir=/data/admin_web/awstats \
-awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl  

#凌晨00:01 Awstats进行日志分析
:wq保存退出
修改 Nginx 配置完毕后,执行命令 killall –s HUP nginx 让 Nginx 重新加载配置即可。