【Linux】logrotate切割Tomcat日志并轮转(Flume采集准备工作适用)

  • 背景及使用场景
  • 系统及软件环境
  • 解决方案及具体操作
    • logrotate配置文件编辑
    • logrotate全部配置参数解析
    • 测试验证
  • 遇到的问题
  • 参考文献

背景及使用场景

  1. 需要Flume采集Tomcat的日志catalina.out,就需要按天切分日志。
  2. 防止日志文件累计过大占用空间影响服务器稳定性,并为了便于维护和查看日志。

系统及软件环境

CentOS 7.3、Tomcat 8.5.51、logrotate 3.8.6

解决方案及具体操作

CentOS6.5后版本自带logrotate程序,通过conf配置文件可以解决catalina.out的日志切割并按天轮转问题,配置后会自动按周期执行脚本,具体操作如下:

logrotate配置文件编辑

在/etc/logrotate.d/目录下新建一个tomcat-cut-log的文件并配置参数

cat >/etc/logrotate.d/tomcat-cut-log/usr/local/tomcat/logs/catalina.out{ #要轮转的文件
rotate 7 # 至多保留7个副本
daily # 指定转储周期为每天
dateext # 日期后缀格式
dateyesterday # 生成t-1日期参数,这个参数高版本的logrotate才支持
dateformat .%Y%m%d # 日期后缀格式
notifempty # 当日志文件为空时,不进行轮转
missingok # 文件丢失了,轮转不报错
copytruncate # 创建新的catalina.out副本,截断源catalina.out文件
}

logrotate全部配置参数解析

compress                                   通过gzip 压缩转储以后的日志
nocompress                                 不做gzip压缩处理
copytruncate                               用于还在打开中的日志文件,把当前日志备份并截断;是先拷贝再清空的方式,拷贝和清空之间有一个时间差,可能会丢失部分日志数据。
nocopytruncate                             备份日志文件不过不截断
create mode owner group                    轮转时指定创建新文件的属性,如create 0777 nobody nobody
nocreate                                   不建立新的日志文件
delaycompress                              和compress 一起使用时,转储的日志文件到下一次转储时才压缩
nodelaycompress                            覆盖 delaycompress 选项,转储同时压缩。
missingok                                  如果日志丢失,不报错继续滚动下一个日志
errors address                             专储时的错误信息发送到指定的Email 地址
ifempty                                    即使日志文件为空文件也做轮转,这个是logrotate的缺省选项。
notifempty                                 当日志文件为空时,不进行轮转
mail address                               把转储的日志文件发送到指定的E-mail 地址
nomail                                     转储时不发送日志文件
olddir directory                           转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
noolddir                                   转储后的日志文件和当前日志文件放在同一个目录下
sharedscripts                              运行postrotate脚本,作用是在所有日志都轮转后统一执行一次脚本。如果没有配置这个,那么每个日志轮转后都会执行一次脚本
prerotate                                  在logrotate转储之前需要执行的指令,例如修改文件的属性等动作;必须独立成行
postrotate                                 在logrotate转储之后需要执行的指令,例如重新启动 (kill -HUP) 某个服务!必须独立成
daily                                      指定转储周期为每天
weekly                                     指定转储周期为每周
monthly                                    指定转储周期为每月
rotate count                               指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份
dateext                                    使用当期日期作为命名格式
dateformat .%s                             配合dateext使用,紧跟在下一行出现,定义文件切割后的文件名,必须配合dateext使用,只支持 %Y %m %d %s 这四个参数
size(或minsize) log-size                   当日志文件到达指定的大小时才转储,log-size能指定bytes(缺省)及KB (sizek)或

测试验证

手动测试,执行切割脚本

logrotate -vf /etc/logrotate.d/tomcat-log-cut
logrotate命令格式:
logrotate [OPTION…]
-d, --debug :debug模式,测试配置文件是否有错误。
-f, --force :强制转储文件。
-m, --mail=command :压缩日志后,发送日志到指定邮箱。
-s, --state=statefile :使用指定的状态文件。
-v, --verbose :显示转储过程

查看切割情况

ll /usr/local/tomcat/logs/catalina*

示例效果

遇到的问题

  • 在进行手动验证时,提示文件所属非当前账号,需要进行文件归属配置
ls /usr/local/tomcat/logs/catalina.out -lh #查看文件所有者
chown work:work /usr/local/tomcat/logs/catalina.out #修改文件所有者
  • 要注意删除生成的带日期后缀的测试文件,否则自动脚本会出现文件覆盖错误

参考文献

