一文聊透如何监控 Kafka 服务
今天我们来讲解几款 Kafka 常用可视化监控工具,主要有以下几个 「JConsole」、「Kafka Manager」、「Kafka Offset Explorer」、「KafkaOffsetMonitor」、「LogiKM」。大家好,我是华仔, 又跟大家见面了。
对于 Kafka 来说,监控始终是一个难题。目前,没有一款免费监控软件能够满足大部分用户需求,这些监控软件各有特色但都不够全面。
今天我们来讲解几款 Kafka 常用可视化监控工具,主要有以下几个 「JConsole」、「Kafka Manager」、「Kafka Offset Explorer」、「KafkaOffsetMonitor」、「LogiKM」。
这里说明下,第一个「Jconsole」是基于 JMX 的可视化监控管理工具,安装好 JDK 之后,Java 就提供了 JConsole 客户端工具,利用它可以监控 Kafka 的各项指标。其他几个都是专门用来 Kafka 集群管理与监控的。
下面分别介绍下这几款监控工具的使用。
一、JConsole
这里先简单的介绍一下 JMX,全称:Java Manangement Extensions。JMX 可以管理、监控正在运行中的 Java 程序,常用来管理「线程」、「内存」、「日志Level」、「服务重启」、「系统环境」等,由于 kafka 底层也是 基于 Java,所以也可以使用 JMX 标准来管理和监控 Kafka。
JConsole 是一种基于 JMX 的可视化监控和管理工具,从 Java 5 开始被引入, 用来监控 VM,总体来说, 它是社区自带的一个小工具,对于一般简单的监控场景,它还能应付,但是它毕竟功能有限,复杂的监控整体解决方案,还是要依靠监控框架。
export JMX_PORT="9999"
此时会调起 JConsole 的启动界面。
当弹出 "安全连接失败" 提示框,选择 "不安全的连接" 按钮, 进入 JConsole 监控的主界面, 如下图所示:
二、KafkaManager
Kafka Manager 是 yahoo 在 2 年开源的一款 Kafka 监控软件,底层使用 Scala 语言编写,用来管理和监控 Kafka 集群。
这款软件是众多 Kafka 监控软件中的翘楚,无论是界面展示内容的丰富程度,还是管理集群功能的全面性,Kafka Manager 都数一数二。
目前 Kafka Manager 已经支持监控新版本 Consumer,如果用户在使用 Kafka Manager 时无法看到新版本的 Consumer Group 信息,那么就需要检查一下是否使用了过旧版本的 Kafka Manager。
这个管理工具可以很容易地发现分布在集群中的哪些 topic 分布不均匀,或者是分区在整个集群分布不均匀的的情况。
它支持管理多个集群、选择副本、副本重新分配以及创建 Topic。同时,这个管理工具也是一个非常好的可以快速浏览这个集群的工具,有如下功能:
kafka-manager 项目地址:
本文我们使用版本:kafka-manager-3.0.0.5.zip,项目已改名位 CMAK,其安装和配置非常简单,可以按照下面的步骤配置 Kafka Manager。
1、在启动 Kafka 集群的命令脚本中,增加 JMX 的相关参数,否则无法使用客户端工具管理和监控 Kafka 集群。这里我们以本地虚拟机为例。
2、修改 Kafka-run-class.sh 文件,找到 JMX settings 的配置位置,增加 JMX Server 的配置信息。
#此处可以改为自己的hostname-Djava.rmi.server.hostname=LAPTOP-3B77RHGG
3、修改 kakfa-server-start.sh 脚本的 JXM_PORT 配置,如下图:
export JMX_PORT="9999"
4、启动 kafka。
bin/kafka-server-start.sh config/server.properties &
5、下载 Kafka Manager,并解压到 /home/wangjianghua/src/ 目录下。
# github地址下载版本 kafka-manager-3.0.0.5wget解压文件unzip cmak-3.0.0.5.zip
6、修改配置,进入 Kafka Manager 的 conf 目录,修改 application.conf 文件。
# 这里是指定 zookeeper 集群的地址,如果有多个,逗号隔开cmak.zkhosts="localhost:2181"
7、启动 Kafka Manager 。
# nohup 方式nohup bin/cmak &# 指定参数方式启动默认启动端口 9000nohup bin/cmak -Dconfig.file=conf/application.conf -Dhttp.port=9000 &
8、启动成功后,输出如下日志信息。
我们使用 bin/cmak 这个命令来启动,会使用默认配置文件和端口号9000。
启动完毕后可以查看端口是否启动,由于启动过程需要一段时间,端口起来的时间可能会延后。
从日志中可以看出, Kafka Manager 将运行在 9000 端口上,使用ip地址:端口访问测试。
可以看到,此时已经启动成功了。
如果报如下错误,请升级jdk版本到11。
1、测试 KafkaManager
(1)新建 Cluster
点击【Cluster】>【Add Cluster】打开如下添加集群的配置界面:
输入集群的名字(如Kafka-Cluster-1)和 Zookeeper 服务器地址(如localhost:2181),选择最接近的Kafka版本(如2.7)
其他 broker 相关的配置可以根据自己需要进行配置,默认情况下,点击【保存】时,会提示几个默认值为1的配置错误,需要配置为>=2的值。提示如下:
新建完成后,运行界面如下:
(2)Topic List
2、管理 KafkaManager
(1)创建 Topic
点击【Topic】>【Create】可以方便的创建并配置主题。如下图所示:
(2)查看 Topic
点击【topic】下面的 topic 名称,即可查看对应 topic 信息。
三、Kafka Offset Explorer
Kafka Tool 是用来管理和使用 Kafka 集群的图形应用程序。提供了一种直观的界面,让用户可以快速查看 Kafka 集群中的对象及集群主题中存储的信息,关键功能如下:
从 Kafka Tool 官网直接下载 Kafka Offset Explorer 2.3.2 版本,下载完成后,直接按照启动即可。
添加一个 Kafka Cluster 集群并测试,直接连接测试如下:
单击“ 是 ”进入 Kafka 集群的。
通过上面图示我们可以看到 Kafka 集群的 Broker 信息、 Topics 信息以及 Consumers 信息。
现在我们来创建一个 Topic。
1、 点击 "Browers" 集群中的 "Topics" 节点,并在右边的界面中单击。
按钮,或者右击 "Topics" 节点2、 输入 Topic 名称、分区数、每个分区的副本数,如下图所示:3、 单击 "Add" 按钮,成功创建 Topic,如下图所示:
4、现在我们来用该工具来接收 message2 上的消息数据。,选择刚创建的主题 message2,并在右边的窗口选择 "Data" 选项卡,如下图所示:
5、 启动一个 Kafka Producer 命令行终端,发送一些消息,如下图所示:
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic message2
6、这里的数据格式默认是 "Byte Array",可以在 Properties 的设置中将其修改为 String,并单击 "Update" 按钮,如下图所示:
7、再次回到>
java cp assemblyjar \ \offsetStorage kafka \zk localhost \port \refresh seconds \retain ays
这里简单介绍下命令的含义:
打开浏览器访问 8080 端口,就可以打开 KafkaOffsetMonitor 的,如下图所示:
然后选择 "Topic List" 选项卡,就可以监控某个 Topic 中的具体消费者消息,如下图所示:
五、LogiKM
最后给大家推荐一款非常实用牛逼的监控工具, 它是滴滴开源的号称 "东半球最简单易用的一站式云原生实时流数据平台"。
可以点击官方进行学习:。
开发文档如下:。
本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载者并注明出处:https://www.jmbhsh.com/zixun/36026.html