cronolog切割tomcat日志以及日志导出方法

针对现有机器tomcat日志随着时间的延长,积累的日志达到几个G甚至更多(一台机器的全部的日志全部集中在一起),想导出某时间段的日志,通过导出脚本发现速度非常慢,而且服务器的压力会很大。

解决办法:通过日志切割工具cronolog将日志按照以天为单位输出,保存成不同的文件。这样导出日志的时候只要指定日期,导出将会很快。

步骤:

1、cronolog的安装(安装方法很简单)

#tar -zxvf cronolog-1.6.2.tar.gz

#cd cronolog-1.6.2

#./configure

#make && make install

#which cronolog

/usr/local/sbin/cronolog

到此cronolog的安装已经完成,验证成功

2、配置tomcat切割对cronolog的应用

注:为了方便将多个tomcat的日志放在一起,方便管理(下面的路径只是参照)

#cd /data/install/tomcat7cluster/tomcats/tomcat_8181/

#cd bin/

#vim catalina.sh

touch "$CATALINA_OUT"
  if [ "$1" = "-security" ] ; then
    if [ $have_tty -eq 1 ]; then
      echo "Using Security Manager"
    fi
    shift
    eval "\"$_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 "[email protected]" start       >> "$CATALINA_OUT" 2>&1 "&"
  else
    eval "\"$_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 "[email protected]" 
start 2>&1 | /usr/local/sbin/cronolog /data/install/tomcat7cluster/logs/test81.%Y-%m-%d.log >> /dev/null&
    
#  >> "$CATALINA_OUT" 2>&1 "&"
  fi

上述23行修改的部分包括cronolog的路径,以及日志的存放路径,注:25行的代码注释掉。

完成配置之后,重启tomcat

#./startup.sh

查看日志存放的路径,是否生成当天的日志

#cd /data/install/tomcat7cluster/logs

#ls

test81.2016-05-20.log

到此日志分割完成

3、简单的日志查看和导出脚本

a.方便查看,直接执行脚本可以查看当前刷新的日志

#cd /data/install/tomcat7cluster

#vim tail-log.sh(脚本名)

 
#!/bin/sh
    log_dir="/data/install/tomcat7cluster/logs"
    log_file=`date ‘+test81.%Y-%m-%d.log‘`
    tail -f ${log_dir}/${log_file}

保存退出,可以试试效果哦。

b.日志导出脚本

脚本位置随意,导出的日志位置也是随意,这里日志在root下的logs中

#vim get-log.sh

    #!/bin/bash
    echo -e "Which day do you want to log,such as \033[31m2016-05-20\033[0m"
    read -p "please enter: " a
    echo
    echo -e "Please enter start time,such as \033[31m16-01-27 14:51:27\033[0m"
    read -p "Write down your answers: " b
    echo -e "Please enter stop time,such as \033[31m16-01-27 14:51:27\033[0m"
    read -p "Write down your answers: " c
    echo
    read -p "what name do you want to save: " d
    tomcat_dir="/data/install/tomcat7cluster/"
    log_dir="${tomcat_dir}/logs/test81.$a.log"
    sednum1=`grep -n "$b" ${log_dir} | head -1 | awk -F ‘:‘ ‘{print $1}‘`
    sednum2=`grep -n "$c" ${log_dir} | tail -1 | awk -F ‘:‘ ‘{print $1}‘`
    sed -n "${sednum1},${sednum2}p" ${log_dir} > /root/logs/${d}
    echo -e "\033[31m########check logs###########\033[0m"
    cho -e "\033[34mhead\033[0m"
    head /root/logs/${d}
    sleep 5
    echo -e "\033[34mtail\033[0m"
    tail /root/logs/${d}

#bash get-log.sh

注意:tomcat版本不同日志格式会不相同,根据实际情况做调整。

执行完成后,可以去存的目录下查看,到此。对tomcat日志的改造到此结束。

时间: 2024-12-20 15:58:02

cronolog切割tomcat日志以及日志导出方法的相关文章

Ubuntu 环境下使用cronolog 切割Tomcat日志

1 .安装cronolog wget http://down1.chinaunix.net/distfiles/cronolog-1.6.2.tar.gz ./configure make && sudo make install 默认安装位置: # which cronolog /usr/local/sbin/cronolog 2.配置分割Tomcat日志 编辑tomcat目录bin下的catalina.sh文件 # vi bin/catalina.sh 找到下面这行 org.apach