[1]https://linux.cn/article-4126-1.html
[2]http://xmodulo.com/2014/09/logrotate-manage-log-files-linux.html
[3]http://blog.csdn.net/fuming0210sc/article/details/50906372
[4]http://blog.csdn.net/forthemyth/article/details/44062529
[5]https://www.cnblogs.com/clsn/p/8428257.html#auto-id-8

【Linux】logrotate切割Tomcat日志并轮转(Flume采集准备工作适用)相关推荐

  1. 使用logrotate分割tomcat日志

    #使用logrotate分割tomcat日志 #添加tomcat文件在logrotate.d目录下: [root@localhost logrotate.d]# cat /etc/logrotate. ...

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

    使用cronolog工具切分Tomcat的catalina.out日志文件 普通用户下载.安装cronolog[tomcat@localhost ~]$ tar -xf cronolog-1.6.2. ...

  3. 利用logrotate系统工具切割tomcat日志

    为什么80%的码农都做不了架构师?>>>    1.例子: [root@VM etc]# cat /etc/logrotate.d/tomcat /opt/apache-tomcat ...

  4. 使用logrotate切割nginx日志文件,其他日志文件切割类似

    首先安装logrotate 以centos为例 yum -y install logrotate 如果不需要切割其他的日志则把 /etc/logrotate.conf中的 /var/log/wtmp ...

  5. linux指令查看tomcat日志

    实际开发中经常遇到查看远程tomcat日志,来查找原因:因此总结了一些常用的linux指令 1.先切换到:cd usr/local/tomcat5/logs 2.tail -f catalina.ou ...

  6. Cronolog切割tomcat日志

    Cronolog切割tomcat 安装cronolog 1. 将cronolog-1.6.2.tar.gz 上传至/opt 目录 2. 解压缩 #解压缩 tar -zxvf cronolog-1.6. ...

  7. Tomcat日志配置远程Syslog采集

    本文将指引你:如何对Tomcat日志进行采集,并通过Syslog协议,自动实时的发送到远程的集中日志分析中心,便于集中式的日志存储和管理,提高网站的运维效率. 第一步:初始化日志采集环境 先确保系统中 ...

  8. linux下备份mysql日志_Linux下使用Logrotate对MySQL日志进行轮转备份

    根据自己的需要可以对MySQL的相关日志文件(错误日志.通用查询日志文件和慢查询日志文件)进行按天的转储,并只保留指定天数的备份文件,下面是一个例子: 1).安装 crond 服务 (如果未安装  y ...

  9. linux下查看tomcat日志命令

    1.先切换到:cd usr/local/tomcat/logs 2.tail -f catalina.out Ctrl+c 是退出tail命令 tail 命令从指定点开始将文件写到标准输出.使用tai ...

最新文章

  1. Vim 下使用 Slimv(类似Slime) 轻松调试 Common Lisp
  2. 易语言读写配置项ini文件
  3. SQL 列转行、行转列 - 使用sqlite演示
  4. [75] Making arrangements
  5. linux gnome启动命令,如何在Gnome Shell上自动启动程序
  6. Qt学习笔记(持续更新)
  7. CentOS 7.3 系统安装配置图解教程
  8. SQL 与 ORACLE 的比较
  9. HTML+CSS+JS实现 ❤️高光立体游戏卡片悬停ui特效❤️
  10. WPS专业版可用key
  11. Excel中如何将列数据转换为行数据
  12. 弱水三千的由来(转)
  13. NVD软件漏洞数据处理及分类方法总结
  14. 知识图谱构建:py2neo的实体关系以及节点显示图片
  15. 宽带提速后如何恰如其分的选择路由器?
  16. Gnocchi 9、gnocchi聚合算法分析
  17. 所有的百度云链接无法打开
  18. 基于springboot仓库管理系统(完美运行、数据库源代码、可远程调试)
  19. prometheus聚合运算
  20. 污水处理系统 | 污水处理项目程序规范,图纸清晰

热门文章

  1. CreateProcess error=193, %1 不是有效的 Win32 应用程序
  2. 重要:QA和QC的区别
  3. 如何快速解决 Mybatis 异常:Invalid bound statement (not found)
  4. 搭讪培训班 - 名品试用 - YOKA时尚论坛 - YOKA社区
  5. 【小程序开发原创】小程序裁剪图片上传头像,二维码源码
  6. 神经网络之父Hinton介绍及其论文介绍
  7. rails gem devise
  8. 树莓派3初始化安装(Raspberry Pi III)
  9. iOS 初学者功能代码大集合,个人笔记
  10. vnc下:无法执行默认的终端模拟器