Chinaunix首页 | 论坛 | 博客
  • 博客访问: 308353
  • 博文数量: 63
  • 博客积分: 1997
  • 博客等级: 上尉
  • 技术积分: 690
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-29 11:17
文章分类

全部博文(63)

文章存档

2010年(26)

2009年(37)

我的朋友

分类: LINUX

2010-05-18 11:18:36

接上一篇文章

三、多主机日志分析

awstats5.4版本以后,awstats可以用include来实现对多个站点得日志分析。

这里要用到一个公共文件,在/usr/local/awstats/wwwroot/cgi-bin/下,我们做如下操作:

#cp /usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf  /webserve/awstats/awstats.common.conf

#vi awstats.common.conf

 把LogFile这一行注释了,剩下得都保留,然后在文件得最后添加如下:

#

Include "awstats.common.conf"

Logfile="/backup/log/access_log.%YYYY-24%MM-24%DD-24"

SiteDomain=""

DirData="/backup/awstats"

#bbs.xxxxx.com

Include "awstats.common.conf"

Logfile="/backup/log/access_log.%YYYY-24%MM-24%DD-24"

SiteDomain="bbs.xxxxx.com"

DirData="/backup/awstats"

注:如果是windows下我们就要这样些日志得格式\ex%YY-24%MM-24%DD-24.log

这里在增加一下关于日期设置的含义把:

%YYYY-n n小时以前的带世纪的4位数字表示的年
%YY-n n小时以前的不带世纪的2位数字表示的年
%MM-n n小时以前的2位数字表示的月
%MO-n n小时以前的3个字符表示的缩写形式表示的月
%DD-n n小时以前的2位数字表示的日期
%HH-n n小时以前的2位数字表示的小时
%NS-n Unix时间戳
%WM-n 当月的第几周(1-5)
%Wm-n 当月的第几周(0-4)
%WY-n 当年的第几周(01-52)
%Wy-n 当年的第几周(00-51)
%DW-n 一周的第几天(1-7, 1=sunday) ,如果需要(1-7,1=monday) , n24替换 .
%Dw-n 一周的第几天(0-6, 0=sunday) ,如果需要(0-6,0=monday) n24替换 .
以上标签中,n为数字,如果需要使用当前的年、月、日、时等,n0替换

建议压缩文件用 LogFile="zcat /home/www/logs/%YYYY/%MM/%YYYY-24%MM-24%DD-24.gz|" 效率比gzip

把者三个文件和awstats.common.conf一起放置在awstats.common.conf里面配置DirCgi="/awstats"里的awstats下面的cgi-bin文件夹里(其实这个我们默认就可以了),及和awstats.common.comf同在一个目录下。(注:我这里得这个目录是/webserver/awstats)


现在我们来编译他们,,使用awstats_updateall.pl工具可以实现这个效果,因为是linux我们认为perl已经在系统环境年变量中了。

运行如下命令:

#/usr/local/awstats/tools/awstats_updateall.pl now -awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=/usr/local/awstats/wwwroot/cgi-bin -excludeconf=common

这样所有得日志都会分析出来,我们只需要通过就能访问我们想要访问得站点。

如何获取多主机的日志,这一点应该属于awstats的一个待解决的问题,如果要分析多台主机的日志,这里就要写脚本,通过脚本来达到我们的目的。

脚本我就不给了,最好自己能学习写一下,对于一个合格的系统管理员,写脚本时必须的。如果有人非要想要,可以给我留言。


四、多服务器的日志合并

多服务器的日志合并分析

只要你的文件系统没有使用NFS,就需要把不同服务器上的log文件同步到一台上合并分析,合并之前还需要排序以提高awstats的效率

第一步,用rsync同步文件
#!/bin/sh
rsync -avz --progress -e "ssh -p 22" www@192.168.212.15/data/logs/`date --date "1 days ago" +*.\%Y\%m\%d` /data/logs/

在原服务器上删除前一天的日志:
50 4 * * * /bin/rm -f /data/logs/`date --date "1 days ago" +*.\%Y\%m\%d`

第二步,分析日志,假设我们有3台服务器的日志传到第四台服务器上合并日志:
-rw-r--r-- 1 nobody root 1538516677 Oct 29 05:20 1.gz
-rw-r--r-- 1 nobody root 1507444445 Oct 29 04:12 2.gz
-rw-r--r-- 1 nobody root 1507444445 Oct 29 04:43 3.gz

我们利用logresolvemerg.pl配置文件中配置日志处理
LogFile="/usr/local/awstats/tools/logresolvemerge.pl /usr/local/nginx/logs/* |"
logresolve可以合并、排序日志文件,它还自动检测文件格式,只要zcatbzcatPATH中,它会自动调用zcat

nginx下的awstats设置

阅读(1939) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~