Linux下用cronolog切割Tomcat日志并删除指定天数前的日志记录

使用cronolog工具切分Tomcat的catalina.out日志文件 普通用户下载.安装cronolog [[email protected] ~]$ tar -xf cronolog-1.6.2.tar.gz [[email protected] ~]$ cd cronolog-1.6.2/ [[email protected] cronolog-1.6.2]$  ./configure --prefix=/home/tomcat/cronolog make make install r

shell脚本切割tomcat日志文件

转自:http://www.cnblogs.com/lishun1005/p/6054816.html 鉴于在调试logback和log4j的文件切割一直无法成功,随性用shell写个脚本用来切割tomcat下的日志文件(大家如果有在logback或log4j使用文件切割成功的话,可以留下使用方式,先谢谢了) 1:废话少说,直接贴上脚本: #!/bin/sh log_dir=/var/log/tomcat monitor_file=$1 #tomcat目录下的catalina.out文件的绝对路

使用cronolog实现tomcat日志切割

背景: Tomcat的日志catalina.out在使用过程中会不断增长,当日志过大时,可能会对tomcat的性能产生影响. 使用日志切割的方法,可以有效解决日志过大的问题.它可以把日志按天进行切割存储,每天产生一个日志文件存储日志. 操作: 1:下载,解压,安装cornolog工具(由于http://cronolog.org冒似不能用了,推荐使用yum方式安装) # yum -y install cronolog.x86_64 2:配置catalina.sh文件(tomcat6.0与tomca

Linux系统用logrotate切割Tomcat日志的方法

tomcat在使用中会遇到catalina.out日志过大的情况,下面我们利用系统(以centos为例)自带的logrotate来切割文件,实现日志文件的每天自动切割. logrotate程序默认程序会切割/etc/logrotate.d/下面定义的文件,以下方法请使用root用户操作,不然会提示权限不足. 创建文件: #vi /etc/logrotate.d/tomcat 填入以下信息(catalina.out实际路径以实际情况填写): /usr/local/tomee/logs/catali

使用cronolog 分割Tomcat日志 Apache日志

1. 安装cronolog 官网下载:http://cronolog.org/usage.html ./configure make;make install 默认安装位置: # which cronolog /usr/local/sbin/cronolog 2. 配置分割Tomcat日志 编辑tomcat目录bin下的catalina.sh文件 # vi bin/catalina.sh 找到下面这行 elif [ "$1" = "start" ] ; then -

Tomcat catalina-deamon.out 日志切割 每天生成一个文件

Tomcat 使用 jsvc 以守护进程的方式启动(daemon.sh ).这样tomcat自身将会生成另外一个日志文件(catalina-daemon.out),而不是之前的catalina.out,而且catalina-daemon.out日志不会自动切割,会越来越大. 以前遇到过一个问题,就是网站突然访问空白,排查到最后发现是当前进行了网站打包备份操作,有一个超过2GB的压缩包.删掉后立马页面访问正常.具体原因还不清楚. 同时从运维角度和日志分析角度思考,日志文件最好做切割处理,并日志文件

使用cronolog 分割Tomcat日志

作者:沈小然    日期:2014-7-30 安装cronolog 官网下载:http://cronolog.org/usage.html ./configure make;make install 默认安装位置: # which cronolog /usr/local/sbin/cronolog 配置分割Tomcat日志 编辑tomcat目录bin下的catalina.sh文件 # vi bin/catalina.sh 找到下面这行 org.apache.catalina.startup.Bo

tomcat集群日志切割和远程备份脚本分享

笔者一共有3台tomcat服务器,一共4个tomcat服务,未来还会增加4个作为负载,笔者想通过在存储服务器对tomcat服务的日志进行远程切割和备份到存储上. 文中采用清空日志的方式,优点是不用重启tomcat就能回收磁盘空间,缺点可能会丢失一小部分日志内容,所以笔者定时在了夜里3点执行. 本文中远程执行命令和scp用到了expect脚本,请查看expect的博文http://www.cnblogs.com/Eisenhower/p/7900907.html 1 2 3 4 5 6 7 8 9