Su的技术博客

  • 首页
  • Java
  • MySQL
  • DDD
  • 事故复盘
  • 架构方案
  • AI
  • Other
  • 工具
  • 打赏
  • 关于
路很长,又很短
  1. 首页
  2. 事故复盘
  3. 正文
                           

【京东零售】Log4j框架疯狂写日志,导致磁盘打满问题排查

2023-09-01 134点热度 0人点赞 1条评论
一
问题是怎么发现的

最近有个Java系统上线后不久就收到了磁盘使用率告警,磁盘使用率已经超过了90%以上,并且磁盘使用率还在不停增长。

二
问题带来的影响

由于服务器磁盘被打满,导致了系统正常的业务日志无法继续打印,严重影响了系统的可靠性。

三
排查问题的详细过程

刚开始收到磁盘告警的时候,怀疑是日志级别问题,业务日志输出过多导致磁盘打满。但是查看我们自己的业务日志文件目录,每个日志文件内容都不是很大。

于是通过堡垒机登陆问题服务器,查看磁盘使用率很高的目录列表,发现根目录有个很大的日志文件,日志文件名称为log4j.log。但是检查应用日志配置后,日志输出配置路径并没有配置这个日志路径。而且我们用的是logback日志组件和配置文件,并没有使用log4j来输出日志。于是便打开这个未知来源的日志文件内容,记录的日志内容确实是我们自己的java系统写入的日志内容,且大部分都是debug级别日志内容。于是猜测在系统依赖的jar包内也有一个log4j的日志配置文件。于是便把部署包下载下来,然后通过文档遍历扫描所有jar包内的日志配置文件,结果在一个第三方jar包内找到一个log4j.xml配置文件,里边配置的root日志级别为debug,日志输出目录是系统根目录,日志文件名也都可以对应的上。
四
如何解决问题

通过上述排查过程找到了第三方jar包内的log4j配置文件,于是便排查该jar包的来源,发现是被其他jar包传递依赖进来的,并不是我们真实需要的jar包,所以通过maven排除该问题jar包即可。

五
总结反思
  1. 以后在引入第三方jar包的时候一定要检查他的依赖范围,看是否会与现有系统的jar包有冲突或者带来其他的影响。

  2. 对外提供第三方jar包的时候,不要把自己的调试代码和日志配置测试文件也打入jar包内。

END

本文仅供学习!所有权归属原作者。侵删!文章来源: 京东零售技术 -应用研发 曹志飞 :http://mp.weixin.qq.com/s/tbnHjwpdZRouIdx0Uj8OGg

更多文章:

  1. 一次访问Redis延时高问题排查与总结
  2. MySQL8.0驱动升级事故——之三
  3. 2021.07.13 我们是这样崩的
  4. 一次磁盘占用率 100% 的排查记录
  5. mysql-connect-java驱动从5.x升级到8.x的CST时区问题
  6. 分布式事务的几种实现方式
  7. 线上问题处理案例1:出乎意料的数据库连接池
  8. 猪八戒网DevOps之Java组件安全检测
标签: 京东零售 Log4j2 日志 生产事故 Java jar包
最后更新:2023-09-01

coder

分享干货文章,学习先进经验。

打赏 点赞
< 上一篇

文章评论

  • 哈

    长经验了

    2023-09-02
    回复
  • razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
    取消回复

    最新 热点 推荐
    最新 热点 推荐
    单体分层应用架构剖析 MySQL事务死锁问题排查 浅谈DDD中的聚合 高并发场景下JVM调优实践之路 ChatGPT的探索与实践 生产环境的CMS垃圾回收,一定要这样配置参数
    Log4j框架疯狂写日志,导致磁盘打满问题排查高并发场景下JVM调优实践之路3.编程语言的演化(译)4.架构风格 vs. 架构模式 vs. 设计模式(译)5.单体架构(译)6.分层架构(译)
    MySQL事务死锁问题排查 Go整洁架构实践 Arthas实战-线上热更新代码只需3步 Cache——对于缓存你应该知道的都在这张图里 系统设计-业务表5要素 八戒知识产权八年研发之路

    AIGC (1) BASE (1) bigkey (1) CAP (1) codeium (2) Copilot (2) hotkey (1) inject (1) jar包 (1) mvc (1) OOP (1) UML (1) vivo (2) 事务隔离级别 (1) 人工智能 (2) 代码质量 (1) 低耦合 (1) 依赖倒置原则 (1) 六边形架构 (1) 分层架构 (3) 分布式事务 (1) 分页 (1) 单体架构 (2) 可复用性 (1) 可读性 (1) 合同 (1) 后端开发 (1) 命名 (1) 四色建模法 (1) 垃圾回收器 (1) 开源 (1) 性能调优 (4) 智能助手 (1) 架构模式 (1) 架构设计 (4) 架构风格 (1) 模块 (1) 死锁 (1) 物流 (1) 系统架构 (4) 缓存穿透 (1) 缓存雪崩 (1) 编程助手 (3) 编程技能 (1) 编程语言 (2) 聚合 (1) 软件工程师 (1) 软件架构 (2) 驱动升级 (1) 高内聚 (1)

    COPYRIGHT © 2014-2023 verysu.com . ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang

    粤ICP备15033072号-2