Kafka日志清理策略配置指南
Kafka的日志清理策略用于管理日志数据的生命周期,避免磁盘空间耗尽,主要支持两种核心策略:删除策略(Delete)(默认)和压缩策略(Compact)。以下是具体配置步骤及关键参数说明:
Kafka的日志清理配置需在server.properties文件(通常位于config目录)中进行。需修改或添加以下参数:
# 设置日志清理策略(核心参数)
log.cleanup.policy=delete # 可选值:delete(默认,按时间/大小删除)、compact(压缩,保留每个key最新值)、delete,compact(同时启用两种策略)
# 删除策略相关参数(仅当log.cleanup.policy=delete或delete,compact时生效)
log.retention.hours=168 # 日志保留最大小时数(默认7天,超时删除)
log.retention.bytes=1073741824 # 每个分区最大日志大小(默认-1,无限制;单位:字节)
log.segment.bytes=1073741824 # 每个日志段最大大小(默认1GB,达到后滚动新段)
log.segment.ms=604800000 # 日志段最大存活时间(默认7天,毫秒;超时删除)
# 压缩策略相关参数(仅当log.cleanup.policy=compact或delete,compact时生效)
log.cleaner.enable=true # 是否启用日志压缩器(默认true)
log.cleaner.threads=4 # 压缩线程数(默认1,根据CPU核心数调整)
log.cleaner.io.max.bytes.per.second=104857600 # 压缩速率限制(默认100MB/s,避免影响生产)
修改配置后,需重启Kafka Broker使配置生效:
# 停止Kafka服务
bin/kafka-server-stop.sh
# 启动Kafka服务
bin/kafka-server-start.sh config/server.properties
适用场景:通用场景,需定期清理过期数据以释放空间。
关键参数说明:
log.cleanup.policy:设置为delete(默认),开启按时间/大小删除日志。log.retention.hours:日志保留最长时间(如168小时=7天),超时日志段将被删除。log.retention.bytes:每个分区的最大日志大小(如1GB),超过则删除旧日志段(默认-1表示无限制)。log.segment.bytes:单个日志段的最大大小(如1GB),达到后自动滚动新段(便于精准清理)。log.segment.ms:日志段的存活时间(如7天),超时即使未达大小也会被清理。适用场景:需要保留每个key最新值的场景(如数据库变更日志、用户状态更新),减少日志冗余。
关键参数说明:
log.cleanup.policy:设置为compact(或delete,compact同时启用两种策略),开启日志压缩。log.cleaner.enable:必须设置为true(默认),启用压缩器。log.cleaner.threads:压缩线程数(如4),根据Broker CPU核心数调整(建议2-4核/线程)。log.cleaner.io.max.bytes.per.second:压缩速率限制(如100MB/s),避免压缩占用过多IO影响生产吞吐。log.dirs:指定Kafka数据存储目录(如/data/kafka/logs),日志清理将在该目录下执行。log.retention.check.interval.ms:日志清理检查间隔(默认5分钟=300000毫秒),调整可控制清理频率(更短间隔更及时,但增加系统负载)。bin/kafka-configs.sh --describe --entity-type brokers --entity-name 1
bin/kafka-configs.sh --describe --entity-type topics --entity-name <topic-name>
log.retention.bytes或log.retention.hours;若空间充足,可增大参数以减少清理频率。log.cleaner.threads和log.cleaner.io.max.bytes.per.second;删除策略的log.segment.ms不宜过短(如小于1小时),否则会导致频繁滚动日志段,影响性能。log.retention.hours设置过短(如小于24小时)可能导致数据丢失,生产环境建议设置为7天及以上。通过以上配置,可根据业务需求灵活选择日志清理策略,平衡存储成本与数据可靠性。修改配置后需密切监控集群状态,确保清理策略按预期工作。