kafka运维总结

本文总结了Kafka在运维过程中遇到的自身日志量过大问题。默认配置可能导致日志积累撑爆磁盘。解决方案包括设置crontab定期清理和修改log4j.properties实现自动清除。此外,探讨了log.retention.bytes(partition日志大小限制)和log.segment.delete.delay.ms(删除延迟时间)的调整,以优化磁盘使用和性能测试效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.自身日志量过大的问题

kafka运行一段时间之后,会发现它的主机磁盘使用率在缓慢增长,查看数据日志的持有量还是之前设置的阈值。
这里写图片描述
这时候其实是kafka自身的日志打印撑爆磁盘。
默认的~/kafka_2.11-0.9.0.0/config/log4j.properties如下:

log4j.rootLogger=INFO, stdout 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c)%n
log4j.appender.kafkaAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.kafkaAppender.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.kafkaAppender.File=${kafka.logs.dir}/server.log
log4j.appender.kafkaAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.kafkaAppender.layout.ConversionPattern=[%d] %p %m (%c)%n
...
...
...

可以看到它自身日志是按照小时去备份的,而且没有自动清除的功能,所以自身日志一直没有清掉,就可能会影响到对数据量的预估和判断。这时候我们只想保留最近n天的日志。log4j并没有配置这样的功能,在不改动源码的情况下,有两种办法达到目的。
1. 写一个crontab的脚本自动清除;
2. 修改log4j.properties,按照大小去自动清除。

log4j.rootLogger=INFO, stdout 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c)%n

log4j.appender.kafkaAppender=org.apache.log4j.RollingFileAppender
log4j.appender.kafkaAppender.append=true
log4j.appender.kafkaAppender.maxBackupIndex=2
log4j.appender.kafkaAppender.maxFileSize=5MB
log4j.appender.kafkaAppender.File=${kafka.logs.dir}/server.log
log4j.appender.kafkaAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.kafkaAppender.layout.ConversionPattern=[%d] %p %m (%c)%n
...
...
...

如上,我本人在生产环境设置的是日志备份两个,5MB就开始回滚。

log.retention.bytes是partition级别的

官网的解释是:The maximum size of the log before deleting it,解释得不清楚,实际上这个值只是partition日志的大小,不是topic的日志大小。

log.segment.delete.delay.ms设置

The amount of time to wait before deleting a file from the filesystem。

这个值默认的是:60000ms,也就是数据量达到设定的阈值之后,还是会保留数据,等待一段时间之后才会从文件系统上删除,所以做性能测试的时候,如果数据发送速率很大,那么就会导致监控数据文件夹的时候发现它总是超出阈值才删除,可以把这个阈值设置小一点。
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值