1.文档编写目的

Fayson在前面的文章介绍了《0374-如何在CDH集群中部署Kafka Manager》,本篇文章Fayson介绍另外一款的监控工具Kafka-eagle,它可以同时监控多个集群,监控集群中Topic的被消费情况(包含Lag产生、Offset的改变及Partition分布),同时也支持SQL查询。接下来Fayson主要介绍下在非安全环境下Kafka-eagle的安装及使用。

  • 内容概述

1.环境准备及安装

2.Kafka-eagle配置

3.Kafka-eagle使用

4.总结

  • 测试环境

1.CM和CDH版本为6.1.0

2.Kafka版本为2.0.0

3.Kafka-eagle版本为1.2.9

2.环境准备及说明

1.Kafka-eagle运行依赖Java运行环境,需要在部署节点安装JDK(支持JDK8+)

export JAVA_HOME=/usr/java/jdk1.8.0_131-clouderaexport PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar:$CLASSPATH

验证Java环境是否配置成功

2.Kafka-eagle对Kafka版本支持

更多信息可在github上查看:https://github.com/smartloli/kafka-eagle

3.Kafka-eagle下载,可以在github上下载源码编译或是官网下载已编译好版本,地址如下

源码下载地址:https://github.com/smartloli/kafka-eagle

编译好版本下载地址:https://github.com/smartloli/kafka-eagle-bin/archive/v1.2.9.tar.gz

4.修改CDH中Kafka服务JMX监听地址,默认监听地址为127.0.0.1

将Broker Java Options选项中“-Dcom.sun.management.jmxremote.host=127.0.0.1”删除,修改后的配置如下:

-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M -XX:MinMetaspaceFreeRatio=50 -XX:MaxMetaspaceFreeRatio=80 -XX:+DisableExplicitGC -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dcom.sun.management.jmxremote.local.only=true

保存配置并重启Kakfa服务,启动成功后在命令行验证监听地址是否由127.0.0.1修改为0.0.0.0

3.Kafka-eagle安装及配置

1.Fayson选择已编译好的版本进行安装部署,使用wget命令直接下载

2.将下载的v1.2.9.tar.gz解压并移到/opt/clouera目录下

[root@cdh3 ~]# tar -zxvf v1.2.9.tar.gz[root@cdh3 ~]# tar -zxvf kafka-eagle-bin-1.2.9/kafka-eagle-web-1.2.9-bin.tar.gz[root@cdh3 ~]# mv kafka-eagle-web-1.2.9/ /opt/cloudera/kafka-eagle[root@cdh3 ~]# ll /opt/cloudera/kafka-eagle/

3.配置Kafka-eagle环境变量,在/etc/profile文件中增加如下内容

export KE_HOME=/opt/cloudera/kafka-eagle/export export PATH=$KE_HOME/bin:$PATH

执行source /etc/profile命令使环境变量生效。

4.进入{KE_HOME}/conf目录下修改system-config.properties,内容如下:

#Fayson只有一个Kafka集群,所以注释了cluster2的配置kafka.eagle.zk.cluster.alias=cluster1cluster1.zk.list=cdh1:2181,cdh3:2181,cdh4:2181#cluster2.zk.list=xdn10:2181,xdn11:2181,xdn12:2181kafka.zk.limit.size=25#kafka-eagle管理平台web端口号kafka.eagle.webui.port=8048#kafka版本为2.0.0使用的kafka存储offsetcluster1.kafka.eagle.offset.storage=kafka#cluster2.kafka.eagle.offset.storage=zk#Kafka-eagle的监控指标及SQL功能开关kafka.eagle.metrics.charts=truekafka.eagle.sql.fix.error=truekafka.eagle.sql.topic.records.max=5000#删除Topic需要输入的tokenkafka.eagle.topic.token=keadmin#Kafka-eagle元数据库,默认为sqlitekafka.eagle.driver=com.mysql.jdbc.Driverkafka.eagle.url=jdbc:mysql://cdh4:3306/kafkaeagle?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNullkafka.eagle.username=rootkafka.eagle.password=123456

