系统环境为CenoOS 5.6,详细请参考之前的日志《CentOS 5.x使用yum安装Nginx+PHP(FastCGI)+MySQL生产环境》。
Awstats 是目前最流行的日志分析工具,它提供比第三方日志更方便更详实的日志分析。
系统安装的Nginx版本为 1.0.x,日志格式 Awstats 可以直接识别,并且由logrotate做了日志回滚,每日对日志进行截断。为了得到更准确的分析结果并且尽量少占用系统资源,我每天在凌晨分析上一天的日志,并将结果输出为纯静态文件。由于logrotate 压缩了旧日志所以要修改logrotate设置不压缩旧日志。
1、编辑修改vim /etc/logrotate.d/nginx
/var/log/nginx/*log {
daily
rotate 10 #保留日志的天数,默认为10天
missingok
notifempty
nocompress #就是这里默认是compress,是压缩日志的意思
sharedscripts
postrotate
[ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
endscript
}
2、yum安装Awstats:
yum install awstats
配置
cd /usr/share/awstats/tools/
perl awstats_configure.pl
由于我们的web服务器是Nginx 所以 Check for web server install 我们选 none
-----> Need to create a new config file ?
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ? y #这里选Y
-----> Define config file name to create
What is the name of your web site or profile analysis ?
Example: www.mysite.com
Example: demo
Your web site, virtual server or profile name:
> www.macd11.com #输入你要统计的网站的域名
之后的默认回车!
3、编辑vim /etc/awstats/awstats.www.macd11.com.conf
修改 LogFile 字段加入当前网站日志的路径。
LogFile="/var/log/nginx/access.log"
4、生成一份分析结果的静态文件:
mkdir -p /var/www/html/ha97/awstats
cp -fr /usr/share/awstats/wwwroot/icon/ /var/www/html/ha97/awstats/
/usr/share/awstats/tools/awstats_buildstaticpages.pl -config=www.macd11.com -lang=cn -dir=/var/www/html/ha97/awstats -update
这样就可以访问:http://www.macd11.com/awstats/awstats.www.macd11.com.html 来查看分析结果。
设置crontable
30 4 * * */usr/share/awstats/tools/awstats_buildstaticpages.pl -config=www.macd11.com -lang=cn -dir=/var/www/html/ha97/awstats -update
每天凌晨 4:30 分析日志,因为这个时候是服务器最空闲的时段。