天天看点

日志切割工具cronolog yum安装和源码安装和基本使用

 日志rotate工具cronolog可对apache,nginx,tomcat的日志进行切割,以后研究能不能对系统日志进行切割。我猜应该结合crontab,对系统日志进行切割。

 以下是两个安装方式

conolog主要和web服务器配置使用,特别是apache服务器,apache 默认日志文件是不分割的,一个整文件既不易于管理,也不易于分析统计。安装cronolog后,可以将日志文件按时间分割,易于管理和分析。下面是与apache配置的一些指令:

1.transferlog "|/usr/sbin/cronolog /web/logs/%y/%m/%d/access.log"

2.errorlog    "|/usr/sbin/cronolog /web/logs/%y/%m/%d/errors.log"

下面是具体案例,

1./web/logs/2002/12/31/access.log/web/logs/2002/12/31/errors.log

2./web/logs/2003/01/01/access.log/web/logs/2003/01/01/errors.log

第一种安装方式:rpm包安装

1.安装epelyum源

[root@node6 src]# yum install -y wget vim

[root@node6 src]# wget http://ftp.sjtu.edu.cn/fedora/epel/6/i386/epel-release-6-8.noarch.rpm

[root@node6 src]# rpm -ivh epel-release-6-8.noarch.rpm

warning: epel-release-6-8.noarch.rpm: header v3 rsa/sha256 signature, key id 0608b895: nokey

preparing...                ########################################### [100%]

   1:epel-release           ########################################### [100%]

2.安装ntp

[root@node6 src]# yum install -y ntp

3.时间同步 

[root@node6 src]# ntpdate 202.120.2.101

28 dec 17:59:17 ntpdate[1413]: step time server 202.120.2.101 offset -25666.776448 sec

4.安装cronolog

(1).直接用yum安装

1

[root@node6 src]# yum install -y cronolog httpd

第二种安装方式:源码安装

[root@node6 src]# wget http://cronolog.org/download/cronolog-1.6.2.tar.gz

[root@node6 src]# tar xf cronolog-1.6.2.tar.gz

[root@node6 src]# cd cronolog-1.6.2

[root@node6 cronolog-1.6.2]# ./configure

[root@node6 cronolog-1.6.2]# make && make install

[root@localhost ~]# which cronolog

/usr/local/sbin/cronolog

好了,到这里我们的cronolog就安装完成了,下面我们来说一下cronolog如何使用。

五、cronolog 使用

(1).基本使用

[root@node6 ~]# cronolog -h

usage: cronolog [options] logfile-spec

   -h name,   --hardlink=name maintain a hard link from name to current log

   -s name,   --symlink=name  maintain a symbolic link from name to current log

   -p name,   --prev-symlink=name  maintain a symbolic link from name to previous log

   -l name,   --link=name     same as -s/--symlink

   -h,        --help          print this help, then exit

   -p period, --period=period set the rotation period explicitly

   -d delay,  --delay=delay   set the rotation period delay

   -o,        --once-only     create single output log from template (not rotated)

   -x file,   --debug=file    write debug messages to file

                              ( or to standard error if file is "-")

   -a,        --american         american date formats

   -e,        --european         european date formats (default)

   -s,    --start-time=time   starting time

   -z tz, --time-zone=tz      use tz for timezone

   -v,      --version         print version number, then exit

cronolog 一般是采取管道的方式来工作的,采用如下的形式:

[root@node6 ~]# loggenerator | cronolog log_file_pattern

其中,loggenerator为产生log的程序,而log_file_pattern是日志文件的路径,可以在其中加入cronolog所支持的时间相关的pattern字符,如/www/log/%y/%m/%d/access.log。其pattern为%字符后跟一特殊字符,简述如下:

转义符:  

%    %字符

n    换行

t    水平制表符

时间域:  

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    时区。若时区不能确定,则无意义

日期域:  

a    该locale下的工作日简名(e.g.: sun..sat)

a    该locale下的工作日全名(e.g.: sunday ..  satur-ay)

b    该locale下的月份简称(e.g.: jan .. dec)

b    该locale下的月份全称(e.g.:  january .. december)

c    该locale下的日期和时间(e.g.: "sun dec 15  14:12:47 gmt 1996")

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)

(2).结合apache使用

编辑httpd.conf文件,将其中的

[root@localhost ~]# 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为日志文件分割方式,即为“年月日”。

[root@localhost ~]# /usr/local/apache2/bin/apachectl restart

对tomcat日志的切割

在tomcat/bin/catalian.sh中找到:

org.apache.catalina.startup.bootstrap "$@" start / 

>> "$catalina_base"/logs/catalina.out 2&1 &

修改为:

|/usr/local/sbin/cronolog "$catalina_base"/logs/catalina.out.%y-%m-%d

>> /dev/null 2&1 &