【生产事故处理--kafka日志策略保留】

故障现象:生产环境kafka生产日志日渐增多,导致磁盘频繁到100%,引发pod Crashing,故研发根据生产环境,设置日志只保留最近两天即可,但是这个参数设置一直没有生效

解决步骤

1、配置客户端连接kafka认证文件

bash 复制代码
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主题设置的日志保留策略

bash 复制代码
 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主题的日志量是否和数据目录大小一致

bash 复制代码
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日志保留日志

bash 复制代码
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=delete


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 retention.ms=172800000

5、验证



至此问题解决了,加了cleanup.policy=delete这个参数解决了原来不生效的问题

排查思路

  1. 查看topic的日志保留策略是否配置成功
  2. 查看topic的日志量和数据目录的大小是否一致
  3. 查看borker时间格式是否为CST,如果是UTC格式就需要当前时间+8小时来计算