【生产事故处理--kafka日志策略保留】
故障现象:生产环境kafka生产日志日渐增多,导致磁盘频繁到100%,引发pod Crashing,故研发根据生产环境,设置日志只保留最近两天即可,但是这个参数设置一直没有生效
解决步骤
1、配置客户端连接kafka认证文件
I have no name!@kafka-client:/opt/bitnami/kafka/bin$ cat /tmp/client.properties
security.protocol=SASL_PLAINTEXT
sasl.mechanism=SCRAM-SHA-256
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \username="user1" \password="Lv5RlAz8zt";
2、查看topic主题设置的日志保留策略
kafka-configs.sh --bootstrap-server kafka-broker-headless.kafka-prod.svc.cluster.local:9092 --command-config /tmp/client.properties --entity-type topics --entity-name app_record --describe
3、确定下topic主题的日志量是否和数据目录大小一致
kafka-log-dirs.sh --bootstrap-server kafka-broker-headless.kafka-prod.svc.cluster.local:9092 --command-config /tmp/client.properties --describe --topic-list app_record
4、设置topic日志保留日志
kafka-configs.sh --bootstrap-server kafka-broker-headless.kafka-prod.svc.cluster.local:9092 --command-config /tmp/client.properties --entity-type topics --entity-name app_record --alter --add-config cleanup.policy=deletekafka-configs.sh \--bootstrap-server kafka-broker-headless.kafka-prod.svc.cluster.local:9092 \--command-config /tmp/client.properties \--entity-type topics \--entity-name app-record \--alter \--add-config retention.ms=172800000
5、验证
至此问题解决了,加了cleanup.policy=delete这个参数解决了原来不生效的问题
排查思路
- 查看topic的日志保留策略是否配置成功
- 查看topic的日志量和数据目录的大小是否一致
- 查看borker时间格式是否为CST,如果是UTC格式就需要当前时间+8小时来计算