Kafka-Eagle简介

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

Kafka Eagle是什么

Kafka Eagle是一款用于监控和管理Apache Kafka的完全开源系统,目前托管在Github,由笔者和一些开源爱好者共同维护。它提供了完善的管理页面,很方面的去管理和可视化Kafka集群的一些信息,例如Broker详情、性能指标趋势、Topic集合、消费者信息等。

同时,兼容若干Kafka版本,例如0.8,0.9,...,以及截止到2019-12-16最新发布的2.4.0版本

Kafka Eagle包含哪些功能

Kafka Eagle监控管理系统,提供了一个可视化页面,使用者可以拥有不同的角色,例如管理员、开发者、游客等。不同的角色对应不同的使用权限。在知道了Kafka Eagle的作用之后,那么它包含哪些功能呢?核心功能如下所示:

数据面板

负责展示Kafka集群的Broker数、Topic数、Consumer数、以及Topic LogSize Top10和Topic Capacity Top10数据。

主题

该模块包含主题创建、主题管理、主题预览、KSQL查询主题、主题数据写入、主题属性配置等。

消费者组

该模块包含监控不同消费者组中的Topic被消费的详情,例如LogSize、Offsets、以及Lag等。同时,支持查看Lag的历史趋势图。

集群管理

该模块包含Kafka集群和Zookeeper集群的详情展示,例如Kafka的IP和端口、版本号、启动时间、Zookeeper的Leader和Follower。同时,还支持多Kafka集群切换,以及Zookeeper Client数据查看等功能。

指标监控

该模块包含监控Kafka集群和Zookeeper集群的核心指标,包含Kafka的消息发送趋势、消息大小接收与发送趋势、Zookeeper的连接数趋势等。同时,还支持查看Broker的瞬时指标数据。

告警

该模块包含告警集群异常和消费者应用Lag异常。同时,支持多种IM告警方式,例如邮件、钉钉、微信、Webhook等。

系统管理

该模块包含用户管理,例如创建用户、用户授权、资源管理等

数据大屏

该模块包含展示消费者和生产者当日及最近7天趋势、Kafka集群读写速度、Kafka集群历史总记录等。

Kafka Eagle部署

Kafka Eagle安装部署非常方便,可以从官网下载最新版本进行安装,或者从Github下载最新的Release源代码进行编译安装。

例如,从官网下载Kafka Eagle安装包,按如下命令操作即可

下载包安装

# 解压安装包
tar xf kafka-eagle-bin-2.0.3.tar.gz -C /opt/
mv /opt/kafka-eagle-bin-2.0.3/kafka-eagle-web-2.0.3-bin.tar.gz ./
rm -rf /opt/kafka-eagle-bin-2.0.3/
tar xf kafka-eagle-web-2.0.3-bin.tar.gz -C /opt/ 然后,是配置环境变量,这里需要注意的是,KE_HOME和JAVA_HOME均需在环境变量文件中进行配置(建议在~/.bash_profile文件中进行设置好,否则,可能在启动的时候抛出环境变量找不到的错误),配置内容如下:
# 配置JAVA_HOME和KE_HOME:
vi ~/.bash_profile
export JAVA_HOME=/usr/local/jdk1.8.0_151
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export KE_HOME=/opt/kafka-eagle-web-2.0.3
export PATH=$PATH:$JAVA_HOME/bin:$KE_HOME/bin

配置

接下来是配置Kafka Eagle的系统文件,这里需要注意一些事项,配置内容如下:

