使用cronolog切割Apache日志安装配置

Apache sxdgy 1354℃

Apache服务器默认日志文件是不分割的,一个整文件既不易于管理,也不易于分析统计。本文主要讲解使用cronolog切割apache服务器日志,什么不用apache自带的日志分割工具?apache自带的日志分割工具rotatelogs,据专家说在进行日志切割时容易丢日志,所以这里我们就用cronolog来做日志切割。

cronolog 是一个简单的过滤程序,读取日志文件条目从标准输入和输出的每个条目并写入指定的日志文件的文件名模板和当前的日期和时间。cronolog主要和Web服务器配置使用,特别是Apache服务器,安装cronolog后,可以将日志文件按时间分割,易于管理和分析。

1.安装cronolog

wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
tar zxvf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configure
make && make install
which cronolog

2.配置切割apache日志

这里需要先 安装apache服务器,然后再编辑httpd.conf文件

vim /usr/local/apache2/conf/httpd.conf
#将其中“CustomLog "logs/access_log" combined”修改为:
CustomLog "|/usr/local/sbin/cronolog /log/www/access_%Y%m%d.log"combined
#其中%Y%m%d为分割方式,即为“年月日”,然后保存后重启apache
/usr/local/apache2/bin/apachectl restart

cronolog定义日志名称除了上述“%Y%m%d”,还支持以下转义字符:

d    当月中的天数 (01 .. 31)
j    当年中的天数 (001 .. 366)
m    月数 (01 .. 12)
U    当年中的星期数,以周日作为一周开始,其中第一周为首个含星期天的星期(00..53)
W    当年中的星期数,以星期一作为一周的开始,其中第一周为首个含星期天的星期(00..53)
w    工作日数(0 .. 6, 0表示星期天)
x    该locale下的日期表示(e.g."13/04/97")
y    两位数的年份(00 .. 99)
Y    四位数的年份(1970 .. 2038)
H    小时(00..23)
I    小时(01..12)
p    该locale下的AM或PM标识
M    分钟(00..59)
S    秒 (00..61, which allows for leap seconds)
X    该locale下时间表示符(e.g.:"15:12:47")
Z    时区。若时区不能确定,则无意义

 3.切割效果演示

ll /log/www/
-rw-r--r-- 1 root root   16028 Dec 26 15:16 access_20131225.log
-rw-r--r-- 1 root root 2406307 Dec 26 23:59 access_20131226.log
-rw-r--r-- 1 root root 8292792 Dec 27 23:59 access_20131227.log
-rw-r--r-- 1 root root 4682211 Dec 28 18:56 access_20131228.log