Apache:日志分割及压缩
apache默认配置的rotatelogs只能是按照一定时间或者一定文件大小来分割,而我们通常需要得到的是一整天或者一个小时的日志数据
为了解决这个问题,我采用了第三方的一个程序cronolog在http://www.cronolog.org下载源码包,在root用户下执行下面的指令
./tar -xzvf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configure
make
make install
正常编译以后会在默认目录/usr/local/sbin下有一个cronolog文件
CustomLog "|/usr/local/sbin/cronolog /log/www/%Y/access_log.%m%d" combined
当然你需要确认这些路径是否符合你的系统设置,上面是按照每天进行日志翻滚,如果需要其他的翻滚设置,可以参考cronolog的帮助文件。
重新启动apache后,可以看到日志已经产生了新的带时间的版本
awstats安装,以后添加!
1.首先下载在http://awstats.sourceforge.net/中下载需要的版本
2.解压源码包,直接放置在想要的地方
3.tools/awstats_configure.pl进行conf文件的生成,存在wwwroot/cgi-bin文件夹中
4.对配置文件进行更改
LogFile="/log/www/%YYYY-0/access_log.%MM-0%DD-24"
LogFormat=1
要和APACHE中的日志文件对应,logformat=1就是apache
5.crontab进行每日自动更新
0 3 * * * /var/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.local-forest.com
10 3 * * * /var/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=bbs.local-forest.com
6.可以访问了,通过www.xxx.com/awstats/awstats.pl?config=domain查看具体的情况吧,因为默认为gbk,则如果是UTF-8的网站,在搜索关键字中会有乱码,不影响应用
注:如果apache中有虚拟机,则把awstats写入httpd.conf的信息放入第一个<VirtualHost *:80>中,如果没出错,不做也可以
对于大访问量的网站,每天的日志文件的大小也是很客观的,极大的消耗了硬盘的资源,日志压缩配合日志分割可以在一定程度上缓解这个问题,那现在我们开始处理日志压缩
1.先对httpd.conf的日志进行压缩
CustomLog "|/usr/local/sbin/cronolog -r gzip /var/local/forest/log/www/%Y/access_log.%m%d" combined
添加个 -r gzip 即可
2.在awstats进行统计的时候进行解压
LogFile="gzip -d </log/bbs/%YYYY-0/access_log.%MM-0%DD-24"
就可以了,然后就看大家的实际效果了!