使用logrotate工具处理tomcat Catalina.out文件过大

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 随着项目的运行,Tomcat的日志文件catalina.out的大小日益增大,现在都有好几个GB了。如果我们不做任何处理,catalina.out的文件大小将会持续增加,直到把我们的系统硬盘空间给撑爆不可。

随着项目的运行,Tomcat的日志文件catalina.out的大小日益增大,现在都有好几个GB了。如果我们不做任何处理,catalina.out的文件大小将会持续增加,直到把我们的系统硬盘空间给撑爆不可。

当Tomcat的日志文件catalina.out的大小大于2GB时,Tomcat程序崩溃时将有可能会启动失败并且不会有任何错误信息提示。为了避免该场景的出现,我们要定期轮转catalina.out日志文件。

这里小白使用CentOS6U5自带的logrotate程序来解决catalina.out的日志轮转问题。这种方式比较简单。在/etc/logrotate.d/目录下新建一个名为tomcat的文件,

cat >/etc/logrotate.d/tomcat <<EOF
/usr/local/apache-tomcat-8.0.28/logs/catalina.out{
    copytruncate
    daily
    rotate 7
    missingok
    compress
    size 16M
}
EOF

以上的配置说明:

/usr/local/apache-tomcat-8.0.28/logs/catalina.out{ # 要轮转的文件
    copytruncate # 创建新的catalina.out副本后,截断源catalina.out文件
    daily     # 每天进行catalina.out文件的轮转
    rotate 7   # 至多保留7个副本
    missingok   # 如果要轮转的文件丢失了,继续轮转而不报错
    compress   # 使用压缩的方式(非常有用,节省硬盘空间;一个2~3GB的日志文件可以压缩成60MB左右)
    size 16M   # 当catalina.out文件大于16MB时,就轮转
}

以上是如何工作的呢?
每天晚上crond守护进程会运行在/etc/cron.daily目录中的任务列表;

/etc/logrotate.conf文件include了/etc/logrotate.d/目录下的所有文件。还包括我们上面刚创建的tomcat文件;
/etc/logrotate.d/tomcat文件会触发/usr/local/apache-tomcat-8.0.28/logs/catalina.out文件的轮转。

以上是程序自动完成的,不需要我们干预。当然了,我们也可以使用手工的方式进行logrotate程序。在命令行进行如下运行:

logrotate /etc/logrotate.conf
或者只轮转刚刚的tomcat配置文件,可以这样运行:

logrotate --force /etc/logrotate.d/tomcat

要想获得logrotate程序的更多帮助信息,可以查看其man page,

man logrotate

可以看一下catalina.out轮转前后的文件大小,
轮转之前:

du -sh *
...
2.0G    catalina.out # 未轮转之前的文件大小
...

轮转之后的文件大小:

# du -sh catalina.out*
2.0M    catalina.out
60M catalina.out.1.gz # 轮转之后,进行压缩,日志文件变得更小了

另外在Tomcat的logs目录,每天都会产生很多日志文件,我们也可以定期手工或使用定时任务来删除7天前的日志文件,这里使用手工的方式进行演示,

cd /usr/local/apache-tomcat-8.0.28/logs
find -mtime +7 -exec rm -f {} \;

好了,就到这里了。希望可以帮到有需要的童鞋。

来自于: http://blog.51cto.com/lavenliu/1765791

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
6月前
|
负载均衡 前端开发 应用服务中间件
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400
|
6月前
|
负载均衡 前端开发 应用服务中间件
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400(2)
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400(2)
|
6月前
|
前端开发 JavaScript Java
从零手写实现 tomcat-10-static resource 静态资源文件
该文档记录了作者为理解Tomcat精髓,动手从零开始实现一个简化版Tomcat的过程。系列教程包括对web.xml的解析、基础的Socket实现、请求响应抽象、Servlet支持、线程池处理、WAR包解析及与SpringBoot集成等。文章以静态资源处理为例,介绍了如何接收HTTP请求,查找并返回文件内容,以及处理失败情况。代码示例展示了静态资源的分发逻辑。项目已开源,可在GitHub上访问[https://github.com/houbb/minicat](https://github.com/houbb/minicat)。
|
6月前
|
Java 应用服务中间件
解决tomcat启动报错:无法在web.xml或使用此应用程序部署的jar文件中解析绝对的url [http:java.sun.com/jsp/jstl/core]
解决tomcat启动报错:无法在web.xml或使用此应用程序部署的jar文件中解析绝对的url [http:java.sun.com/jsp/jstl/core]
1457 1
|
SQL 关系型数据库 MySQL
CentOS部署JAVA程序、安装Tomcat以及安装导入mysql文件的方法
CentOS部署JAVA程序、安装Tomcat以及安装导入mysql文件的方法
|
应用服务中间件 Linux
Linux不重启Tomcat清空catalina.out日志的几种方法
Linux不重启Tomcat清空catalina.out日志的几种方法
488 0
|
Unix 应用服务中间件 Linux
Tomcat清理日志文件无法立即释放磁盘空间
Tomcat清理日志文件无法立即释放磁盘空间
138 0
|
Java 应用服务中间件
用IDEA创建servlet文件并用Tomcat运行
用IDEA创建servlet文件并用Tomcat运行
184 0
|
安全 Java 应用服务中间件
tomcat的put方法任意文件写入漏洞浅谈
tomcat的put方法任意文件写入漏洞浅谈
295 0
|
安全 Java 应用服务中间件
CVE-2017-12615 Tomcat PUT方法任意写文件漏洞
CVE-2017-12615 Tomcat PUT方法任意写文件漏洞
266 0
CVE-2017-12615 Tomcat PUT方法任意写文件漏洞