码迷,mamicode.com
首页 > Web开发 > 详细

编译安装Cronolog轮转Apache和Tomcat日志

时间:2017-10-27 18:08:50      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:编译安装cronolog   编译安装cronolog1.7   日志轮询工具cronolog   

        cronolog 是一款日志轮询(rotation)工具,可以用它来把Apache, Tomcat, Nginx等WEB服务器的输出日志切分按日或者按月保存。cronolog 从标准输入中读取日志内容,然后把他们写到按指定格式命名的日志文件中。当日期改变后, cronolog会把之前的日志文件关闭,再打开一个包含新日期的日志文件。利用cronolog可以完美的解决web服务器日志文件不断增大,且不能在运行时删除的问题。

cronolog特点:

        cronolog 特点cronolog可以按月、日甚至按小时进行日志轮询,也可以配置每个日志文件的最大值,当文件大小达到这个最大值时,自动记录到下一个日志文件中。

        cronolog稳定版本为 1.6.2,但此版本有一个弊端:当日志文件的大小到2G(2150726147字节)时,cronolog进程就变成僵尸进程,即日志无法再写入,cronolog 1.7 版本解决了这个问题。

下载

cronolog-1.7.0-beta.tar.gz

安装

# tar zxvf cronolog-1.7.0-beta.tar.gz
# cd cronolog-1.7.0
# ./configure --prefix=/usr/local/cronolog
# make
# make install

如果不指定--prefix路径,cronolog默认安装在/usr/local/sbin/cronolog

修改Apache虚拟主机配置

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

[root@localhost~]#vim/etc/httpd/httpd.conf

将默认日志:

CustomLog "logs/access_log"combined


修改为:

CustomLog "| /usr/local/sbin/cronolog  /logs/www/access_%Y%m%d.log" combined

其中%Y%m%d为日志文件分割方式,即为“年月日”。

关键点在于: 被轮询的日志一定要是绝对路径,不能是相对路径。

老男孩学习笔记:

技术分享

技术分享

修改Tomcat配置

修改tomcat的bin目录下的catalina.sh

# vim /usr/local/tomcat/bin/catalina.sh

找到如下代码

CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
touch "$CATALINA_OUT"
 if [ "$1" = "-security" ] ; then
    if [ $have_tty -eq 1 ]; then
      echo "Using Security Manager"
    fi
    shift
    "$_RUNJAVA" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS       -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH"       -Djava.security.manager       -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy       -Dcatalina.base="$CATALINA_BASE"       -Dcatalina.home="$CATALINA_HOME"       -Djava.io.tmpdir="$CATALINA_TMPDIR"       org.apache.catalina.startup.Bootstrap "$@" start       >> "$CATALINA_OUT" 2>&1 &
  else
    "$_RUNJAVA" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS       -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH"       -Dcatalina.base="$CATALINA_BASE"       -Dcatalina.home="$CATALINA_HOME"       -Djava.io.tmpdir="$CATALINA_TMPDIR"       org.apache.catalina.startup.Bootstrap "$@" start       >> "$CATALINA_OUT" 2>&1 &
  fi

将最上面的touch “$CATALINA_OUT”注释掉如下

#touch "$CATALINA_OUT"

将下面两处

org.apache.catalina.startup.Bootstrap "$@" start >> "$CATALINA_OUT" 2>&1 &

修改为

      org.apache.catalina.startup.Bootstrap "$@" start 2>&1        | /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null 2>&1 &

     org.apache.catalina.startup.Bootstrap "$@" start 2>&1         | /usr/local/cronolog/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &

然后重启tomcat即可


本文出自 “运维笔录 美玲” 博客,请务必保留此出处http://meiling.blog.51cto.com/6220221/1976745

编译安装Cronolog轮转Apache和Tomcat日志

标签:编译安装cronolog   编译安装cronolog1.7   日志轮询工具cronolog   

原文地址:http://meiling.blog.51cto.com/6220221/1976745

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!