未列出的配置均使用默认配置即可。

5.配置中选择使用MySQL存储Kafka-eagle的元数据,需要在MySQL上创建一个kafkaeagle的数据库

6.进入{KE_HOME}/bin目录下启动kafka-eagle服务

[root@cdh3 bin]# pwd/opt/cloudera/kafka-eagle/bin[root@cdh3 bin]# chmod +x ke.sh [root@cdh3 bin]# ./ke.sh start

脚本执行成功显示如下:

脚本执行成功后,会提示kafka-eagle服务的访问地址及账号密码。

7.在浏览器输入http://test.cm.com:8048/ke

4.Kafka-eagle使用

1.输入账号密码登录Kafka-eagle,主页面总览Kafka集群的Brokers、Topics、Zookeepers及ConsumerGroups等信息

2.在管理界面行创建一个测试Topic

创建成功

CM上也可以看到创建成功的Topic

3.Kafka-eagle提供Mock功能,可以模拟向指定的Topic发送消息

4.查看Kafka集群所有Topic

点击Topic Name查看Topic的Partition、Leader、Replicas及ISR列表

5.Consumers下可以看到所有Group的消费Topic的情况及消费进度

点击Group名称查看详情

点击“Pending”查看具体Topic消费情况

6.通过Metrics可以看到集群的Brokers、Kafka和Zookeeper的各项监控指标

7.可以通过Kafka-eagle配置告警,关于消息消费延迟、Kafka和Zookeeper服务状告警,前提是需要配置邮箱服务器信息

8.系统管理功能用户、角色、系统功能管理

5.总结

1.相比之前介绍的Kafka Manager工具Fayson更喜欢Kafka-eagle,界面简洁操作方便

2.Kafka-eagle支持SQL查询,但Fayson使用的版本有个sql.js加载时报错,导致无法使用,暂时没有截图演示功能。

3.Kafka-eagle管理Kafka集群是通过JMX获取集群的信息,所以要确保Kafka的JMX已启用(CDH默认已启用),在C6版本JMX监听的IP地址为127.0.0.1,需要修改监听的IP地址。

4.支持邮件、微信和钉钉告警,Consumer group对指定topic消费滞后告警,集群Brokers和Zookeeper服务异常告警。

5.注意cluster2.kafka.eagle.offset.storage配置,Kafka较早版本(0.8.2.x)offset是存在Zookeeper的。

更多功能可参考官方文档:https://ke.smartloli.org/

在安装测试过程总使用的Kafka自带的性能测试脚本生成和消费消息

[root@cdh05 lib]# more /root/client.properties client.id=testgroupbootstrap.servers=cdh2:9092,cdh3:9092,cdh4:9092max.request.size=4192256

生产消息脚本

/opt/cloudera/parcels/CDH/lib/kafka/bin/kafka-producer-perf-test.sh --topic test_topic_eagle --num-records 1000 --producer.config /root/client.properties --throughput 10 --record-size 1024

消费消息脚本

/opt/cloudera/parcels/CDH/lib/kafka/bin/kafka-consumer-perf-test.sh --topic test_topic_eagle --messages 1000 --fetch-size 10000 --broker-list cdh2:9092,cdh3:9092,cdh4:9092

