日誌切割工具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 一般是採取管道的方式來工作的,採用如下的形式:


1

   

[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 &

 

修改爲:

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

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

>> /dev/null 2&1 &


   



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章