# 设置Kafka多集群,这里只需要设置Zookeeper,
# 系统会自动识别Kafka Broker
######################################
kafka.eagle.zk.cluster.alias=cluster1
# cluster1.zk.list=127.0.0.1:2181
cluster1.zk.list=zk01:2181,zk02:2181,zk03:2181
# cluster2.zk.list=127.0.0.1:2181/plain
# cluster3.zk.list=127.0.0.1:2181/scram
# cluster4.zk.list=vmn4:2181
######################################
# Zookeeper线程池最大连接数
######################################
kafka.zk.limit.size=25
######################################
# Kafka Eagle的页面访问端口
######################################
kafka.eagle.webui.port=8048
######################################
# 存储消费信息的类型,一般在0.9版本之前,消费
# 信息会默认存储在Zookeeper中,所以存储类型
# 设置zookeeper即可,如果是在0.10版本之后,
# 消费者信息默认存储在Kafka中,所以存储类型
# 设置为kafka。而且,在使用消费者API时,尽量
# 客户端Kafka API版本和Kafka服务端的版本保持
# 一致性。
######################################
cluster1.kafka.eagle.offset.storage=kafka
cluster2.kafka.eagle.offset.storage=kafka
#cluster3.kafka.eagle.offset.storage=kafka
cluster4.kafka.eagle.offset.storage=kafka
######################################
# 开启性能监控,数据默认保留30天
######################################
kafka.eagle.metrics.charts=true
kafka.eagle.metrics.retain=30
######################################
# KSQL查询Topic数据默认是最新的5000条,如果
# 在使用KSQL查询的过程中出现异常,可以将下面
# 的false属性修改为true,Kafka Eagle会在
# 系统中自动修复错误。
######################################
kafka.eagle.sql.topic.records.max=5000
kafka.eagle.sql.fix.error=false
######################################
# 删除Kafka Topic时需要输入删除密钥,由
# 管理员执行
######################################
kafka.eagle.topic.token=keadmin
######################################
# 开启Kafka ACL特性,例如SCRAM或者PLAIN,
# 一般生产环境会使用SCRAM来做ACL,应为SCRAM
# 可以动态创建和管理用户。
######################################
cluster1.kafka.eagle.sasl.enable=false
cluster1.kafka.eagle.sasl.protocol=SASL_PLAINTEXT
cluster1.kafka.eagle.sasl.mechanism=SCRAM-SHA-256
cluster1.kafka.eagle.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="admin" password="admin-secret";
cluster1.kafka.eagle.sasl.client.id=
cluster2.kafka.eagle.sasl.enable=true
cluster2.kafka.eagle.sasl.protocol=SASL_PLAINTEXT
cluster2.kafka.eagle.sasl.mechanism=PLAIN
cluster2.kafka.eagle.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin-secret";
cluster2.kafka.eagle.sasl.client.id=
######################################
# 存储Kafka Eagle元数据信息的数据库,目前支持
# MySQL和Sqlite,默认使用Sqlite进行存储
###################################### kafka.eagle.driver=org.sqlite.JDBC
kafka.eagle.url=jdbc:sqlite:/opt/kafka-eagle-web-2.0.3/db/ke.db
kafka.eagle.username=root
kafka.eagle.password=www.kafka-eagle.org ######################################
# kafka mysql jdbc driver address
######################################
#kafka.eagle.driver=com.mysql.jdbc.Driver
#kafka.eagle.url=jdbc:mysql://127.0.0.1:3306/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
#kafka.eagle.username=root
#kafka.eagle.password=123456

查看服务状态

# 启动Kafka Eagle系统,执行如下命令:
ke.sh start # 查看Kafka Eagle运行状态
ke.sh status # 停止Kafka Eagle
ke.sh stop # 查看Kafka Eagle GC情况
ke.sh gc # 查看Kafka Eagle服务器资源占用情况,例如TCP、句柄等
ke.sh stats # 查看Kafka Eagle版本号
ke.sh version # 查看Kafka Eagle服务器上JDK的编码情况(如果JDK编码不是UTF-8,可能会有异常出现,执行如下命令,根据提示来修复JDK编码问题)
ke.sh jdk # 查看Kafka Eagle中是否存在某个类(如果需要精确,类名前面可以加上包名)
ke.sh find [ClassName]

总结

总的来说,Kafka Eagle提供了简单、易用的页面,部署方便。同时,提供非常详细的操作手册,根据官网提供的操作手册来安装Kafka Eagle,一般都可以正常使用。另外,有时候可能会在日志中发现一些连接超时或是空指针异常,对于这类问题,首先需要检测Kafka集群的各个Broker节点JMX_PORT是否开启(这个Kafka默认是不开启),然后就是空指针异常问题,这类问题通常发生在Kafka集群配置了ACL,这就需要认真检测Kafka Eagle配置文件中ACL信息是否正确(比如设置的用户名和密码是否正确,以及用户是否拥有访问Topic的权限等)

vi kafka-server-start.sh
...
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export KAFKA_HEAP_OPTS="-server -Xms8G -Xmx8G -XX:PermSize=128m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=8 -XX:ConcGCThreads=5 -XX:InitiatingHeapOccupancyPercent=70"
# 开启JMX_PORT端口,端口开启后,Kafka Eagle系统会自动感知获取
export JMX_PORT="9999"
# 注释脚本中默认的信息
# export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
fi

