日志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 &