首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

大数据消息队列选型-kafka系列之监控(六)

生产者

broker

消费者

Kafka集群的监控方案主要包括以下几种:

1. JMX监控

原理:Kafka提供了JMX(Java Management Extensions)接口,允许通过JMX来监控和管理Kafka集群。

实现方式:

Kafka需要开启JMX端口,通常通过在Kafka的启动脚本中添加JMX相关参数来实现。

可以使用JConsole、Java Mission Control等JMX客户端工具连接到Kafka Broker的JMX端口,并监控各种关键指标,如吞吐量、延迟、磁盘使用率、网络连接数等。

2. 第三方监控工具

Prometheus:一个流行的开源监控解决方案,可用于收集和存储Kafka的指标数据,并配合Grafana进行展示和报警。Prometheus提供了强大的查询语言和灵活的报警机制,非常适合用于监控Kafka集群的性能和健康状况。

Grafana:一个功能强大的数据可视化平台,可与Prometheus等数据源集成,帮助用户创建自定义的Kafka监控仪表盘。通过Grafana,用户可以直观地查看Kafka集群的各项指标,并及时发现潜在问题。

Burrow:一个专门用于监控Kafka消费者偏移量的工具,可以及时检测消费者组的偏移量情况,发现消费者延迟和偏移量超限等问题。这对于确保Kafka消息的正确消费和及时处理至关重要。

Confluent Control Center:由Confluent官方提供的商业监控工具,提供了集中化的Kafka集群监控、性能指标和报警功能。它提供了丰富的监控指标和直观的界面,方便用户快速了解Kafka集群的状态和性能。

Kafka Manager(CMAK):一个开源的Kafka集群管理工具,提供了丰富的监控和管理功能。通过Kafka Manager,用户可以轻松地查看集群状态、管理主题、消费者、偏移量等信息,并可以执行首选副本选举、分区重新分配等操作。此外,Kafka Manager还支持JMX轮询,可以实时监控Kafka集群的性能指标。

3. 自定义监控脚本

原理:通过编写自定义的脚本(如Java或Shell脚本)来抓取和分析Kafka的相关指标数据,并进行报警或日志记录。

实现方式:

使用Kafka的Java客户端或相关API来获取集群的监控数据。

根据业务需求编写脚本逻辑,对监控数据进行处理和分析。

配置脚本的定时执行和报警机制,以便在发现问题时及时通知相关人员。

4.JMX监控之Kafka-Eagle监控

Kafka-Eagle框架可以监控Kafka集群的整体运行情况,在生产环境中经常使用,Kafka-Eagle的安装依赖于MySQL,MySQL主要用来存储可视化展示的数据。如果集群中之前安装过MySQL可以跨过该步。

注意:修改之后在启动Kafka之前要分发之其他节点

Kafka-Eagle安装

解压到本地

tar -zxvf kafka-eagle-bin-2.0.8.tar.gz

tar -zxvf efak-web-2.0.8-bin.tar.gz -C /opt/module/修改名称 mv efak-web-2.0.8/ efak

修改配置文件 /opt/module/efak/conf/system-config.properties

vim system-config.properties

####################################### multi zookeeper & kafka cluster list# Settings prefixed with 'kafka.eagle.' will be deprecated, use 'efak.' instead######################################efak.zk.cluster.alias=cluster1cluster1.zk.list=hadoop102:2181,hadoop103:2181,hadoop104:2181/kafka

####################################### zookeeper enable acl######################################cluster1.zk.acl.enable=falsecluster1.zk.acl.schema=digestcluster1.zk.acl.username=testcluster1.zk.acl.password=test123

####################################### broker size online list######################################cluster1.efak.broker.size=20

####################################### zk client thread limit######################################kafka.zk.limit.size=32####################################### EFAK webui port######################################efak.webui.port=8048

####################################### kafka jmx acl and ssl authenticate######################################cluster1.efak.jmx.acl=falsecluster1.efak.jmx.user=keadmincluster1.efak.jmx.password=keadmin123cluster1.efak.jmx.ssl=falsecluster1.efak.jmx.truststore.location=/data/ssl/certificates/kafka.truststorecluster1.efak.jmx.truststore.password=ke123456

####################################### kafka offset storage####################################### offset保存在kafkacluster1.efak.offset.storage=kafka

####################################### kafka jmx uri######################################cluster1.efak.jmx.uri=service:jmx:rmi:///jndi/rmi://%s/jmxrmi

####################################### kafka metrics, 15 days by default######################################efak.metrics.charts=trueefak.metrics.retain=15

####################################### kafka sql topic records max######################################efak.sql.topic.records.max=5000efak.sql.topic.preview.records.max=10

####################################### delete kafka topic token######################################efak.topic.token=keadmin

####################################### kafka sasl authenticate######################################cluster1.efak.sasl.enable=falsecluster1.efak.sasl.protocol=SASL_PLAINTEXTcluster1.efak.sasl.mechanism=SCRAM-SHA-256cluster1.efak.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="kafka" password="kafka-eagle";cluster1.efak.sasl.client.id=cluster1.efak.blacklist.topics=cluster1.efak.sasl.cgroup.enable=falsecluster1.efak.sasl.cgroup.topics=cluster2.efak.sasl.enable=falsecluster2.efak.sasl.protocol=SASL_PLAINTEXTcluster2.efak.sasl.mechanism=PLAINcluster2.efak.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="kafka" password="kafka-eagle";cluster2.efak.sasl.client.id=cluster2.efak.blacklist.topics=cluster2.efak.sasl.cgroup.enable=falsecluster2.efak.sasl.cgroup.topics=

####################################### kafka sqlite jdbc driver address####################################### 配置mysql连接efak.driver=com.mysql.jdbc.Driverefak.url=jdbc:mysql://hadoop102:3306/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNullefak.username=rootefak.password=000000

####################################### kafka mysql jdbc driver address#######################################efak.driver=com.mysql.cj.jdbc.Driver#efak.url=jdbc:mysql://127.0.0.1:3306/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull#efak.username=root#efak.password=123456

添加环境变量

启动

注意:启动之前需要先启动ZK以及KAFKA

Kafka-Eagle页面操作

1)登录页面查看监控数据

#kafka监控 #Eagle

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OjDqFUYeNFDut0Hvk5eh1KSA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券