基于jmx监控kafka_0542-6.1.0-非安全环境下Kafka管理工具Kafka Eagle安装使用相关推荐

  1. 基于Android9的非root环境下frida-gadget持久化

    基于Android9的非root环境下frida持久化 博客: http://www.zhuoyue360.com 参考: 小肩膀安卓系统沙箱课程 https://bbs.pediy.com/thre ...

  2. spring boot api文档_精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用

    一.什么是 RestTemplate? RestTemplate是执行HTTP请求的同步阻塞式的客户端,它在HTTP客户端库(例如JDK HttpURLConnection,Apache HttpCo ...

  3. CentOS 6.0+Nagios中文版+PNP+Nagios Web管理工具nagiosQL中文版

    战CentOS 6.0+Nagios中文版+PNP+Nagios Web管理工具nagiosQL中文版 2011-11-15 17:17:56|  分类: rhel_监控 |  标签: |字号大中小  ...

  4. 非域环境下使用证书部署数据库(SqlServer2008R2)镜像

    非域环境下使用证书部署数据库(SqlServer2008R2)镜像 前言 部署数据库镜像一般有两种方式域环境下部署http://liulike.blog.51cto.com/1355103/33918 ...

  5. 非域环境下搭建文件服务器,非域环境下SQL Server搭建Mirror(镜像)的详细步骤...

    原标题:非域环境下SQL Server搭建Mirror(镜像)的详细步骤 1.测试验证环境 服务器角色 机器名 IP SQL Server Ver 主体服务器 WIN-TestDB4O 172.83. ...

  6. 非Root环境下安卓实现全屏,屏蔽下方虚拟按键:左键、右键。较新安卓系统无法屏蔽Home键。源代码例子

    非Root环境下安卓实现全屏,屏蔽下方虚拟按键:左键.右键.较新安卓系统无法屏蔽Home键. 全屏后,用户上划之后点击虚拟按键如图所示: 代码中分三部分: 1.隐藏屏幕下方的虚拟按键,并且全屏.   ...

  7. 专注于非越狱环境下iOS应用逆向研究,从dylib注入,应用重签名到App Hook

    专注于非越狱环境下iOS应用逆向研究,从dylib注入,应用重签名到App Hook. 注意!本文所有操作均在以下环境下成功进行,不同平台或环境可能存在某些问题,欢迎大家在issue中提出问题以及相互 ...

  8. 【K8S 二】搭建Docker Registry私有仓库(自签发证书+登录认证)(K8S和非K8S环境下)

    目录 生成证书(更新:2022-08-02) 单SAN(Subject Alternative Name)的场景 多SAN(Subject Alternative Name)场景 创建openssl配 ...

  9. 缺少nst linux.mbr文件,用EasyBCD2.0在Windows环境下引导Linux启动

    用EasyBCD2.0在Windows环境下引导Linux启动 以在Win7环境下用EasyBCD2.0.2引导Ubuntu启动为例(Ubuntu安装在Win7之前,倘若反了进不去Win7,可以用Wi ...

最新文章

  1. 用unescape反编码得出汉字
  2. 分布式应用架构中的数据传输对象(DTO)
  3. 点开那些优秀的硕博士们的朋友圈,他们都有这些特点!
  4. api 获取网络使用情况_您的API是什么情况?
  5. C++ 移动和获取文件读写指针
  6. [Ext JS6]包-Package
  7. split用法与图像预处理
  8. python pytorch自定义_Pytorch 实现自定义参数层的例子
  9. owasp testing guide 2014 中文
  10. Jmeter报文体包含过大附件导致请求报文发送失败的解决办法
  11. 重学Es6 Promise
  12. POI操作Excel详解,HSSF和XSSF两种方式
  13. 我爱生煎包!--上海生煎
  14. 在浏览器上播放虚幻引擎:像素流前端教程
  15. Ubuntu系统安装Ghostscript
  16. 在哪能查到英文论文?
  17. 【信号与系统】拉普拉斯变换
  18. Cloud Chou's Tech Blog编译相关
  19. 有什么软件android跟电脑连接无线,手机电脑连接的软件有哪些(安卓手机连接电脑的方法)...
  20. 本科操作系统学习笔记(上篇)

热门文章

  1. [ASP.NET 控件实作 Day12] 继承 TBActiveX 重新改写 TBMediaPlayer 控件
  2. git回退历史版本无法上传_Git系列教程(二):版本库中添加文件、版本回退
  3. 详解:设计模式之-适配器模式
  4. 同步关键词synchronized
  5. python入坑指南_Rust入坑指南:万物初始
  6. 计算机一级考试word题主要,2017年计算机一级考试word题及答案
  7. linux kvm查看线程状态,kvm线程-005-线程状态-THREAD_JUST_BORN
  8. tkmybatis 子查询_真假童子命符箓道长教你如何查询
  9. Java System类loadLibrary()方法与示例
  10. java 实现 堆排序算法_C程序实现堆排序算法