记一次日志框架使用不当的事故

某系统因日志文件异常增长占满硬盘空间,导致服务全面挂起。经排查,发现是由于从Kafka订阅的数据在转换为SQL时遇到表结构不匹配的问题,大量异常日志生成。解决方案包括限制日志文件大小,清理旧日志,更新表结构,并重启服务。问题得到解决,避免了类似故障再次发生。
摘要由CSDN通过智能技术生成

事故以及原因排查

上午运维的同事告诉我某个系统登录不进了。赶紧测试了一下,然后就连接到服务器排查具体原因。
jps 一看 服务全部都挂了,根本没有在运行的。
赶紧看日志 ,发现有一个服务 logback 归档了大量的错误日志。一个100M 一天300个 周末这两天 到周一早上刚好把硬盘空间撑满了。


df -h 查看有一个挂载点确实满了
然后 使用 du -h --max-depth = 1 查看具体目录,可以看到有一个目录155G

大概知道了 肯定是大量的异常日志引起的磁盘空间不足,导致虚拟机运行异常,进而所有的服务全部中止。
然后,删除一部分的日志,将其他服务重启,发现没有问题,就暂时给运维答复了。

问题解决

原因分析

之所以打印大量的异常日志,是因为一个jar用于订阅kafka集群的数据 并持久化到本地数据库,偶尔会有一点异常,问题不大,不过是一些SQL字段的编码问题。但是这次订阅过来的数据 ,转换成SQL语句时,发现在本地表结构中缺少一些相应字段,也就是数据提供方又又又加字段了。导致所有的SQL 全部执行异常,再加上数据还会重试。这就导致归档了大量的异常日志。

解决办法

这里使用的是logback 日志框架,在logback-spring.xml中添加,


指定最大值,那么当日志文件超过10GB时,就会覆盖原来的日志文件。
以下是测试 1MB 每个日志文件,总量 10MB,当超过10MB就会从1开始覆盖。

接着就是给本地的表结构新增缺失字段,重启服务了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值