为了账号安全,请及时绑定邮箱和手机立即绑定

日志分割工具——cronolog

标签:
Linux


日志分割工具——cronolog

 

 1. 前言

    本文将介绍一款日志分割软件cronolog。日志对于每位从事IT技术领域工作的人员来说都是相当重要的,对于系统管理员来说,系统日志、系统服务的日志以及应用软件的日志是他们每天都需要关注的,从日志中可以发现系统存在的问题以及一些危险的征兆等等;对于开发人员来说,应用软件日志、debug日志对于了解系统当时的环境、重演或模拟故障以及分析软件bug都是十分有用的。

    然而一些软件本身的日志维护功能却很薄弱。其中最主要的表现就是将所有的信息都写到了同一文件中,而且又没有对其归档。这样给查看和分析日志文件带来很大不便。还有一些软件本身就没有日志功能,仅仅将信息输出到标准输出设备。为了解决这些软件先天上日志功能的不足,我们需要对日志做进一步的处理,具体来说就是分割,将其按我们需要的规格进行分割,以便日后的查看、分析、备份以及归档等。cronolog就是一款在这方面值得推崇的开源软件,本文将介绍该软件的安装以及使用,并列举几个实例。

 

 2. cronolog的安装

    cronolog软件是一个开源软件,可从其官方网站上获得源码,编译和安装。地址为[url]http://cronolog.org/[/url]。

   

 2.1. cronolog源码获得、配置以及安装

    首先从[url]http://cronolog.org/[/url]下载源码,我所下载的是1.62.版,其地址是[url]http://cronolog.org/download/cronolog-1.6.2.tar.gz[/url]。

    下载后解压,准备安装目录/usr/local/cronolog。   

# mkdir -p /usr/local/cronolog

    configure配置,首先需进入cronolog解压目录。

# ./configure --prefix=/usr/local/cronolog

    make编译。

# make

    make install安装。

# make check

# make install

    进入/usr/local/cronolog,检查是否正确安装。

# cd /usr/local/cronolog/sbin

# ./cronolog -V

cronolog version 1.6.2

   

 2.2. cronolog的使用方法

    可以通过cronolog -h命令获得使用方法,但说明很简短并且没有例子。

# ./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

 

    当然也可以通过man cronolog查看帮助手册,说明很详细,而且有举例说明。不过需要将/usr/local/cronolog/man添加到MANPATH中。

# export MANPATH=$MANPATH:/usr/local/cronolog/man

# man cronolog

... ...

       

 3. cronolog使用实例

    下面我们通过两个实例来具体了解一下其使用方法。

 3.1. 配置apache的访问日志

    修改apache的httpd.conf文件。

设置日志格式定义

    修改

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

    为

LogFormat "%h %l %u %t \"%>s %b \"%{Referer}i\" \%{User-Agent}i\""

设置TransferLog命令

    将

CustomLog /usr/local/apache/logs/access_log common

或是

CustomLog /usr/local/apache/logs/access_log combine

       修改为

TransferLog "|/usr/local/cronolog/sbin/cronolog /opt/hpws/apache/logs/%Y%m%daccess_log"

    其中

/usr/local/cronolog/sbin/cronolog 为cronolog安装后的路径。

/opt/hpws/apache/logs/ 为日志分割时候日志保存位置。

%Y%m%daccess_log 为日志文件的名称格式,每天一个文件。

 

 3.2. 将某一简单应用软件的输出重定向为特定日志文件

    对于一个简单的应用程序,一个shell脚本deploy.sh,该脚本需24小时不间断的在后台运行。具体执行命令如下,

# nohup ./deploy.sh >> ./log/deploy.log &

    将标准输出重定向到文件./log/deploy.log中。

    日志文件只有一个,随着运行时间的推移,该文件会越来越大。

    现使用cronolog工具处理一下日志,修改后的命令如下,   

# nohup ./deploy.sh | /usr/local/cronolog/sbin/cronolog  "./log/deploy.logdeploy_%Y%m%d.log" &

    日志文件将按天分割,每天产生一个新的日志文件。   

附件:http://down.51cto.com/data/2351849

©著作权归作者所有:来自51CTO博客作者sky_max的原创作品,如需转载,请注明出处,否则将追究法律责任


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消