可以有以下的方法实现apache 的日志回滚的方法:
1.使用apache自带的rotatelogs 实现日志的回滚方法:
在apache 的http.conf 文件中找到以下两个位置:
ErrorLog logs/error_log
CustomLog logs/access_log common
把以上两行注释后修改为:
ErrorLog "| /usr/local/apache/bin/rotatelogs /usr/local/apache/logs/error_%Y-%m-%d.log 86400 480"
CustomLog "| /usr/local/apache/bin/rotatelogs /usr/local/apache/logs/access_log_%Y_%m_%d.log 86400 480" common
重启apache 后即刻生效。
修改后的日志文件格式为:
access_log_2010_02_23.log
error_2010-02-23.log
为了生产日志的时间准确为一天的日志,故最好在凌晨重启该apache
2.使用系统的logrotate 工具来回滚日志:
在/etc/logrotate.d/下建立一脚本文件apache,内容为:
/usr/local/apache/logs/*log {
missingok
rotate 10
daily
notifempty
sharedscripts
postrotate
/bin/kill -HUP `cat /usr/local/apache/logs/httpd.pid 2>/dev/null` 2> /dev/null || true
endscript
}
或:
/var/log/httpd/*log {
missingok
notifempty
sharedscripts
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
}
生成日志的格式为:access_log.1 access_log.2 error_log.3 ......
error_log.1 error_log.2 error_log.3 ........
比较第一种比较适合24小时工作的apache服务器,第二种适合24小时都有访问量的apache 站点,因为第二种方法有可能会导致apache 挂了。
附rotatelogs说明
rotatelogs logfile [ rotationtime [ offset ]] | [ filesizeM ]
选项
logfile
它加上基准名就是日志文件名。如果 logfile中包含’%',则它会被视为用于的strftime(3)的格式字串;否则,它会被自动加上以秒为单位的.nnnnnnnnnn后缀。这两种格式都表示新的日志开始使用的时间。
rotationtime
日志文件回卷的以秒为单位的间隔时间
offset
相对于UTC的时差的分钟数。如果省略,则假定为0,并使用UTC时间。比如,要指定UTC时差为-5小时的地区的当地时间,则此参数应为-300。
filesizeM
指定回卷时以兆字节为单位的后缀字母M的文件大小,而不是指定回卷时间或时差。
web日志分析工具webalizer安装:
检测系统是否安装了gd 和gd-devel 包。如果没有则yum install
rpm -q gd
rmp -q gd-devel
下载webalizer 源码包:
http://www.mrunix.net/webalizer/download.html 和相关的中文语言包
安装方法:
./configure --with-language=chinese
make
make install
完成后将会有如下的文件:
/usr/bin/webalizer /etc/webalizer.conf /usr/local/bin/webalizer
配置:
vi /etc/webalizer.conf
也可以在启动的时通过-f 参数指定配置文件位置。
1.指定logfile 的路径:
LogFile /var/log/httpd/access_log
2.指定分析后的输出位置
OutputDir /var/www/usage
主要分析网站的访问量的相关图形分析。