1.目标
在我们上一篇Kafka教程中,我们讨论了Kafka Tools。今天,我们将看到Kafka Monitoring。在此,我们将学习如何监控Apache Kafka的概念。此外,我们将涵盖在故障排除或Kafka监控时可以提供帮助的所有可能/合理的Kafka指标。此外,我们将讨论审计和Kafka监控工具,如Kafka Monitoring JMX。
那么,让我们从Apache Kafka中的Monitoring开始。
2.什么是卡夫卡监测?
众所周知,Kafka的集中式设计具有很强的耐用性和容错性。此外,由于Kafka是一个分布式系统,因此主题在多个节点之间进行分区和复制。此外,Kafka可以成为数据集成的极具吸引力的选择,具有有意义的性能监控和对问题的及时警报。基本上,当对Kafka问题进行故障排除时,应用程序管理器会向需要采取纠正措施的人收集所有性能指标和警报。让我们详细讨论Kafka Monitoring -
一个。跟踪系统资源利用率
确保您没有资源耗尽“跟踪系统资源利用率”自动发现Kafka服务器,并跟踪资源利用率详细信息,如内存,CPU和磁盘随时间的增长。但是,我们确保您的Apache Kafka服务器已启动并按预期持续运行。因此,只要资源消耗突然激增或模式异常,您就可以快速得到通知。
探索Apache Kafka用例| 卡夫卡应用程序
湾 保留线程和JVM使用的选项卡
Kafka依赖于Java垃圾收集进程来释放内存,因为它在Java虚拟机(JVM)中运行。垃圾收集运行的频率越高,Kafka集群中的活动就越多。确保启动的线程不会使服务器的内存过载,同时确保跟踪JVM堆大小。此外,为了防止系统中出现性能瓶颈,请使用守护程序,峰值和活动线程计数等指标跟踪线程使用情况。
C。了解代理,控制器和复制统计信息
在Kafka集群中,为了管理分区和副本的状态以及执行管理任务(如重新分配分区),其中一个代理充当控制器,该控制器负责。为了在发生问题时查看哪个Kafka代理是控制器,监视活动控制器并防止服务中断,脱机分区计数。此外,它还监视代理的日志刷新延迟 - 但是,将日志刷新到磁盘所需的时间越长,管道就会崩溃。此外,要了解复制是否与配置一样快,它会跟踪未复制的分区。
d。监控网络和主题详细信息
全面了解主机上的网络使用情况,跟踪网络吞吐量或汇总代理主题的传入和传出字节速率,以获取有关潜在瓶颈所在位置的更多信息。做出明智的决定。
阅读Apache Kafka Architecture及其基本概念
即 更快地解决性能问题
如果Apache Kafka的组件存在性能问题,请立即获取通知。此外,找出导致过度负载的应用程序,并了解性能瓶颈。在最终用户遇到问题之前,请采取快速补救措施。
3.卡夫卡监测中的度量和警报
基本上,我们的一般经验法则是“收集所有可能/合理的指标,以便在排除故障时提供帮助,仅向那些需要您采取行动的人发出警报”。
一个。我们进行图表和警报的度量标准
- 消息速率
MBEAN NAME: kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec
- MBEAN NAME:kafka.server:type = BrokerTopicMetrics,name = MessagesInPerSec
- 来自客户端的速率字节
MBEAN NAME: kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec
- MBEAN NAME:kafka.server:type = BrokerTopicMetrics,name = BytesInPerSec
- 来自其他经纪商的一个字节
MBEAN NAME:kafka.server:type=BrokerTopicMetrics,name=ReplicationBytesInPerSec
- MBEAN名称:kafka.server:type = BrokerTopicMetrics,name = ReplicationBytesInPerSec
- 要求率
MBEANNAME: kafka.network:type=RequestMetrics,name=RequestsPerSec,request={Produce|FetchConsumer|FetchFollower}
- MBEANNAME:kafka.network:type = RequestMetrics,name = RequestPerSec,request = { Produce | FetchConsumer | FetchFollower }
- 错误率
MBEAN NAME: kafka.network:type=RequestMetrics,name=ErrorsPerSec,request=([-.\w]+),error=([-.\w]+)
- MBEAN NAME:kafka.network:type = RequestMetrics,name = ErrorsPerSec,request = ([ - 。\ w ] + ),error = ([ - 。\ w ] + )
NORMAL VALUE:每个请求类型,每个错误代码计算的响应中的错误数。如果响应包含多个错误,则计算所有错误。error = NONE表示响应成功。
看看卡夫卡的优缺点
- 请求大小(字节)
MBEAN NAME: kafka.network:type=RequestMetrics,name=RequestBytes,request=([-.\w]+)
- MBEAN NAME:kafka.network:type = RequestMetrics,name = RequestBytes,request = ([ - 。\ w ] + )
NORMAL VALUE:每种请求类型的请求大小。
- 临时内存大小(以字节为单位)
MBEAN NAME: kafka.network:type=RequestMetrics,name=TemporaryMemoryBytes,request={Produce|Fetch}
- MBEAN NAME:kafka.network:type = RequestMetrics,name = TemporaryMemoryBytes,request = { Produce | Fetch }
NORMAL VALUE:用于消息格式转换和解压缩的临时内存。
- 消息转换时间
MBEAN NAME: kafka.network:type=RequestMetrics,name=MessageConversionsTimeMs,request={Produce|Fetch}
- MBEAN NAME:kafka.network:type = RequestMetrics,name = MessageConversionsTimeMs,request = { Produce | Fetch }
NORMAL VALUE:消息格式转换所花费的时间(以毫秒为单位)。
- 邮件转换率
MBEAN NAME: kafka.server:type=BrokerTopicMetrics,name={Produce|Fetch}MessageConversionsPerSec,topic=([-.\w]+)
- MBEAN NAME:kafka.server:type = BrokerTopicMetrics,name = { Produce | Fetch } MessageConversionsPerSec,topic = ([ - 。\ w ] + )
NORMAL VALUE:需要进行消息格式转换的记录数。
- 向客户发送速率
MBEAN NAME: kafka.server:type=BrokerTopicMetrics,name=BytesOutPerSec
- MBEAN NAME:kafka.server:type = BrokerTopicMetrics,name = BytesOutPerSec
- 向其他经纪人出售率
MBEAN NAME: kafka.server:type=BrokerTopicMetrics,name=ReplicationBytesOutPerSec
- MBEAN NAME:kafka.server:type = BrokerTopicMetrics,name = ReplicationBytesOutPerSec
- 记录冲洗率和时间
MBEAN NAME: kafka.log:type=LogFlushStats,name=LogFlushRateAndTimeMs
- MBEAN名称:kafka.log:type = LogFlushStats,name = LogFlushRateAndTimeMs
- 未复制分区的数量(| ISR | <|所有副本|)
MBEAN NAME: kafka.server:type=ReplicaManager,name=UnderReplicatedPartitions
- MBEAN NAME:kafka.server:type = ReplicaManager,name = UnderReplicatedPartitions
正常值:0
- minIsr分区下的#(| ISR | <min.insync.replicas)
MBEAN NAME: kafka.server:type=ReplicaManager,name=UnderMinIsrPartitionCount
- MBEAN NAME:kafka.server:type = ReplicaManager,name = UnderMinIsrPartitionCount
正常值:0
- 离线日志目录数
我们来讨论Apache Kafka Workflow | Kafka Pub-Sub Messaging
MBEAN NAME: kafka.log:type=LogManager,name=OfflineLogDirectoryCount
- MBEAN名称:kafka.log:type = LogManager,name = OfflineLogDirectoryCount
正常值:0
- 控制器是否在代理上有效
MBEAN NAME: kafka.controller:type=KafkaController,name=ActiveControllerCount
- MBEAN NAME:kafka.controller:type = KafkaController,name = ActiveControllerCount
正常值:群集中只有一个代理应该有1
- 领导人选举率
MBEAN NAME: kafka.controller:type=ControllerStats,name=LeaderElectionRateAndTimeMs
- MBEAN NAME:kafka.controller:type = ControllerStats,name = LeaderElectionRateAndTimeMs
正常值:当存在代理失败时非零
- 不干净的领导人选举率
MBEAN NAME:kafka.controller:type=ControllerStats,name=UncleanLeaderElectionsPerSec
- MBEAN NAME:kafka.controller:type = ControllerStats,name = UncleanLeaderElectionsPerSec
正常值:0
- 分区计数
MBEAN NAME: kafka.server:type=ReplicaManager,name=PartitionCount
- MBEAN NAME:kafka.server:type = ReplicaManager,name = PartitionCount
正常价值:大多数甚至是经纪人
- 领导者复制品计数
MBEAN NAME: kafka.server:type=ReplicaManager,name=LeaderCount
- MBEAN NAME:kafka.server:type = ReplicaManager,name = LeaderCount
正常价值:大多数甚至是经纪人
- ISR收缩率
MBEAN NAME: kafka.server:type=ReplicaManager,name=IsrShrinksPerSec
- MBEAN NAME:kafka.server:type = ReplicaManager,name = IsrShrinksPerSec
正常值:如果代理发生故障,某些分区的ISR将缩小。当该经纪人再次上涨时,一旦副本完全赶上,ISR将会扩大。除此之外,ISR收缩率和扩张率的预期值均为0。
- ISR扩张率
MBEAN NAME: kafka.server:type=ReplicaManager,name=IsrExpandsPerSec
- MBEAN NAME:kafka.server:type = ReplicaManager,name = IsrExpandsPerSec
正常值:
- 消息中的最大滞后顺序是跟随者和领导者副本
MBEAN NAME: kafka.server:type=ReplicaFetcherManager,name=MaxLag,clientId=Replica
- MBEAN NAME:kafka.server:type = ReplicaFetcherManager,name = MaxLag,clientId = Replica
正常值:滞后应与生产请求的最大批量大小成比例
- 每个关注者副本的消息滞后
MBEAN NAME: kafka.server:type=FetcherLagMetrics,name=ConsumerLag,clientId=([-.\w]+),topic=([-.\w]+),partition=([0-9]+)
- MBEAN NAME:kafka.server:type = FetcherLagMetrics,name = ConsumerLag,clientId = ([ - 。\ w ] + ),topic = ([ - 。\ w ] + ),partition = ([ 0 - 9 ] + )
正常值:滞后应与生产请求的最大批量大小成比例。
- 请求在生产者炼狱等待
MBEAN NAME: kafka.server:type=DelayedOperationPurgatory,name=PurgatorySize,delayedOperation=Produce
- MBEAN NAME:kafka.server:type = DelayedOperationPurgatory,name = PurgatorySize,delayedOperation = Produce
NORMAL VALUE:如果使用ack = -1,则为非零
- 请求在炼狱中等待
MBEAN NAME: kafka.server:type=DelayedOperationPurgatory,name=PurgatorySize,delayedOperation=Fetch
- MBEAN NAME:kafka.server:type = DelayedOperationPurgatory,name = PurgatorySize,delayedOperation = Fetch
NORMAL VALUE:size取决于使用者中的fetch.wait.max.ms
- 请求总时间参见 -
MBEAN NAME: kafka.network:type=RequestMetrics,name=TotalTimeMs,request={Produce|FetchConsumer|FetchFollower}
- MBEAN NAME:kafka.network:type = RequestMetrics,name = TotalTimeMs,request = { Produce | FetchConsumer | FetchFollower }
正常值:分为队列,本地,远程和响应发送时间
- 请求在请求队列中等待的时间
我们来讨论Apache Kafka Producer For Beginners 2018
MBEAN NAME:kafka.network:type=RequestMetrics,name=RequestQueueTimeMs,request={Produce|FetchConsumer|FetchFollower}
- MBEAN NAME:kafka.network:type = RequestMetrics,name = RequestQueueTimeMs,request = { Produce | FetchConsumer | FetchFollower }
正常值:
- 请求在领导者处理的时间
MBEAN NAME: kafka.network:type=RequestMetrics,name=LocalTimeMs,request={Produce|FetchConsumer|FetchFollower}
- MBEAN NAME:kafka.network:type = RequestMetrics,name = LocalTimeMs,request = { Produce | FetchConsumer | FetchFollower }
正常值:
- 请求等待关注者的时间
MBEAN NAME: kafka.network:type=RequestMetrics,name=RemoteTimeMs,request={Produce|FetchConsumer|FetchFollower}
- MBEAN NAME:kafka.network:type = RequestMetrics,name = RemoteTimeMs,request = { Produce | FetchConsumer | FetchFollower }
NORMAL VALUE:当ack = -1时,产生请求非零
- 请求在响应队列中等待的时间
MBEAN NAME: kafka.network:type=RequestMetrics,name=ResponseQueueTimeMs,request={Produce|FetchConsumer|FetchFollower}
- MBEAN NAME:kafka.network:type = RequestMetrics,name = ResponseQueueTimeMs,request = { Produce | FetchConsumer | FetchFollower }
正常值:
- 是时候发送回复了
MBEAN NAME: Old consumer: kafka.consumer:type=ConsumerFetcherManager,name=MaxLag,clientId=([-.\w]+)
- MBEAN NAME:kafka.network:type = RequestMetrics,name = ResseseSendTimeMs,request = { Produce | FetchConsumer | FetchFollower }
正常值:
- 消费者落后于制片人的许多消息。由消费者发布,而不是经纪人。
- MBEAN NAME:老消费者:
-
MBEAN NAME: Old consumer: kafka.consumer:type=ConsumerFetcherManager,name=MaxLag,clientId=([-.\w]+)
- kafka.consumer:type = ConsumerFetcherManager,name = MaxLag,clientId = ([ - 。\ w ] + )
新消费者:
kafka.consumer:type=consumer-fetch-manager-metrics,client-id={client-id} Attribute: records-lag-max
- 网络处理器空闲的平均时间分数
-
MBEAN NAME: kafka.network:type=SocketServer,name=NetworkProcessorAvgIdlePercent
- MBEAN NAME:kafka.network:type = SocketServer,name = NetworkProcessorAvgIdlePercent
正常值:介于0和1之间,理想情况下> 0.3
- 请求处理程序线程空闲的平均时间部分
-
MBEAN NAME: kafka.server:type=KafkaRequestHandlerPool,name=RequestHandlerAvgIdlePercent
- MBEAN NAME:kafka.server:type = KafkaRequestHandlerPool,name = RequestHandlerAvgIdlePercent
正常值:介于0和1之间,理想情况下> 0.3
- 每个(用户,客户端ID),用户或客户端ID的带宽配额指标
-
MBEAN NAME: kafka.server:type={Produce|Fetch},user=([-.\w]+),client-id=([-.\w]+)
- MBEAN NAME:kafka.server:type = { Produce | Fetch } ,user = ([ - 。\ w ] + ),client-id = ([ - 。\ w ] + )
正常值:两个属性。throttle-time表示客户端被限制的时间量(ms)。理想情况下= 0.字节速率表示客户端的数据产生/消耗速率,以字节/秒为单位。对于(user,client-id)配额,指定了user和client-id。如果将per-client-id配额应用于客户端,则不指定用户。如果应用了每用户配额,则不指定client-id。
使用命令阅读Apache Kafka Operations
- 请求每个(用户,客户端ID),用户或客户端ID的配额指标
-
MBEAN NAME: kafka.server:type=Request,user=([-.\w]+),client-id=([-.\w]+)
- MBEAN NAME:kafka.server:type = Request,user = ([ - 。\ w ] + ),client-id = ([ - 。\ w ] + )
正常值:两个属性。throttle-time表示客户端被限制的时间量(ms)。理想情况下= 0. request-time表示代理网络和I / O线程处理来自客户端组的请求所花费的时间百分比。对于(user,client-id)配额,指定了user和client-id。如果将per-client-id配额应用于客户端,则不指定用户。如果应用了每用户配额,则不指定client-id。
- 请求免于限制
-
MBEAN NAME: kafka.server:type=Request
- MBEAN NAME:kafka.server:type = Request
NORMAL VALUE:exempt-throttle-time表示代理网络和I / O线程处理免于限制的请求所花费的时间百分比。
- ZooKeeper客户端请求延迟
-
MBEAN NAME: kafka.server:type=ZooKeeperClientMetrics,name=ZooKeeperRequestLatencyMs
- MBEAN NAME:kafka.server:type = ZooKeeperClientMetrics,name = ZooKeeperRequestLatencyMs
NORMAL VALUE:来自代理的ZooKeeper请求的延迟(以毫秒为单位)。
- ZooKeeper连接状态
-
MBEAN NAME: kafka.server:type=SessionExpireListener,name=SessionState
- MBEAN NAME:kafka.server:type = SessionExpireListener,name = SessionState
NORMAL VALUE:代理的ZooKeeper会话的连接状态,可能是Disconnected | SyncConnected | AuthFailed | ConnectedReadOnly | SaslAuthenticated | Expired之一。
湾 生产者/消费者/连接/流的通用监控指标
- 连接关闭率
描述:窗口中每秒关闭的连接。
-
MBEAN NAME: kafka.[producer|consumer|connect]:type=[producer|consumer|connect]-metrics,client-id=([-.\w]+)
- 连接的创建率
描述:窗口中每秒建立的新连接。
-
MBEAN NAME: kafka.[producer|consumer|connect]:type=[producer|consumer|connect]-metrics,client-id=([-.\w]+)
- 网络IO速率
描述:每秒所有连接上的平均网络操作(读取或写入)数。
-
MBEAN NAME: kafka.[producer|consumer|connect]:type=[producer|consumer|connect]-metrics,client-id=([-.\w]+)
- 传出字节速率
描述:每秒向所有服务器发送的平均传出字节数。
-
MBEAN NAME: kafka.[producer|consumer|connect]:type=[producer|consumer|connect]-metrics,client-id=([-.\w]+)
- 请求速率
描述:每秒发送的平均请求数。
阅读Apache Kafka Consumer | 卡夫卡消费者的例子
-
MBEAN NAME: kafka.[producer|consumer|connect]:type=[producer|consumer|connect]-metrics,client-id=([-.\w]+)
- 请求 - 大小 - 平均
描述:窗口中所有请求的平均大小。
-
MBEAN NAME: kafka.[producer|consumer|connect]:type=[producer|consumer|connect]-metrics,client-id=([-.\w]+)
- 请求 - 大小 - 最大
描述:窗口中发送的任何请求的最大大小。
-
MBEAN NAME: kafka.[producer|consumer|connect]:type=[producer|consumer|connect]-metrics,client-id=([-.\w]+)
- 传入的字节速率
描述:字节/秒读取所有套接字。
-
MBEAN NAME: kafka.[producer|consumer|connect]:type=[producer|consumer|connect]-metrics,client-id=([-.\w]+)
- 反应速度
描述:每秒发送的响应。
-
MBEAN NAME: kafka.[producer|consumer|connect]:type=[producer|consumer|connect]-metrics,client-id=([-.\w]+)
- 选择率
描述:I / O层检查每秒执行新I / O的次数。
-
MBEAN NAME: kafka.[producer|consumer|connect]:type=[producer|consumer|connect]-metrics,client-id=([-.\w]+)
- IO-等待时间-NS-平均
描述:I / O线程等待套接字准备读取或写入的平均时间长度(以纳秒为单位)。
-
MBEAN NAME: kafka.[producer|consumer|connect]:type=[producer|consumer|connect]-metrics,client-id=([-.\w]+)
- IO-等待比
描述:I / O线程等待的时间部分。
-
MBEAN NAME: kafka.[producer|consumer|connect]:type=[producer|consumer|connect]-metrics,client-id=([-.\w]+)
- IO-时间-NS-平均
描述:每次选择呼叫的I / O平均时长(以纳秒为单位)。
MBEAN NAME: kafka.[producer|consumer|connect]:type=[producer|consumer|connect]-metrics,client-id=([-.\w]+)
- IO比
描述:I / O线程花费在I / O上的时间的一部分。
MBEAN NAME: kafka.[producer|consumer|connect]:type=[producer|consumer|connect]-metrics,client-id=([-.\w]+)
- 连接数
描述:当前活动连接数。
MBEAN NAME: kafka.[producer|consumer|connect]:type=[producer|consumer|connect]-metrics,client-id=([-.\w]+)
- 成功认证率
描述:使用SASL或SSL成功验证的连接。
学习Apache Kafka Streams | 流处理拓扑
MBEAN NAME: kafka.[producer|consumer|connect]:type=[producer|consumer|connect]-metrics,client-id=([-.\w]+)
- MBEAN NAME:卡夫卡。[ producer | consumer | connect ] :type = [ producer | consumer | connect ] -metrics,client-id = ([ - 。\ w ] + )
- 失败的认证率
描述:身份验证失败的连接。
MBEAN NAME: kafka.[producer|consumer|connect]:type=[producer|consumer|connect]-metrics,client-id=([-.\w]+)
- MBEAN NAME:卡夫卡。[ producer | consumer | connect ] :type = [ producer | consumer | connect ] -metrics,client-id = ([ - 。\ w ] + )
C。生产者/消费者/连接/流的常见每个代理度量标准
- 传出字节速率
描述:节点每秒发送的平均传出字节数。
MBEAN NAME: kafka.producer:type=[consumer|producer|connect]-node-metrics,client-id=([-.\w]+),node-id=([0-9]+)
- MBEAN NAME:kafka.producer:type = [ consumer | producer | connect ] -node-metrics,client-id = ([ - 。\ w ] + ),node-id = ([ 0 - 9 ] + )
- 请求速率
描述:节点每秒发送的平均请求数。
MBEAN NAME: kafka.producer:type=[consumer|producer|connect]-node-metrics,client-id=([-.\w]+),node-id=([0-9]+)
- MBEAN NAME:kafka.producer:type = [ consumer | producer | connect ] -node-metrics,client-id = ([ - 。\ w ] + ),node-id = ([ 0 - 9 ] + )
- 请求 - 大小 - 平均
描述:节点窗口中所有请求的平均大小。
MBEAN NAME: kafka.producer:type=[consumer|producer|connect]-node-metrics,client-id=([-.\w]+),node-id=([0-9]+)
- MBEAN NAME:kafka.producer:type = [ consumer | producer | connect ] -node-metrics,client-id = ([ - 。\ w ] + ),node-id = ([ 0 - 9 ] + )
- 请求 - 大小 - 最大
描述:窗口中为节点发送的任何请求的最大大小。
MBEAN NAME: kafka.producer:type=[consumer|producer|connect]-node-metrics,client-id=([-.\w]+),node-id=([0-9]+) kafka.producer:type=[consumer|producer|connect]-node-metrics,client-id=([-.\w]+),node-id=([0-9]+)
- MBEAN NAME:kafka.producer:type = [ consumer | producer | connect ] -node-metrics,client-id = ([ - 。\ w ] + ),node-id = ([ 0 - 9 ] + )
- kafka.producer:type = [ consumer | producer | connect ] -node-metrics,client-id = ([ - 。\ w ] + ),node-id = ([ 0 - 9 ] + )
- 传入的字节速率
描述:节点每秒接收的平均响应数。
MBEAN NAME: kafka.producer:type=[consumer|producer|connect]-node-metrics,client-id=([-.\w]+),node-id=([0-9]+)
- MBEAN NAME:kafka.producer:type = [ consumer | producer | connect ] -node-metrics,client-id = ([ - 。\ w ] + ),node-id = ([ 0 - 9 ] + )
- 请求等待时间 - 平均
描述:节点的平均请求延迟(以ms为单位)。
MBEAN NAME: kafka.producer:type=[consumer|producer|connect]-node-metrics,client-id=([-.\w]+),node-id=([0-9]+)
- MBEAN NAME:kafka.producer:type = [ consumer | producer | connect ] -node-metrics,client-id = ([ - 。\ w ] + ),node-id = ([ 0 - 9 ] + )
- 请求延迟-MAX
描述:节点的最大请求延迟(以ms为单位)。
MBEAN NAME: kafka.producer:type=[consumer|producer|connect]-node-metrics,client-id=([-.\w]+),node-id=([0-9]+)
- MBEAN NAME:kafka.producer:type = [ consumer | producer | connect ] -node-metrics,client-id = ([ - 。\ w ] + ),node-id = ([ 0 - 9 ] + )
- 反应速度
描述:节点每秒发送的响应。
MBEAN NAME: kafka.producer:type=[consumer|producer|connect]-node-metrics,client-id=([-.\w]+),node-id=([0-9]+)
- MBEAN NAME:kafka.producer:type = [ consumer | producer | connect ] -node-metrics,client-id = ([ - 。\ w ] + ),node-id = ([ 0 - 9 ] + )
4.其他 - 卡夫卡监测
此外,强烈建议监视GC时间和其他统计信息以及CPU利用率,I / O服务时间等各种服务器统计信息。此外,建议监视消息/字节速率(全局和每个主题),请求率/大小/时间,在消费者方面,客户端的所有分区中的消息和最小获取请求率的最大延迟。
5.卡夫卡监测审计
但是,最终警报是数据传递的正确性。审计发送的每条消息都被所有消费者使用,并测量发生这种情况的滞后。此外,对于重要主题,如果在某个时间段内未达到某种完整性,则会发出警报。
看看Apache Kafka职业范围与薪资趋势
6. Kafka监测工具
基本上,具有JMX支持的监视工具应该能够监视Kafka集群。他们之中有一些是:
一个。check_kafka.pl
此Kafka监控工具执行完整的端到端测试,即它在Kafka中作为生产者插入消息,然后将其作为消费者提取。因此,我们可以说,在衡量服务时间的同时,这使我们的生活更轻松。
Kafka性能调优 - Kafka优化的方法
湾 KafkaOffsetMonitor
此Apache Kafka监控工具有助于监控Kafka使用者及其在队列中的位置(偏移)。它增强了我们对队列增长方式的理解,也说明了哪些消费者群体落后。
C。地洞
这是最聪明的工具IS Burrow,它是由LinkedIn人员开发的。此工具分析消费者偏移并滞后于一个时间窗口并确定消费者状态。因此,我们可以通过HTTP端点检索此状态,然后将其插入我们最喜欢的监视工具中。
d。雅虎的Kafka经理
但是,它执行一些基本的监控,它更像是一种管理工具。
所以,这就是Apache Kafka Monitoring。希望你喜欢我们的解释。
学习Apache Kafka + Spark Streaming Integration
7.结论 - Apache Kafka监控
因此,我们已经看到了如何详细监视Apache Kafka的概念。与此同时,我们讨论了不同的Kafka监控工具。此外,我们研究了Kafka Metrics和警报。