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和警報。



