Nginx + AWStats 完整安装

superyu 2011-04-13

1. 安装 AWStats可以一行搞定

yum -y install awstats

如果不能 yum 安装,请运行

rpm -ihv http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm

另外,装一下 GeoIP,一会可以分析IP的国家

yum -y install GeoIP GeoIP-data GeoIP-devel perl-Geo-IP

OK!装好了!目录是在 /usr/share/awstats 下,配置文件在 /etc/awstats

现在说下手动安装 AWStats,很简单,就是下载解压,改下文件权限,建个目录而已,用 yum 的方法的话这些都帮你自动搞定了,区别在于路径不同哈

wget http://prdownloads.sourceforge.net/awstats/awstats-6.95.zip

unzipawstats-6.95.zip

mvawstats-6.95awstats

mvawstats/usr/local/

chmod+x/usr/local/awstats/tools/awstats_configure.pl

chmod+x/usr/local/awstats/wwwroot/cgi-bin/awstats.pl

chmod+x/usr/local/awstats/tools/awstats_buildstaticpages.pl

#这里是用来存放AWStats的数据库文件的

mkdir /var/lib/awstats

2. 新建 AWStats 配置文件

cd /usr/local/awstats/tools/perl ./awstats_configure.pl

几个小问题自己选Y和填下名称,不再详述,注意用 yum 的方法安装的话路径不一样,/etc/awstats 下也有样例给你参考主要改动以下几行,这里我添加详细说明一下

# 这日 AWStats 解析的日志格式,现在的 Nginx 默认就是这个格式了!这里删除了最后的  %otherquot

LogFormat="%host%other%logname%time1%methodurl%code%bytesd%refererquot%uaquot"

#css和图片文件位置,对于站点根目录

StyleSheet="/awstats/css/awstats_bw.css"

DirIcons="/awstats/icon"

#这玩意不用多说吧,就是可以显示IP国家的

LoadPlugin="geoip GEOIP_STANDARD  /usr/share/GeoIP/GeoIP.dat"

我新建的文件是 /etc/awstats/awstats.21andy.com.conf

我的Nginx日志文件在/www/logs/21andy.com_access.log

在最后,我会用 awstats 根据 awstats.21andy.com.conf 来为 21andy.com_access.log 生成静态 HTML 报告

3. 改 Nginx 配置文件

vim/etc/nginx/nginx.conf

删除或替换这段,因为Nginx默认的格式已经是我上面设置的了,所以可以删除了,用默认的!

你也可以替换成下面这样的
log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '

'$status$body_bytes_sent"$http_referer"'

                    '"$http_user_agent"';

开启 Nginx 日志记录, 看看你的 server 段里有没有这行,没有就加上

access_log  /www/logs/21andy.com_access.log;

接着在主机段配置里加上vim /etc/nginx/server.conf

location ~ ^/awstats/ {

access_logoff;

charsetgbk;

}

4. 定时切割 Nginx 日志文件

vim/root/cut_nginx_log.sh

输入以下内容
#!/bin/bash

#这里根据你自己的文件名来写

mv/www/logs/21andy.com_access.log/www/logs/21andy.com_access_$(date-d"today"+"%Y%m%d").log

kill -USR1 `cat /var/run/nginx.pid`

给它可执行

chmod +x /root/cut_nginx_log.sh

可以试一下运行

/bin/bash /root/cut_nginx_log.sh

/www/logs/ 里是不是多一个 21andy.com_access_20101016.log 文件出来,就OK了,一会我们再加到 cron 里执行

本文作者 Andy

5. 新建要生成 HTML 报告的目录,把图片和CSS复制进去

mkdir -p /www/21andy.com/awstats/

cp-R/usr/local/awstats/wwwroot/css/www/21andy.com/awstats/

cp -R /usr/local/awstats/wwwroot/icon /www/21andy.com/awstats/

6. 生成 AWStats 数据库

/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=21andy.com

这里 -config=21andy.com 意思是说使用 /etc/awstats/awstats.21andy.com.conf 这个文件

7. 生成 AWStats 日志分析报告

/usr/local/awstats/tools/awstats_buildstaticpages.pl -update -config=21andy.com -dir=/www/21andy.com/awstats -lang=cn -awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl

最后你会看到告诉你生好了 awstats.21andy.com.html 打开浏览器去看看吧

8. 定时运行

最后定时切割Nginx日志和生成报告,我定在每天23点的最后2分钟来搞

crontab-e

输入以下内容
# AWStats + Nginx log

5723***/bin/bash/root/cut_nginx_log.sh

5823***/usr/local/awstats/tools/awstats_buildstaticpages.pl-update-config=21andy.com-dir=/www/21andy.com/awstats-lang=cn-awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl

相关推荐