生活不易、且行且珍惜。网站首页 程序人生
Tomcat日志配置与清理
发布时间:2020-05-14 15:00编辑:zj 阅读:文章分类: 网站互动QQ群:170915747
今天看了下tomcat日志,发现已经有8g多了... 仔细想想大概有2年多没有处理过日志了。因为博客线上也没出过啥问题,所以压根就没怎么看过日志。毕竟不是运维 ... 这方面确实没咋注意,服务器还是有很多需要搞清楚的 。
然后又看了下,其中最大的是catalina.out,占了7.8G,emmm... 啥也不说了,服务器总内存也才50g,赶紧清理掉吧。然后再写个每天清理的脚本。
日志过大搞不好会把磁盘爆满服务器直接宕机。所以想着还是优化下日志文件。
tomcat/logs下面主要有这么几种日志文件
catalina.out
用于记录tomcat服务日至,一般项目报错可以在这看具体异常问题。catalina.out其实是tomcat的标准输出(stdout)和标准出错(stderr),这是在tomcat的启动脚本里指定的,如果没有修改的话stdout和stderr会重定向到这里。所以我们在应用里使用System.out打印的东西都会到这里来。另外,如果我们在应用里使用其他的日志框架,配置了向Console输出的,则也会在这里出现。比如以logback为例,如果配置ch.qos.logback.core.ConsoleAppender则会输出到catalina.out里。
localhost_access_log
用于记录资源访问日志, 这个日志文件可记录所有http的get,post访问日志。相应的ip地址,访问时间,请求方式(get,post),请求action名称…..都会输出来。这样有利于我们排查一些问题,还可以采集、存储、分析日志数据得到有价值的东西。
生成这个文件的配置为:
xxxxxxxxxx1<valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
2prefix="localhost_access_log." suffix=".txt"
3pattern="%h %l %u %t "%r" [%{postdata}r] %s %{Referer}i %{User-Agent}i %T %b" />
pattern参数详解
参数 | 含义 |
---|---|
%a | 这是记录访问者的IP,在日志里是127.0.0.1 |
%A | 这是记录本地服务器的IP,在日志里是192.168.254.108 |
%b | 发送信息的字节数,不包括http头,如果字节数为0的话,显示为- |
%B | 发送信息的字节数,不包括http头。 |
%h | 服务器的名称。如果resolveHosts为false的话,这里就是IP地址了,例如我的日志里是10.217.14.16 |
%H | 访问者的协议,这里是HTTP/1.0 |
%l | 官方解释:Remote logical username from identd (可能这样翻译:记录浏览者进行身份验证时提供的名字)(always returns ‘-’) |
%m | 访问的方式,是GET还是POST |
%p | 本地接收访问的端口 |
%q | 比如你访问的是aaa.jsp?bbb=ccc,那么这里就显示?bbb=ccc,就是querystring的意思 |
%r | First line of the request (method and request URI) 请求的方法和URL |
%s | http的响应状态码 |
%S | 用户的session ID,这个session ID大家可以另外查一下详细的解释,反正每次都会生成不同的session ID |
%t | 请求时间 |
%u | 得到了验证的访问者,否则就是"-" |
%U | 访问的URL地址,我这里是/rightmainima/leftbott4.swf |
%v | 服务器名称,可能就是你url里面写的那个吧,我这里是localhost |
%D | Time taken to process the request,in millis,请求消耗的时间,以毫秒记 |
%T | Time taken to process the request,in seconds,请求消耗的时间,以秒记 |
manager.log
用于记录tomcat通过manager下的web项目管理日志
....还有其他的一些日志,如果Tomcat以服务的方式运行还会产生以“服务名-stdout.yyyy-mm-dd.log”和“服务名-stderr.yyyy-mm-dd.log”命名的日志,用于记录标准输出日志和标准错误流日志。还有一个commons-daemon.yyyy-dd-mm.log 用于记录安装或者移除Tomcat服务过程产生的日志。
这些日志记录级别都是info级别。
清理catalina.out
查看日志信息:
11tail -n 500 /usr/local/apache-tomcat-8.5.38/logs/catalina.out
清空日志信息:可以参考https://www.cnblogs.com/ainihaozhen/p/9466524.html
x1cp /usr/local/apache-tomcat-8.5.38/logs/catalina.out /usr/local/apache-tomcat-8.5.38/logs/catalina$(date -d "today" +"%Y%m%d_%H%M%S").log&&echo "" > /usr/local/apache-tomcat-8.5.38/logs/catalina.out
定时清空日志
x1添加脚本clean.sh(清空catalina.out和30天以前其他一些日志,logs_path为日志路径)
23#!/bin/bash
4logs_path="/usr/local/apache-tomcat-8.5.38/logs/"
5d=`date +%Y-%m-%d`
67cp $logs_path/catalina.out $logs_path/catalina.${d}.out
8>$logs_path/catalina.out;
9find $logs_path -mtime +30 -name "catalina.*.out" -exec rm -rf {} \;
10find $logs_path -mtime +30 -name "localhost.*.log" -exec rm -rf {} \;
11find $logs_path -mtime +30 -name "localhost_access_log.*.txt" -exec rm -rf {} \;
12find $logs_path -mtime +30 -name "catalina.*.log" -exec rm -rf {} \;
13find $logs_path -mtime +30 -name "manager.*.log" -exec rm -rf {} \;
14find $logs_path -mtime +30 -name "host-manager.*.log" -exec rm -rf {} \;
15find $logs_path -mtime +30 -name "fileservice.log.*" -exec rm -rf {} \;
1617添加脚本权限(777权限代表可读可写可执行,该登录用户(可以用命令id查看)、他所在的组和其他人都有最高权限)
18chmod 777 /usr/local/apache-tomcat-8.5.38/logs/clean.sh
1920开启定时任务
21crontab -e (进入定时任务的编辑界面中)
22添加下面代码(每月最后一天23点执行 cron表达式有很多在线生成器)
230 0 23 L * ? /usr/local/apache-tomcat-8.5.38/logs/clean.sh
24
每天备份tomcat日志脚本
xxxxxxxxxx1351#!/bin/bash
2Backup_Home=/data/backup-log
3mkdir -p $Backup_Home
4Log_Home=/data/Tomcat/logs
5App_Log_Home=/data/app/tomcat/log
6Date=`date -d 'yesterday' '+%Y-%m-%d'`
7#将昨天tomcat日志mv到备份目录
8/usr/bin/mv $Log_Home/catalina.$Date.log $Backup_Home
9/usr/bin/mv $Log_Home/localhost.$Date.log $Backup_Home
10cd $Backup_Home
11tar -zcf catalina_"$Date"_log.tar.gz catalina.$Date.log
12tar -zcf localhost_"$Date"_log.tar.gz localhost.$Date.log
13if [ $? -ne 0 ]; then
14echo "$Date:备份失败并退出" >> backup_err.log
15exit
16else
17echo "$Date:***打包成功正在删除源日志文件***" >> backup_access.log
18/usr/bin/rm -rf catalina.$Date.log
19/usr/bin/rm -rf localhost.$Date.log
20
21fi
22#==========================================================================
23echo "app日志开始备份"
24/usr/bin/mv $App_Log_Home/springboot.out $Backup_Home/springboot_"`date +%F`".out
25cd $Backup_Home
26tar -zcf springboot_"`date +%F`".tar.gz springboot_"`date +%F`".out
27if [ $? -ne 0 ]; then
28echo "`date +%F`:app日志备份失败并退出" >> backup_err.log
29exit
30else
31echo "`date +%F`:app日志打包成功,正在删除源文件" >> backup_access.log
32/usr/bin/rm -rf springboot_"`date +%F`".out
33fi
34#清理日志目录
35find Backup_Home/* -mtime +30 -exec rm {} \;
#去评论一下
标签:#网站优化
版权声明:本博客的所有原创内容皆为作品作者所有
转载请注明:来自ZJBLOG 链接:www.zjhuiwan.cn
「万物皆有时,比如你我相遇」
感谢大佬打赏【请选择支付宝或微信,再选择金额】
使用微信扫描二维码完成支付