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

【Kafka基础】监控与维护:分区健康检查,确保数据高可用

1 基础健康检查命令

1.1 查看未同步副本

/export/home/kafka_zk/kafka_2.13-2.7.1/bin/kafka-topics.sh --describe \
    --bootstrap-server 192.168.10.33:9092 \
    --under-replicated-partitions
参数说明
  • --under-replicated-partitions:显示所有副本未完全同步的分区
  • 输出解读:结果会显示哪些分区的副本落后于leader,通常表示网络问题、broker故障或磁盘I/O瓶颈

1.2 检查无Leader分区

/export/home/kafka_zk/kafka_2.13-2.7.1/bin/kafka-topics.sh --describe \
    --bootstrap-server 192.168.10.33:9092 \
    --unavailable-partitions
参数说明
  • --unavailable-partitions:显示当前没有活跃leader的分区
  • 严重程度:这种情况会导致客户端无法读写该分区,属于严重故障

2 高级健康检查命令

2.1 查看分区ISR变化历史

/export/home/kafka_zk/kafka_2.13-2.7.1/bin/kafka-topics.sh --describe \
    --bootstrap-server 192.168.10.33:9092 \
    --topic your-topic \
    --unavailable-partitions \
    --under-replicated-partitions \
    --verify
参数说明:
  • --verify:显示更详细的分区状态验证信息

2.2 检查分区分布均衡性

/export/home/kafka_zk/kafka_2.13-2.7.1/bin/kafka-topics.sh --describe \
    --bootstrap-server 192.168.10.33:9092 \
    | awk '/Partition:/ {print $2,$4}' \
    | sort | uniq -c \
    | sort -nr

2.3 检查消息堆积情况

/export/home/kafka_zk/kafka_2.13-2.7.1/bin/kafka-run-class.sh kafka.tools.GetOffsetShell \
    --broker-list 192.168.10.33:9092 \
    --topic testtopic \
    --time -1 \
    | awk -F ":" '{sum += $3} END {print sum}'

3 故障排查标准化流程

3.1 检查Broker状态

# 查看broker存活状态
/export/home/kafka_zk/kafka_2.13-2.7.1/bin/kafka-broker-api-versions.sh --bootstrap-server 192.168.10.33:9092 

# 检查controller broker 
/export/home/kafka_zk/kafka_2.13-2.7.1/bin/zookeeper-shell.sh 192.168.10.33:2181 get /controller

3.2 验证网络连接

# 测试 broker 间连通性
for broker in 192.168.10.33:9092 192.168.10.34:9092 192.168.10.35:9092; do
    echo "Testing $broker..."
    telnet ${broker%:*} ${broker#*:} <<EOF
EOF
done

3.3 查看日志文件

# 查看 Kafka 服务日志
tail -n 100 /export/home/kafka_zk/kafka_2.13-2.7.1/logs/server.log | grep -E "ERROR|WARN"

# 查看 controller 日志
grep "Controller" /export/home/kafka_zk/kafka_2.13-2.7.1/logs/controller.log | tail -n 50

3.4 检查系统资源

# 检查磁盘空间 
df -h

# 检查磁盘 I/O 
iostat -dx 2 5 

# 检查内存使用 
free -h

http://www.dtcms.com/a/123010.html

相关文章:

  • 【C++算法】53.链表_重排链表
  • 数据可视化 —— 柱形图应用(大全)
  • 《Uniapp-Vue 3-TS 实战开发》构建HTTP请求拦截器
  • Windows 2016 如何关闭自动更新
  • HLSL Complex Shapes With For Loops
  • Linux启动端口,Windows 看是否通
  • 使用 Vue + PDF.js 构建在线 PDF 阅读器(支持目录与缩放)
  • Petalinux最简开发
  • (2)网络学习之堡垒机
  • 如何避免Python爬虫重复抓取相同页面?
  • 【数据结构】树状数组
  • RTT中断管理学习
  • 苹果电脑MAC系统安装
  • 【MySQL篇】mysqlpump和mysqldump参数区别总汇
  • 【C++游戏引擎开发】第11篇:GLFW、GLAD环境搭建与第一个三角形渲染
  • 09-Spring 与线程安全:IOC 与多线程下的坑与解法
  • 解锁Midjourney创作潜能:超详细提示词(Prompts)分类指南
  • 【42期获取股票数据API接口】如何用Python、Java等五种主流语言实例演示获取股票行情api接口之沪深指数最新分时BOLL数据及接口API说明文档
  • 三、使用Keil5新建STM32工程
  • 【学Rust写CAD】29 Alpha256结构体(alpha256.rs)
  • torch.meshgrid()
  • 【OCR】总结目前流行的主要的OCR工具
  • Jenkins安装流程
  • 联邦学习研读笔记
  • printf
  • 【NLP 面经 9、逐层分解Transformer】
  • 第十一章 Python语言-高阶技巧(终章)
  • Dubbo(44)如何排查Dubbo的服务依赖问题?
  • 17. git pull
  • 6、nRF52xx蓝牙学习(nrf_gpiote.c库函数学习)