多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] # KafkaOffsetMonitor 下载地址: https://github.com/quantifind/KafkaOffsetMonitor/releases/tag/v0.2.1 最简单的使用方式是从Github上下载一个最新的jar,上传到某服务器上,然后执行一句命令就可以运行起来。但是在使用过程中有可能会发现页面反应缓慢或者无法显示相应内容的情况。据说这是由于jar包中的某些js等文件需要连接到网络,或者需要翻墙导致的。网上找的一个修改版的KafkaOffsetMonitor对应jar包,可以完全在本地运行,经过测试效果不错。下载地址是:http://pan.baidu.com/s/1ntzIUPN ## 安装 KafkaOffsetMonitor的安装部署较为简单,所有的资源都打包到一个JAR文件中了,因此,直接运行即可,省去了我们去配置。这里我们可以新建一个目录单独用于Kafka的监控目录, 我这里新建一个kafka_monitor文件目录,然后我们在准备启动脚本,脚本内容如下所示: ~~~ #! /bin/bash java -cp KafkaOffsetMonitor-assembly-0.2.0.jar \ com.quantifind.kafka.offsetapp.OffsetGetterWeb \ --zk master:2181 \ --port 9088 \ --refresh 10.seconds \ --retain 1.days ~~~ 解释以下这条启动命令的含义,首先我们需要指明运行Web监控的类,然后需要用到ZooKeeper,所有要填写ZK集群信息,接着是Web运行端口,页面数据刷新的时间以及保留数据的时间值 ## 页面 访问`0.0.0.0:9088` **topic的所有partiton消费情况列表** ![](https://box.kancloud.cn/bde3073be417a3770d9502c1d7536254_1267x661.png) 以上图中参数含义解释如下: * topic:创建时topic名称 * partition:分区编号 * offset:表示该parition已经消费了多少条message * logSize:表示该partition已经写了多少条message * Lag:表示有多少条message没有被消费。 * Owner:表示消费者 * Created:该partition创建时间 * Last Seen:消费状态刷新最新时间。 **kafka正在运行的topic** `http://0.0.0.0:9088/#/activetopicsviz` **kafka集群broker列表** `http://0.0.0.0:9088/#/clusterviz` **kafka集群topic列表** `http://0.0.0.0:9088/#/topics` **topic的所有partiton消费情况列表** `http://0.0.0.0:9088/#/group/console-consumer-94689` **查看consumers消费情况** 在Topic List选项卡中,我们可以看到对应的topic 我们点进去一个topic,然后我们用命令行创建个消费者来监听这个topic 点开后,能看到有一个console-consumer正在消费该topic ![](https://box.kancloud.cn/d691aa9b4fac36002b7464573f0480a9_517x378.png) 继续进入该Consumer,可以查看该Consumer当前的消费状况 ![](https://box.kancloud.cn/703024e789c6f3a5c826b722aa24227a_887x713.png) 这张图片的左上角显示了当前Topic的生产速率,右上角显示了当前Consumer的消费速率。 图片中还有三种颜色的线条,蓝色的表示当前Topic中的Message数目,灰色的表示当前Consumer消费的offset位置,红色的表示蓝色灰色的差值,即当前Consumer滞后于Producer的message数目。 **各partition中的message消费情况** ![](https://box.kancloud.cn/06c122d515519888bbada420c0ed9a92_875x466.png) 从上图可以看到,当前有3个Partition,每个Partition中的message数目分布很不均匀。这里可以与接下来的自定义Producer的情况进行一个对比。 注意事项:   注意这里有一个坑,默认情况下Producer往一个不存在的Topic发送message时会自动创建这个Topic。由于在这个封装中,有同时传递message和topic的情况,如果调用方法时传入的参数反了,将会在Kafka集群中自动创建Topic。在正常情况下,应该是先把Topic根据需要创建好,然后Producer往该Topic发送Message,最好把Kafka这个默认自动创建Topic的功能关掉。   那么,假设真的不小心创建了多余的Topic,在删除时,会出现“marked for deletion”提示,只是将该topic标记为删除,使用list命令仍然能看到。如果需要调整这两个功能的话,在server.properties中配置如下两个参数: | 参数 | 默认值 | 作用 | | --- | --- | --- | | auto.create.topics.enable | true | 在服务器上启用主题的自动创建 | | delete.topic.enable | false | 启用删除主题。 如果关闭此配置,则通过管理工具删除主题将不起作用 | # kafka Tool ## 安装 mac ~~~ brew cask install kafka-tool ~~~ windows,linux也有 官网:http://www.kafkatool.com/ ## 界面 **连接** ![](https://box.kancloud.cn/ffa21d81bd65655f74cfafd4a86a4b7b_799x251.png) **管理连接,可重连** ![](https://box.kancloud.cn/244c49df3f96b2159423c928499b2da9_246x138.png) **设置编码** ![](https://box.kancloud.cn/3b5a74f389cbfb7be0a8d755dfd9cb31_1062x361.png) **查看消息** ![](https://box.kancloud.cn/58974f483cda50e1ffc9bcd6646697f7_1030x762.png) **选择编码** ![](https://box.kancloud.cn/b942768d034cb6d64c9ecb5a0a1cfc64_826x572.png) # kafka-manager ## 安装 ~~~ 下载编译 git clone https://github.com/yahoo/kafka-manager cd kafka-manager #下面的命令将创建一个zip文件,可用于部署应用程序 #sbt配置下镜像 ./sbt clean dist #成功后页面上信息会显示zip文件在哪里 #解压缩生成的zip文件,并将工作目录更改为它后,您可以运行服务 ~~~ 这边也有编译好的 https://pan.baidu.com/s/1jIE3YL4 mac没有sbt的话就`brew install`下 tips: 使用sbt编译打包的时候时间可能会比较长,如果你hang在 Loading project definition from kafka-manager/project 可以修改project/plugins.sbt中的LogLevel参数 将logLevel := Level.Warn修改为logLevel := Level.Debug 解压 ~~~ unzip kafka-manager-1.3.0.8.zip -d /usr/local cd /usr/local/kafka-manager-1.3.0.8 ~~~ 修改配置 `conf/application.properties` ~~~ # 如果zk是集群,这里填写多个zk地址 kafka-manager.zkhosts="localhost:2181" ~~~ 启动 ~~~ bin/kafka-manager ~~~ kafka-manager 默认的端口是9000,可通过 -Dhttp.port,指定端口; `-Dconfig.file=conf/application.conf`指定配置文件: ~~~ nohup bin/kafka-manager -Dconfig.file=conf/application.conf -Dhttp.port=9080 & ~~~ 同样,如果java不在您的路径中,或者您需要针对不同版本的java运行,请添加-java-home选项,如下所示: ~~~ kafka-manager -java-home /usr/local/oracle-java-8 ~~~ ## 页面 **新建 Cluster** ![](https://box.kancloud.cn/6a762f64dd859d7097c0713442d67d44_1070x848.png) 然后点下面的save就可以了,回到外面就能看到 **创建新的topic** ![](https://box.kancloud.cn/12a3cdf554dfd5012b5165459900f939_1598x1138.png) **查看topic** ![](https://box.kancloud.cn/3ee1b40d61fd3ea015ba657696abb7f2_2630x908.png) **消费主题视图** ![](https://box.kancloud.cn/79608ad5fcec6e9f846a92fdd3159cce_853x542.png) **Brokers列表** ![](https://box.kancloud.cn/08394b75eb06cafde451e37faafb9571_1358x722.png) **具体Broker** ![](https://box.kancloud.cn/b6e583b8dd87da5a2020314619dbeab1_1802x878.png)