当前位置: 首页 > news >正文

Kafka 日志目录磁盘空间不足导致 Broker 停止服务如何应急?

磁盘空间不足导致 Kafka Broker 停止服务时,最稳妥的应急方式是先尝试动态调整保留策略触发自动清理,若无效再谨慎手动清理旧日志段文件,严禁直接删除正在写入的活跃段。

先说结论:优先通过调整保留策略自动清理,若紧急则手动删除旧段文件,严禁删除活跃段。

  • 先确认磁盘占用及 log.dirs 路径
  • 优先修改 topic 的 retention.ms 配置触发自动清理
  • 手动删除前务必备份数据并检查消费者 offset
  • 清理后验证 Broker 状态及消费延迟

1. 定位日志目录与磁盘占用

首先确认磁盘使用率及 Kafka 日志存储路径,避免误删其他系统文件。

检查磁盘空间:

df -h
du -sh * | sort -hr

查找 Kafka 日志路径:

进入 Kafka 安装目录,查看配置文件中的 log.dirs 配置项:

grep "log.dirs" config/server.properties

若无法查看配置文件,可通过进程启动参数查找:

ps -ef | grep kafka | grep log.dirs

2. 优先方案:动态调整保留策略

若 Broker 尚未完全崩溃或能通过 JMX 连接,优先使用命令行动态调整 Topic 保留时间,触发 Log Cleaner 工作,避免手动删除风险。

命令示例:

bin/kafka-configs.sh `--bootstrap-server` localhost:9092 `--entity-type` topics `--entity-name` <topic-name> `--alter` `--add-config` retention.ms=3600000

将保留时间临时调整为 1 小时(3600000 毫秒),等待几分钟让 Kafka 自动清理旧段。清理完成后建议恢复原配置。

3. 应急方案:手动清理日志段(高风险)

若 Broker 已停止且无法启动,需手动清理。此操作存在数据一致性风险,务必遵循以下安全检查清单。

安全检查清单:

  • 备份数据:删除前必须备份日志目录,防止误删导致数据永久丢失。
  • 确认非活跃段:仅删除时间戳最早、偏移量最小的 .log 和 .index 文件。
  • 检查消费者 Offset:确保删除的文件偏移量小于消费者已提交的 Offset,避免消费者报错 OffsetOutOfRange。
  • 严禁删除活跃段:不要删除文件名偏移量最大的段,那是当前正在写入的活跃段。

操作步骤:

1. 备份日志目录:

cp -r /path/to/kafka-logs /path/to/backup/kafka-logs-backup-$(date +%F)

2. 删除旧段文件:

若 Broker 已停止,仅在确认消费者 offset 已提交且不影响业务的前提下,谨慎删除最早的非活跃段文件,并建议先备份。进入 log.dirs 配置的目录,查找时间戳较早的 .log 和 .index 文件。

rm -f 00000000000000000000.log
rm -f 00000000000000000000.index

3. 清理索引:若手动删除了 .log 文件,必须删除对应的 .index 和 .timeindex 文件,否则 Broker 启动时会因索引不匹配报错。Kafka 启动后会自动重建索引。

4. 重启与验证

清理完成后重启 Broker,并验证服务状态及数据一致性。

重启服务:

bin/kafka-server-start.sh config/server.properties

验证步骤:

  • 进程检查:使用 jps 确认 Kafka 进程存在。
  • 日志检查:查看 logs/server.log 无 ERROR 报错,特别是无"Log directory is full"或"Index mismatch"错误。
  • 消费延迟检查:使用 bin/kafka-consumer-groups.sh `--bootstrap-server` <host> `--describe` `--group` <group-id> 检查消费延迟,观察 lag 是否开始下降。

