You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache Kafka运行1天后自动停止,删除日志可临时恢复,求配置调整方案

Kafka服务异常停止问题配置修改方案

核心问题根源

ZooKeeper默认配置的dataDir指向系统临时目录/tmp,Linux系统会定期清理/tmp目录下超过指定时长的文件,导致ZooKeeper数据丢失、会话过期,Kafka与ZooKeeper断连后自动停止服务,删除日志后临时释放空间/重建ZK数据可短暂恢复,系统清理任务执行后问题会复现。

需要修改的配置项

1. 调整ZooKeeper存储配置(zookeeper.properties)

  • 原配置:dataDir=/tmp/zookeeper
    问题:/tmp为系统临时目录,会被定期自动清理
    修改为:将存储路径改为非临时目录,示例:
    # 存储ZK快照数据
    dataDir=/centos/home/zookeeper/data
    # 新增配置:单独存储ZK事务日志,提升性能同时避免被清理
    dataLogDir=/centos/home/zookeeper/log
    
    注意修改后需要手动创建对应目录,确保运行Kafka/ZooKeeper的用户有目录读写权限。

2. 调整Kafka日志存储与保留配置(server.properties)

  • 原配置:log.dirs=/centos/home/kafka/tmp/kafka-logs
    问题:路径包含tmp标识,存在被系统清理的风险
    修改为:改为正式数据存储目录,示例:
    log.dirs=/centos/home/kafka/data/kafka-logs
    
  • 原配置:#log.retention.bytes=1073741824
    问题:仅按7天时间保留日志,未限制总存储大小,容易占满磁盘导致服务崩溃
    修改为:打开注释,根据可用磁盘空间调整数值,建议设置为对应磁盘总容量的70%左右,避免磁盘占满。

3. 优化ZooKeeper会话超时配置(server.properties)

新增/调整以下配置,避免网络波动导致ZK会话意外过期:

# ZK连接超时调整为30秒
zookeeper.connection.timeout.ms=30000
# 新增ZK会话超时配置,设为30秒
zookeeper.session.timeout.ms=30000

生效步骤

  1. 停止Kafka服务,再停止ZooKeeper服务
  2. 手动创建上述修改后的所有新目录,配置正确的读写权限
  3. 先启动ZooKeeper,确认运行正常后再启动Kafka,观察服务运行状态即可。

内容的提问来源于stack exchange,提问作者Mastanvali Shaik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 04:15:00