Apache Kafka监控


Apache Kafka-概述

Apache Kafka是由LinkedIn开发的开源,容错,基于发布-订阅的消息传递系统。Kafka是一种分布式日志服务,由于其更高的吞吐量,可伸缩性,可靠性和复制性,通常被用来代替传统的消息broker。

监控Apache Kafka-监控内容

Apache Kafka是数据集成的一种完美选择,包含快速且高度可扩展的功能。Kafka节点以弹性方式创建和删除;一个节点实时处理来自数千个客户端的数百次读/写。数据流分为多个分区,并分布在不同的broker上。Kafka技术细节延伸极其广泛,为此,拥有强大的Kafka监控软件对于解决问题和优化性能至关重要。

Applications Manager的 Kafka性能监控旨在帮助管理员收集Kafka指标,管理集群并就潜在问题自动向其发出告警。让我们看看监控Kafka所需要看到的内容以及通过Applications Manager收集的性能指标:

  • 资源利用率详细信息-自动发现Kafka服务器,监控内存和CPU并获取有关资源消耗变化的告警。
  • 线程和JVM使用情况-使用诸如Daemon,Peak和Live Thread Count之类的指标跟踪线程使用情况。确保启动的线程不会使服务器的内存过载。
  • broker,控制器和复制统计信息-监控活动的控制器,并查看broker是否已启动了不可用分区的数量。监控broker统计信息,例如日志刷新延迟(以确保更长的刷新时间不会备份管道)和复制不足的分区(指示复制的速度不如配置的快)。
  • 网络和主题详细信息-精确定位导致速度下降的请求细分。请随时注意主机上的网络使用情况,以免性能下降与网络无关。使用Broker Topic字节速率指标,确保磁盘吞吐量不会引起性能瓶颈。
  • 更快地解决性能问题-Apache Kafka的组件出现性能问题时,可立即获得通知。在终端用户遇到问题之前,请意识到性能瓶颈并采取快速的补救措施。

创建一个新的Kafka监视器

支持的版本:版本0.7.0至0.10.0.1

使用REST API创建新的Kafka监视器: 点击此处

要创建Apache Kafka Monitor,请执行以下步骤: 

  1. 点击新建监视器 链接。选择 Apache Kafka
  2. 输入监视器的显示名称
  3. 输入运行Kafka的主机的 IP地址主机名
  4. 在JMX端口字段中输入 JMX端口。
  5. 输入凭证详细信息,例如用户名,密码JNDIPath,或从凭证管理列表中选择凭证。
  6. 输入轮询间隔时间(以分钟为单位)。
  7. 如果要测试对Apache Kafka服务器的访问,请点击测试凭证按钮。
  8.  从组合框中选择要与Apache Kafka 监视器关联的 业务组(可选)。您可以选择多个组来关联您的监视器。
  9. 点击 添加监视器。这将从网络中发现Apache Kafka并开始监控。

注意:
如果启用JMX后仍无法添加监视器,请尝试提供以下参数:
 -Djava.rmi.server.hostname = [YOUR_IP]

监控参数

通过点击监视器选项卡,转到监视器类别视图。在中间件/Portal表下点击Apache Kafka。显示的是Apache Kafka批量配置视图,分布在三个选项卡中:

  • 可用性标签提供了过去24小时或30天的可用性历史记录。
  • 性能选项卡提供了过去24小时或30天的健康状况和事件。
  • 列表视图使您可以执行批量管理配置。

Applications Manager的Kafka性能监控可基于以下选项卡中列出的指标提供对Kafka服务器的完全可见性:

概览

参数 描述
内存详情
Total Physical Memory Size 物理内存总量(以兆字节为单位)。
Free Physical Memory Size 可用物理内存量(以兆字节为单位)。
Committed Virtual Memory Size 保证正在运行的进程可用的虚拟内存量(以兆字节为单位)。
Total Swap Space Size JVM保留的虚拟内存的总大小。
Free Swap Space Size 可用虚拟内存大小。
线程详情
Daemon Thread Count 当前正在运行的守护程序线程数。
Peak Thread Count 自Java虚拟机启动或重置峰值以来的活动线程峰值。
Live Thread Count 当前正在运行的活动线程数。
Total Started Thread Count 自Java虚拟机启动以来创建和启动的线程总数。
堆和非堆内存详细信息
NonHeapMemoryUsage 当前正在使用的非堆内存。
HeapMemoryUsage 当前正在使用的堆内存。

控制器详细信息

在Kafka集群中,其中一个broker充当控制器,它负责管理分区和副本的状态,并执行诸如重新分配分区之类的管理任务。

参数 描述
Kafka控制器详细信息
Active Controller Count 集群中活动控制器的数量。
Offline Partitions Count 不可用分区的数量。
Leader Election Rate  leader elections的比率。
Unclean Leader Election Rate Unclean Leader Election Rate

Broker 详情

参数 描述
日志详细信息
Log Flush Rate 异步磁盘日志刷新率。
Broker主题指标
Bytes In/Min 每分钟的总传入字节速率(此broker上写入主题的数据量)。
Bytes Out/Min 每分钟的总传出字节速率。
Bytes Rejected/Min 每分钟broker拒绝的消息中的数据量。
Failed Fetch Requests/Min broker每分钟针对该主题未能处理的来自使用者的数据读取请求数。
Failed Produce Requests/Min 来自生产者的失败请求数。
Messages In/Min 进入Kafkabroker的消息数。
复制管理器
IsrExpands/Min 同步中副本扩展的数量。(如果broker关闭,则某些分区的ISR将缩小。当该broker再次启动时,一旦完全获取副本,ISR将被扩展)。
IsrShrinks/Min 同步副本的数量减少。(如果broker发生故障,则某些分区的ISR将缩小。当该broker再次发生故障时,一旦完全获取副本,ISR将被扩展)。
Leader Count 特定主机作为领导者的分区数。
Partition Count 集群中的分区数。
Under Replicated Partitions 这表明集群中的分区数量未充分复制。
Request Handler Avg Idle Percen 请求处理程序线程空闲的平均时间百分比。

网络详情

参数 描述
请求处理率
Request Produce/Min 在此broker上写入主题的消息数。
Request Fetch Consumer/Min 用户从此broker程序上的此主题获取的数据量。
Request Fetch Follower/Min 来自作为分区跟随者的broker的请求以获取新数据。
所需时间
Total Time Produce/Min 满足指定请求的总时间。
Total Time Fetch Consumer/Min 使用者从此broker上的该主题中获取数据的总时间。
Total Time Fetch Follower/Min 分区获取新数据所花费的总时间
网络处理器速率
Network Processor Avg Idle Percent/Min 每分钟网络处理器的平均可用容量。

Topics 详情

参数 描述
主题详情
Topic Name 指定主题名称。
Bytes in/Min 每分钟的总传入字节速率(此broker上写入主题的数据量)。
Bytes Out/Min 每分钟的总传出字节速率。
Failed Fetch Requests/Min 每分钟失败的提取请求总数。
Failed Produce Requests/Min 失败的生产者请求总数。
Messages In/Min 进入Kafkabroker的消息数。

配置

参数 描述
储存详情
Boot Class Path 引导类加载器用来搜索类文件的引导类路径。
Class Path 系统类加载器用来搜索类文件的Java类路径。
Spec Vendor 此产品实现的JMX规范的供应商。
Spec Version 该产品实现的JMX规范版本。
VM Name Java虚拟机名称。
VM Vendor Java虚拟机实施供应商。