5. 常见坑与风险规避

  • Offset 不连续:手动删除 .log 文件可能导致 Offset 不连续,引发消费者错误。若消费者报错,需重置消费者 Offset 到最新位置。
  • 索引不一致:手动删除后若启动失败,可能需要删除对应的 .index 文件让 Kafka 重建。不要只删 .log 不删 .index。
  • 权限问题:确保 Kafka 运行用户对日志目录有读写权限,避免重启后因权限问题无法写入。
  • 扩容建议:应急处理后,建议尽快扩容磁盘或增加 Broker 节点,调整 log.retention.bytes 限制,防止再次发生。

参考来源

Apache Kafka Documentation - Operations
URL: https://kafka.apache.org/documentation.html

原文链接:https://www.zjcp.cc/ask/11626.html

http://www.jsqmd.com/news/852827/

相关文章:

  • 进阶使用VS Code:解锁AI编程助手的引擎模式
  • 免费解锁二手iPhone:applera1n激活锁绕过工具终极指南
  • 奇安信Qcode Agents重磅升级,正式解锁操作系统级漏洞挖掘能力
  • 深入Activiti 5.22内核:从命令模式与拦截器链看流程引擎的执行机制
  • 跟着 MDN 学CSS day_1:(CSS 基石与色彩的艺术)
  • 从澡堂到家庭:“秦老大”为何能成为澡巾行业的“标尺” - 中媒介
  • 如何5分钟制作专业MDX词典:AutoMdxBuilder智能生成器完整指南
  • 矩阵从0到自动化运转的4个阶段:90%的团队死在第2阶段
  • 不熬夜、不焦虑、不踩坑:用百考通AI 无痛搞定本科毕业论文
  • 毕业季论文 “自救” 指南:从选题到定稿,这 9 款 AI 工具帮你告别熬夜内耗
  • VK视频下载终极指南:3种方法轻松保存珍贵回忆
  • 跟着 MDN 学CSS day_2:(连接样式表与选择器的实战艺术)
  • 保姆级教程:在RK3588 Android 12上搞定HDMI输入(从DTS配置到音频调试)
  • 机械臂关节电机场景下的优化控制方法【附代码】
  • 别再踩坑了!用HBuilderX和Xcode离线打包iOS App的完整流程与权限避坑指南
  • 2026 甘肃超声炮哪家好?5 家正规机构推荐(兰州超声炮机构口碑榜单) - 深度智识库
  • 多模态大模型微调为什么一上图文交错数据就开始视觉退化:从 Modality Collapse 到 Progressive Unfreeze 的工程实战
  • YOLOv8实时目标检测与自适应控制技术在游戏辅助系统中的应用研究
  • 中创商业咨询这个公司做并购如何?并购实战派的深度拆解 - 服务品牌热点
  • 从VMware共享文件夹到完整环境:手把手带你为ZYNQ开发板搭建Petalinux 2018.3开发栈
  • ADRC入门避坑指南:搞懂跟踪微分器,别再混淆‘斜坡信号’与‘微分信号’了
  • 如何快速跳过FF14副本动画:终极ACT插件安装与使用指南
  • 从用量看板分析团队开发过程中不同模型的实际 token 消耗分布
  • 别再只升级Nginx了!修复CVE-2022-41741漏洞,你的OpenSSL 1.0.2k可能也是“猪队友”
  • 模块化烹饪小程序开发日记 Day4:网络层基础设施与接口治理实践
  • NumPy 2.4.6 快速版发布:修复 2.4.5 回归问题,支持 Python 3.11 - 3.14
  • 宁夏 MPP 电力管行业格局剖析:品牌深度分析与市场发展趋势 - 深度智识库
  • Windows系统下Opensmile 3.0保姆级安装与配置避坑指南(含PATH环境变量设置)
  • 保姆级教程:用Simulink Embedded Coder生成可部署的嵌入式C代码(附避坑指南)
  • 从零构建Sora 2-DaVinci双引擎协同工作站:Intel Xeon W9-3400系列+RTX 6000 Ada专属散热/供电/PCIe拓扑配置清单(附实测带宽衰减曲线)