在linux环境下,开源工具Awstats是一个非常受欢迎的网站日志处理工具。在linux环境安装和配置Awstats比较容易成功,但要同时处理多个Apache日志(比如web集群的环境),还是有许多工作需要做的。
平台环境
1、 服务器3个,2个运行Apache的web 服务器,一个专门处理日志的Awstats服务器。
2、 运行平台:全部为redhat AS 4。
设计思路
日志处理服务器每天定期从2个Apache服务器获取日志文件,对取得的压缩文件解压,接着把2个单独的日志文件合并成一个,再用Awstats处理生成报告。下面我们就按照这个思路来进行具体的部署。
一、Apache日志的生成和处理
1、 Apache日志生成:
通过修改Apache的配置文件 httpd.conf来达到这个目的,下面是某个Apache服务器的配置文件关于日志记录的修改部分:
SetEnvIf Request_URI .gif image-request SetEnvIf Request_URI .jpg image-request SetEnvIf Request_URI .png image-request SetEnvIf Request_URI .js image-request SetEnvIf Request_URI .css image-request SetEnvIf Request_URI .swf image-request ErrorLog /var/log/web/sery.com-error_log CustomLog “|/opt/Apache2/bin/rotatelogs /var/log/web/sery.com-access%Y%m%d.log.%H 28800 480” combined env=!image-request |
在这里简单说明一下上面各个项目的意义。SetEnvIf Request_URI设置判断环境变量”image-request”,”CustomLog “|/opt/Apache2/bin/rotatelogs /var/log/web/sery.com-access%Y%m%d.log.%H 28800 480” combined env=!image-request
”表示不记图片请求所产生的日志,并且使用Apache的日志轮转工具rotatelogs对日志进行分割,以年月日及小时方式命名文件,这样用脚本处理日志时就非常方便了。这个CustomLog有点特别,不要把命令前面的”|”等符号写丢了。通过运行Apache服务,将在目录/var/log/web/生成日志文件sery.com- access20071120.log.00.
由于使用了日志轮转功能,从上图可以看见2个日志文件。
2、日志备份和压缩:
进入日志所在的目录,把同一天不同时间段的日志合并成一个文件,压缩后移动到另外的一个位置/var/log/weblog-backup。为什么要把它放在另外的位置并且压缩呢?主要的原因是为了在传输时节省时间。当然我们不可能每天手动来执行这个操作,自然而言,用shell脚本来干这个事情了。下面给出脚本的内容:
#!/bin/sh lastlogdate=`date “+%Y%m%d” -d yesterday` touch /var/log/web/sery.com-access$lastlogdate.log for i in /var/log/web/sery.com-access$lastlogdate.log.*; do cat $i >> /var/log/web/sery.com-access$lastlogdate.log rm -f $i done touch /var/log/web/sery.com-access$lastlogdate.log gzip /var/log/web/sery.com-access$lastlogdate.log if [ -f /var/log/web/sery.com-access$lastlogdate.log.gz ]; then mv /var/log/web/sery.com-access$lastlogdate.log.gz /var/log/weblog-backup/ fi rm -rf `find /var/log/weblog-backup/ -atime 7` |
把这个脚本命名为merge_log.sh,放在目录/usr/local/bin下面,并赋予执行权限。然后在自动任务里加入这个任务,让它每天自动执行一次。运行crontab -e 把下面的行加入其中:
5 0 * * * /usr/local/bin/merge_log.sh |
为检查脚本的正确性,至少手动执行一遍脚本merge_log.sh,看是否在目录/var/log/weblog_backup生成压缩文件。如果如愿生成类似 sery.com-access20071119.log.gz这样的文件,表明脚本正确地按照我们的意图工作了。
3、允许Awstats取得Apache的日志文件:
部署ftp服务,创建一个ftp用户,然后把这个ftp的用户目录定位到”/var/log/weblog-backup”,即第2步生成压缩文件的目录。使用下列的命令产生ftp用户和指定目录:
[root@www1 ~]# useradd -d /var/log/weblog-backup -s /sbin/nologin sery [root@www1 ~]# passwd sery [root@www1 ~]# chmod 755 -R /var/log/weblog-backup |
由于vsftpd配置非常容易,这里就不再多说。启用ftp服务,用刚才创建的用户测试一下,看是否可以看见”/var/log/weblog_back”里的文件。
到这一步,我们需要在Apache服务器上进行的操作就结束了。多个Apache服务器,只需要重复上面的操作即可。当然,为了适应你自己的环境,请自行修改相关的目录和文件。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
在开源控制器上 ONOS和ODL更趋向协作
ONOS和ODL项目在SDN控制器方面很可能会共享成果,这样几乎所有事情都可以在Linux基金会上实现了。
-
观点集:Docker将成主流 新Linux可改良虚拟化管理
在本期博客观点集中,分析师探讨了Docker、行业认证的实际价值以及针对虚拟环境的新Linux项目的作用。
-
网站日志处理工具Awstats:处理多Apache日志(三)
在linux环境下,开源工具Awstats是一个非常受欢迎的网站日志处理工具。在linux环境安装和配置Awstats比较容易成功,但要同时处理多个Apache日志,还是有许多工作需要做的。
-
网站日志处理工具Awstats:处理多Apache日志(二)
在linux环境下,开源工具Awstats是一个非常受欢迎的网站日志处理工具。在linux环境安装和配置Awstats比较容易成功,但要同时处理多个Apache日志,还是有许多工作需要做的。