NingG +

Apache Kafka 实践:集群监控方案

1.概要

判断当前 Kafka 集群性能如何?性能:并发效率、消息延迟、消息积压情况。这所有的基础都是:Kafka 集群的监控。

2.Kafka 监控

几个朴素的问题:

  1. 监控的具体目标,是什么?
  2. 监控哪些指标?
  3. Kafka 集群,涉及哪些关键组件?

2.1.核心原理简介

todo:

2.2.监控指标

Kafka 官方,给出的建议:

We recommend monitoring GC time and other stats and various server stats such as CPU utilization, I/O service time, etc. On the client side, we recommend monitoring the message/byte rate (global and per topic), request rate/size/time, and on the consumer side, max lag in messages among all partitions and min fetch request rate. For a consumer to keep up, max lag needs to be less than a threshold and min fetch rate needs to be larger than 0.

整体 3 方面:

  1. OS 级别: CPU、IO
  2. JVM 级别:JVM GC
  3. Kafka 级别:
    1. Client:message/byte rate (global and per topic), request rate/size/time
    2. Consumer: max lag in messages among all partitions and min fetch request rate

2.3.方案选型

现在几种方案:

  1. 发行包:HDP 发行包中 Ambari 监控聚合 Kafka
  2. Kafka Manager:https://github.com/yahoo/kafka-manager
  3. KafkaOffsetMonitor:https://github.com/quantifind/KafkaOffsetMonitor
  4. KafkaWebConsole:https://github.com/claudemamo/kafka-web-console

几种方式,对比分析:

2.4.监控部署方案

初步选定 hdp-kafka-server 作为监控部署服务器,并且新挂载一块磁盘用来。

部署步骤: https://github.com/quantifind/KafkaOffsetMonitor

Mobike 内部,当前的部署位置:

效果样图:(consumer 消费能力不足,导致 Kafka 中消息堆积)

3.参考资料

同类文章:

微信搜索: 公众号 ningg ,即可联系我

Top