1、前言html
2、cronolog 简介node
3、cronolog 特色web
4、cronolog 安装apache
5、cronolog 使用vim
6、cronolog 总结 bash
注,操做系统 CentOS 6.4 x86_64,软件版本 cronolog 1.6.2,软件下载 http://cronolog.org/download/index.html。服务器
1、前言ide
你们都知道apache服务器,默认日志文件是不分割的,一个整文件既不易于管理,也不易于分析统计。本博文主要讲解Web服务器日志切割工具cronolog,下面咱们就来详细的讲解一下。工具
2、cronolog 简介this
Welcome to cronolog.org, the home of the cronolog web log rotation program.cronolog is a simple filter program that reads log file entries from standard input and writes each entry to the output file specified by a filename template and the current date and time. When the expanded filename changes, the current file is closed and a new one opened. cronolog is intended to be used in conjunction with a Web server, such as Apache, to split the access log into daily or monthly logs.
cronolog 是一个简单的过滤程序,读取日志文件条目从标准输入和输出的每一个条目并写入指定的日志文件的文件名模板和当前的日期和时间。当扩展文件名的变化,目前的文件是关闭,新开辟的。cronolog 旨在和一个Web服务器一块儿使用,如Apache,分割访问日志为天天或每个月的日志。
3、cronolog 特色
cronolog主要和Web服务器配置使用,特别是Apache服务器,Apache 默认日志文件是不分割的,一个整文件既不易于管理,也不易于分析统计。安装cronolog后,能够将日志文件按时间分割,易于管理和分析。下面是与Apache配置的一些指令:
TransferLog "|/usr/sbin/cronolog /web/logs/%Y/%m/%d/access.log" ErrorLog "|/usr/sbin/cronolog /web/logs/%Y/%m/%d/errors.log"
下面是具体案例,
/web/logs/2002/12/31/access.log/web/logs/2002/12/31/errors.log /web/logs/2003/01/01/access.log/web/logs/2003/01/01/errors.log
4、cronolog 安装
1.安装yum源
[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安装
[root@node6 src]# yum install -y cronolog httpd
(2).源码安装
[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如何使用。
5、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
(3).下面是效果
[root@localhost ~]# cd /log/www/ [root@localhost www]# ll total 15072 -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
6、cronolog 总结
好了,到这里咱们的cronolog工具就讲解完成了。有博友会问为何不用apache自带的日志分割工具?apache自带的日志分割工具rotatelogs,据专家说在进行日志切割时容易丢日志,因此这里咱们就用cronolog来作日志切割。最后,但愿你们有所收获^_^……