Kafka作为分布式消息系统以其轻量级、可扩展、高通吐等特点而得到广泛应用,最近在项目中用Kafka作为中间件进行数据交互。为了监控Kafka的运行情况,在网上找了个开源的Kafka监控工具Kafka-manager对Kafka集群监控。为什么选用Kafka-manager而不是KafkaOffsetMonitor、Kafka Web Conslole呢?可以看https://blog.csdn.net/qq_33314107/article/details/81099091中的比较。另外本人自己也下了个KafkaOffsetMonitor试用,真的不是很好用,大家也可以自己试试。
Kafka发送接收消息实例
#Kafka安装部署
Kafka安装部署比较简单,直接从官网下载源码包解压后就可以直接使用,本例中共有三个节点安装Kafka,hostname分别为node1、node2、node4,zookeeper和Kafka端口均为默认端口。
#zookeeper启动(假设已进入Kafka目录)
bin/zookeeper-server-start.sh config/zookeeper.properties
#Kafka启动
bin/Kafka-server-start.sh config/server.properties
#Kafka主题创建(创建名为Kafka_monitor的主题)
bin/Kafka-topics.sh --create --zookeeper node1:2181,node2:2181,node4:2181 --replication-factor 1 --partitions 60 --topic Kafka_monitor
#用python持续写入json信息到Kafka_monitor主题
from
#用Python创建消费者持续消费Kafka_monitor中的消息
from Kafka import KafkaConsumer
import json
consumer = KafkaConsumer(group_id= 'group4', bootstrap_servers= ['node1:9092'], value_deserializer=lambda m: json.loads(m.decode('ascii')))
consumer.subscribe(topics= ['Kafka_monitor'])
for msg in consumer:
print(msg)
Kafka-manager监控
直接从github下载的Kafka-manager工程需要经过sbt编译打包才能试用,为了省去编译的麻烦,可以去https://blog.wolfogre.com/posts/Kafka-manager-download/这一页面中直接下载打包好的Kafka-manager,解压后就可以开始试用。
在解压后的conf目录中打开 application.conf文件,修改其中的配置信息,修改Kafka-manager.zkhosts为自己的主机地址和端口。
#在解压的目录中启动Kafka-manager
bin/Kafka-manager
默认情况下监控打开的默认端口为9000,启动完成后打开浏览器范围监控页面如下图:
点击Cluster菜单下Add Cluster进行集群信息添加:
这时回到首页,可以看到刚刚新增的Kafka集群已经显示到页面中:
点击集群名称[test],可以进入集群的详细监控页面:
点击页面头部的的broker、topic、consumers等条目,可以显示集群的具体信息。
启动Kafka中生产者和消费者两个简单的脚本,监控页面中的消费者信息如下如所示。
其他监控类似,再次不再赘述。
Reference
https://blog.csdn.net/luanpeng825485697/article/details/81036028
https://blog.csdn.net/qq_33314107/article/details/81099091
https://blog.csdn.net/yuan_xw/article/details/79188565
https://blog.wolfogre.com/posts/kafka-manager-download/
本篇内容在本人个人公众号上也已发布,欢迎关注本人微信公众号“勤菜鸟”。