Kafka Eagle 管理平台的更多相关文章

  1. KAFKA 监控管理界面 KAFKA EAGLE 安装

    概述 Kafka Eagle监控系统是一款用来监控Kafka集群的工具,目前更新的版本是v1.2.3,支持管理多个Kafka集群.管理Kafka主题(包含查看.删除.创建等).消费者组合消费者实例监控 ...

  2. 【原创】开发Kafka通用数据平台中间件

    开发Kafka通用数据平台中间件 (含本次项目全部代码及资源) 目录: 一. Kafka概述 二. Kafka启动命令 三.我们为什么使用Kafka 四. Kafka数据平台中间件设计及代码解析 五. ...

  3. Kafka Eagle 源码解读

    1.概述 在<Kafka 消息监控 - Kafka Eagle>一文中,简单的介绍了 Kafka Eagle这款监控工具的作用,截图预览,以及使用详情.今天笔者通过其源码来解读实现细节.目 ...

  4. Kafka监控系统Kafka Eagle剖析

    1.概述 最近有同学留言反馈了使用Kafka监控工具Kafka Eagle的一些问题,这里笔者特意整理了这些问题.并且希望通过这篇博客来解答这些同学的在使用Kafka Eagle的时候遇到的一些困惑, ...

  5. Kafka Eagle V1.3.4更新预览

    1.概述 Kafka Eagle是一款开源的Kafka集群监控系统,源代码托管在Github.目前Kafka Eagle已更新到V1.3.4版本,域名已经统一更新为http://www.kafka-e ...

  6. Kafka Eagle安装详情及问题解答

    1.概述 最近有很多同学给笔者留言,说在安装Kafka Eagle的时候,会遇到一些问题,请教如何解决?今天笔者就在这里总结一下安装步骤,和一些安装的注意事项,以及解决方式. 2.内容 在安装Kafk ...

  7. Kafka Eagle V2.0.0新版预览

    1.概述 Kafka Eagle是一款用于管理Kafka的监控系统,且完全开源.当前Kafka Eagle发布了2.0.0版本.今天笔者就为大家来介绍一下2.0.0更新了哪些功能. 官网地址:http ...

  8. Kafka Eagle分布式模式

    1.概述 最近有同学留言,Kafka Eagle的分布式模式功能怎么使用,如何部署安装?今天笔者就为大家来详细介绍一下Kafka Eagle的分布式模式功能的安装和使用. 2.内容 首先,这里我们需要 ...

  9. 数字化转型——医院数字化管理平台HDMP建设历程

    ​ 最近几年一直在做医疗行业的B端应用,在搭建医院数字化转型管理平台的过程中累积了一些知识,准备抽时间不断的把整个平台搭建过程及思想记录下来,帮助自己记忆,也希望对相应知识点有需要的伙伴能有一个启发. ...

随机推荐

  1. Java基础教程——BigDecimal类

    BigDecimal类 float.double类型的数字在计算的时候,容易发生精度丢失. 使用java.math.BigDecimal类可以解决此类问题. 前面讲过Math类,现在的BigDecim ...

  2. 蚂蚁上市员工人均一套大 House,阿里程序员身价和这匹配吗?

    作者 | 硬核云顶宫 责编 | 伍杏玲 出品 | CSDN(ID:CSDNnews) 上周,蚂蚁集团迎来IPO,其发行价格将达到68.8元,总市值将突破2万亿元.市场对蚂蚁的成长性有着充分的信心,为了 ...

  3. 放进你的收藏夹吃灰!Linux 运维必备的 40 个命令总结

    1.删除0字节文件 find -type f -size 0 -exec rm -rf {} ; 2.查看进程 按内存从大到小排列 PS -e -o "%C : %p : %z : %a&q ...

  4. MySQL中的事务原理和锁机制

    本文主要总结 MySQL 事务几种隔离级别的实现和其中锁的使用情况. 在开始前先简单回顾事务几种隔离级别以及带来的问题. 四种隔离级别:读未提交.读已提交.可重复读.可串行化. 带来的问题:脏读.不可 ...

  5. 用Python爬取英雄联盟(lol)全部皮肤

    小三:"怎么了小二?一副无精打采的样子!" 小二:"唉!别提了,还不是最近又接触了一个叫英雄联盟的游戏,游戏中很多皮肤都需要花钱买,但是我钱不够呀..." 小三 ...

  6. jdk1.8hashmap常见的面试问题

    1.HashMap原理,内部数据结构? 底层使用哈希表(数组加链表)来存储,链表过长会将链表转成红黑树,以实现在O(logn)时间复杂度内查找 2.讲一下HashMap中的put方法过程? 对key求 ...

  7. 第8.4节 Python类中不是构造方法却胜似构造方法的__new方法__深入剖析:语法释义

    一.    引言 在本博前面的内容都对构造方法__init__进行了介绍,也在前面章节引入了__new__方法,但老猿认为__new__方法比构造方法__init__更应该属于构造方法.这是因为在Py ...

  8. 第十三章 Python基础篇结束章

    从2019年3月底开始学习Python,4月份开始在CSDN发博客,至今不到半年,老猿认为博客内容中关于Python基础知识的内容已经基本告一段落,本章进入Python基础知识结束章节,对Python ...

  9. PyQt学习随笔:使用QPropertyAnimation开发简单动画

    QPropertyAnimation是PyQt5.QtCore模块提供的动画设计类,使用该类可以针对PyQt的界面对象进行动画播放,如果要针对一个指定对象进行动画播放,包括如下步骤: 一.创建动画对象 ...

  10. Hive数据导入HBase引起数据膨胀引发的思考

    最近朋友公司在做一些数据的迁移,主要是将一些Hive处理之后的热数据导入到HBase中,但是遇到了一个很奇怪的问题:同样的数据到了HBase中,所占空间竟增长了好几倍!详谈中,笔者建议朋友至少从几点原 ...