Tomcat的catalina.out文件过大问题(logrotate方式)

爱⌒轻易说出口 提交于 2019-11-30 09:37:54

问题

sudo du -sh /opt/tomcat/logs/*
...
4.5G    /opt/tomcat/logs/catalina.out
...

Tomcat在Cent OS上面的日志文件catalina.out达到了4G多。

解决

logrotate

创建配置文件

vi /etc/logrotate.d/tomcat

编写配置文件:

/opt/tomcat/logs/catalina.out {   
    copytruncate   
    daily   
    rotate 7   
    compress   
    missingok   
    size 5M  
}

配置说明:

  • /opt/tomcat/logs/catalina.out:需要归档的日志路径
  • copytruncate:复制截断模式
  • daily:每天触发一次
  • rotate:最多7个日志文件
  • compress: 使用压缩
  • missingok:如果缺少日志文件,请继续执行下一个日志文件而不发出错误消息
  • size: 仅当日志文件大小超过字节大小时才会轮换日志文件

这样logrotate就每天自动触发一次日志切割归档。

测试logrotate轮写日志

logrotate -v /etc/logrotate.conf
...
rotating pattern: /opt/tomcat/logs/catalina.out  5242880 bytes (7 rotations)
empty log files are rotated, old logs are removed
considering log /opt/tomcat/logs/catalina.out
  log needs rotating
rotating log /opt/tomcat/logs/catalina.out, log->rotateCount is 7
dateext suffix '-20180928'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
glob finding old rotated logs failed
copying /opt/tomcat/logs/catalina.out to /opt/tomcat/logs/catalina.out-20180928
set default create context
truncating /opt/tomcat/logs/catalina.out
compressing log with: /bin/gzip
...

然后,在tomcat的logs文件夹下面查看一下,是否对catalina.out文件进行了轮写备份。

[admin@Servicenumber logs]$ ls -lh
总用量 23M
...
-rw-r-----. 1 tomcat tomcat 249K 9月  28 09:30 catalina.out
-rw-r-----. 1 tomcat tomcat 566K 9月  28 09:27 catalina.out-20180928.gz
...

看到了gz文件,说明logrotate没有问题了。

logrotate的日志文件

/var/lib/logrotate.status 

注意

使用logrotate时候,一定要确保tomcat日志输出位置是位于/var/log/tomcat/catalina.out才能够生效。不是操作系统的/var/log/日志输出位置,logrotate是无法启用的。

参考

logrotate(8) - Linux man page

How to Rotate Tomcat catalina.out

处理Tomcat日志catalina.out日志文件过大的问题(第二种方法适合各种日志的切割)

第十八章、認識與分析登錄檔

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!