文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>awstats日志分析(2)

awstats日志分析(2)

时间:2010-05-18  来源:freyson

接上一篇文章

三、多主机日志分析

在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这一行注释了,剩下得都保留,然后在文件得最后添加如下:

#www.xxxxx.net

Include "awstats.common.conf"

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

SiteDomain="www.xxxxx.net"

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) , n用24替换 .
%Dw-n 一周的第几天(0-6, 0=sunday) ,如果需要(0-6,0=monday) ,n用24替换 .
以上标签中,n为数字,如果需要使用当前的年、月、日、时等,n用0替换

建议压缩文件用 LogFile="zcat /home/www/logs/%YYYY/%MM/www.access.log.%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

这样所有得日志都会分析出来,我们只需要通过http://mydomain/awstats/awstats?config=website就能访问我们想要访问得站点。

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

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


四、多服务器的日志合并

多服务器的日志合并分析

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

第一步,用rsync同步文件
#!/bin/sh
rsync -avz --progress -e "ssh -p 22" [email protected]/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 www.access.log.1.gz
-rw-r--r-- 1 nobody root 1507444445 Oct 29 04:12 www.access.log.2.gz
-rw-r--r-- 1 nobody root 1507444445 Oct 29 04:43 www.access.log.3.gz

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

nginx下的awstats设置

相关阅读 更多 +
排行榜 更多 +
奥丘树海之下小米服手游下载

奥丘树海之下小米服手游下载

角色扮演 下载
网络天才国际服手游下载

网络天才国际服手游下载

休闲益智 下载
御剑红尘手游官方版下载

御剑红尘手游官方版下载

角色扮演 下载