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 "$@" 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 "$@" 
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
wKiom1c-xR-yKZ7rAAA6ivnNWPA729.jpg

注意:tomcat版本不同日誌格式會不相同,根據實際情況做調整。

執行完成後,可以去存的目錄下查看,到此。對tomcat日誌的改造到此結束。

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