rocketmq客户端日志过大造成磁盘使用率占用过高

目录

问题现象

排查占用

自定义客户端日志配置未生效

总结


问题现象

收到项目报警:磁盘占用率超标通知

排查占用

从上述可以看出,实质是跟正常业务日志无关的,/home/work/log挂出来了,与/根目录下无关

查看根目录下日志占用大小,可以看到/root/logs/rocketmqlogs就是问题所在

可以看到当前rocketmq客户端日志单个文件大小为1.1G,然后分片了7个

由于项目比较稳定半个月未部署,所以在默认路径中,rocketmq客户端日志追加到了7G

已知的是,项目中已经配置了自定义日志,自定义路径为/home/work/log/项目/rocketmq_client.log可以看到自定义路径的文件大小为0

很显然配置未生效

自定义客户端日志配置未生效

查看自定义客户端日志配置,分为两步

第一步,配置rocketmq.client.logUseSlf4j=true

启动参数 添加: -Drocketmq.client.logUseSlf4j=true 【推荐】

或者启动类添加:System.setProperty("rocketmq.client.logUseSlf4j","true")

第二步,配置logback日志配置

检查项目中的配置

第一步,配置在application.properties

 第二步,配置在logback.xml

 可以看到的是第一步配置貌似不匹配,修改第一步配置

方式1

启动参数 添加: -Drocketmq.client.logUseSlf4j=true 【推荐】

配置项目启动参数,这个一般在项目部署平台的配置,结果验证,默认路径中没有rocketmqlogs文件夹了

 自定义路径文件的有内容了,进入查看日志正常,说明配置生效

 方式2

在项目启动类main方法中第一行添加

System.setProperty("rocketmq.client.logUseSlf4j","true")

验证也通过,该方式不太优雅,建议使用方式1,直接平台配置无需部署代码

以上解决了rocketmq自定义客户端日志配置不生效的问题

总结

以下两点解决了磁盘使用率占用过大问题

  1. 在自定义配置中,配置了rollingPolicy滚动(归档)策略为SizeAndTimeBasedRollingPolicy :按时间和文件大小滚动 (归档),超出指定时间自动删除,且指定时间内的所有分片日志总大小超过指定大小的,自动删除最老的归档日志分片
  2. 当前自定义配置路径已经挂载出去了,走的是1T的空间

参考文档

rocketmq client 日志的问题处理方式_Java教程_服务器之家

【Logback】<appender>标签详解_柒杯红酒的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值