1.概述

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

2.内容

Kafka Eagle所包含的功能有数据面板、数据大屏、主题列表、消费者组、集群详情、监控中心、告警策略、系统管理等功能。那在Kafka Eagle V2.0.0中又升级了哪些功能呢?

2.1 支持Zookeeper ACL

在V2.0.0版本中,修复了对Zookeeper ACL的支持。比如,我们的Zookeeper的集群开启了DigestLoginModule。

在Zookeeper集群中的zoo.cfg中添加如下配置:

# add acl
authProvider.=org.apache.zookeeper.server.auth.SASLAuthenticationProvider

然后,在$ZK_HOME/conf目录中添加服务端认证文件zk_server.conf

Server{
org.apache.zookeeper.server.auth.DigestLoginModule required
user_admin="admin123"
user_test="test123";
};

接着,在$ZK_HOME/conf目录中添加客户端认证文件zk_client.conf

Client {
org.apache.zookeeper.server.auth.DigestLoginModule required
username="test"
password="test123";
};

修改Zookeeper中zkEnv.sh脚本,添加如下内容:

###
SERVER_JVMFLAGS="-Djava.security.auth.login.config=/Users/dengjie/workspace/zookeeper-3.4.6-acl/conf/zk_server.conf"
CLIENT_JVMFLAGS="${CLIENT_JVMFLAGS} -Djava.security.auth.login.config=/Users/dengjie/workspace/zookeeper-3.4.6-acl/conf/zk_client.conf" export SERVER_JVMFLAGS="$SERVER_JVMFLAGS"
export CLIENT_JVMFLAGS="$CLIENT_JVMFLAGS"
###

这里需要注意的时,其中Zookeeper服务进程后,创建的znode默认是有所有权限的,需要我们额外授权。比如我们创建一个/znode01

然后,我们开始创建一个test用户,并授权所有权限,执行命令和结果如下:

[zk: 127.0.0.1:(CONNECTED) ] addauth digest test:test123
[zk: 127.0.0.1:(CONNECTED) ] setAcl /znode01 auth:test:cdrwa
cZxid = 0x100
ctime = Sun Jul :: CST
mZxid = 0x100
mtime = Sun Jul :: CST
pZxid = 0x100
cversion =
dataVersion =
aclVersion =
ephemeralOwner = 0x0
dataLength =
numChildren =
[zk: 127.0.0.1:(CONNECTED) ] getAcl /znode01
'sasl,'test
: cdrwa
'digest,'test:4kLbCbLRytYsfNQkaDbMuExRDDs=
: cdrwa

接着,我们用一个没有授权的zkCli去访问znode01,会出现没有权限:

而我们用授权的zkCli去访问,是可以正常访问的

Zookeeper ACL集群部署好后,那么Kafka Eagle中如何进行配置呢?

2.2 Kafka Eagle中配置Zookeeper ACL

在Kafka Eagle V2.0.0中,对Zookeeper ACL配置进行了简化,只需在$KE_HOME/conf/system-config.properties中添加如下内容:

######################################
# multi zookeeper & kafka cluster list
######################################
kafka.eagle.zk.cluster.alias=cluster4
cluster4.zk.list=127.0.0.1:
######################################
# zookeeper enable acl
######################################
cluster4.zk.acl.enable=true
cluster4.zk.acl.schema=digest
cluster4.zk.acl.username=test
cluster4.zk.acl.password=test123

最后,我们执行 ke.sh start 启动Kafka Eagle服务。如下图所示:

2.3 KSQL解析和查询优化

在V2.0.0中,对KSQL查询Topic中的数据,从解析到查询进行了优化。比如:

# 旧版本
select * from "ke_topic" where "partition" in (,,) limit # 新版本
# 这里partition是SQL关键字,不能直接写,需要用``进行转义
select * from ke_topic where `partition` in (,,) limit

同时,支持JSON解析数据,LIKE模糊查询等功能,具体用法参考官网[KSQL]

底层查询逻辑也做了大量优化,统一采用calcite来做解析引擎和执行引擎。预览截图如下:

2.4 调试小技巧

在安装Kafka Eagle的过程中,有同学可能会遇到一些问题,比如服务地址无法打开、页面显示不完整、页面数据无法显示等问题。

2.4.1 服务地址无法打开

这里,针对服务地址无法打开的问题,我们先去看看Kafka Eagle的启动日志($KE_HOME/logs/ke_console.out),可能是部署失败了,导致服务没有启动,所有服务地址无法打开。

2.4.2 页面显示不完整

页面显示不完整,比如KSQL查询输入框显示异常、Kafka监控日期选择控件异常等,这些可能是由于服务限制了静态资源的加载。可以看看部署Kafka Eagle的服务器上,是否配置了Nginx限制。

2.4.3 页面数据无法显示

可能是浏览器存在缓存,可以在浏览器中右键对浏览器进行检查,如下图所示:

然后,切换到Network,找到Disable cache进行勾选,最后在刷新浏览器,对缓存进行更新

如果,重试了这些方法后,还是无法解决使用Kafka Eagle的问题,可以在博客下面进行留言,或者添加下面的QQ群,进行咨询作者。

3.总结

Kafka Eagle提供了简单易用的操作界面,支持Kafka和Zookeeper的ACL认证监控,满足常规的消费者组、集群性能、消息容量、多集群管理、多IM告警(微信、钉钉、邮件、WebHook)等多功能。Github Star超过1300+,处理大家提交的Issue 300+多个,如果你Kafka集群缺少监控,不妨可以试试Kafka Eagle。如果觉得对你有所帮助,可以在Github上给个Star,最后感谢大家对Kafka Eagle的支持,Kafka Eagle社区会对大家提供的建议和留言,进行考虑,为大家提供更加好用的Kafka监控。

4.结束语

这篇博客就和大家分享到这里,如果大家在研究学习的过程当中有什么问题,可以加群进行讨论或发送邮件给我,我会尽我所能为您解答,与君共勉!

另外,博主出书了《Kafka并不难学》和《Hadoop大数据挖掘从入门到进阶实战》,喜欢的朋友或同学, 可以在公告栏那里点击购买链接购买博主的书进行学习,在此感谢大家的支持。关注下面公众号,根据提示,可免费获取书籍的教学视频。

Kafka Eagle V2.0.0新版预览的更多相关文章

  1. Kafka Eagle V1.3.4更新预览

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

  2. C# 9.0 新特性预览 - 类型推导的 new

    C# 9.0 新特性预览 - 类型推导的 new 前言 随着 .NET 5 发布日期的日益临近,其对应的 C# 新版本已确定为 C# 9.0,其中新增加的特性(或语法糖)也已基本锁定,本系列文章将向大 ...

  3. C# 9.0 新特性预览 - 空参数校验

    C# 9.0 新特性预览 - 空参数校验 前言 随着 .NET 5 发布日期的日益临近,其对应的 C# 新版本已确定为 C# 9.0,其中新增加的特性(或语法糖)也已基本锁定,本系列文章将向大家展示它 ...

  4. C# 9.0 新特性预览 - 顶级语句

    C# 9.0 新特性预览 - 顶级语句 前言 随着 .NET 5 发布日期的日益临近,其对应的 C# 新版本已确定为 C# 9.0,其中新增加的特性(或语法糖)也已基本锁定,本系列文章将向大家展示它们 ...

  5. C# 9.0 新特性预览 - init-only 属性

    C# 9.0 新特性预览 - init-only 属性 前言 随着 .NET 5 发布日期的日益临近,其对应的 C# 新版本已确定为 C# 9.0,其中新增加的特性(或语法糖)也已基本锁定,本系列文章 ...

  6. Kafka Eagle 3.0.1功能预览

    1.概述 最近有同学留言,关于Kafka Eagle的一些使用问题.今天笔者就为大家来详细介绍Kafka Eagle 3.0.1的功能以及使用方法. 2.内容 在3.0.1版本中,EFAK优化了分布式 ...

  7. 【纯技术贴】.NETStandard FreeSql v0.0.9 功能预览

    年关将至,首页技术含量文章真是越来越少,理解大家盼着放假过年,哥们我何尝不是,先给大家拜个早年. 兄弟我从11月底发了神经,开启了 ORM 功能库的开发之旅,历时两个月编码和文档整理,目前预览版本更新 ...

  8. Android 7.0终极开发者预览版全攻略!

    近日,Google的工程部副总裁Dave Burke在官方博客上正式发布开发者预览版5,此预览版是android 7.0 “牛轧糖”正式发布前最后一个预览版,同时也是在性能.功能上等多方面的表现上最接 ...

  9. 怎样改动 VC6.0 4.0 2010 打印预览界面上的文字

    前言:尽管早已下决心不再碰微软的东西,但手头的项目还得须要维护. 遇到问题还能解决. 问题由来: 之前的软件开发是基于中文环境开发的,建立项目的时候,选择了中文,为了方便客户使用.我们使用了静态编译的 ...

随机推荐

  1. jmeter跨线程组传值和jmeter跨线程组调用

    Jmeter的线程组之间是独立的,用Jmeter做接口测试或者是性能测试时,经常会涉及到多个线程组.那么如何将A线程组返回的变量信息提取后,传递给B,C线程组使用呢?这里以已登录接口返回的access ...

  2. MySQL的使用方法和视图、索引、以及存储过程的一些简单方法

    一,基本概念 1, 常用的两种引擎:         (1) InnoDB        a,支持ACID,简单地说就是支持事务完整性.一致性:         b,支持行锁,以及类似ORACLE的一 ...

  3. Python的多继承问题-MRO和C3算法

    大部分内容转载自C3 线性化算法与 MRO 理解Python中的多继承 Python 中的方法解析顺序(Method Resolution Order, MRO)定义了多继承存在时 Python 解释 ...

  4. Elasticsearch系列---生产集群的索引管理

    概要 索引是我们使用Elasticsearch里最频繁的部分日常的操作都与索引有关,本篇从运维人员的视角,来玩一玩Elasticsearch的索引操作. 基本操作 在运维童鞋的视角里,索引的日常操作除 ...

  5. 2、尚硅谷_SSM高级整合_使用ajax操作实现页面的查询功能

    16.尚硅谷_SSM高级整合_查询_返回分页的json数据.avi 在上一章节的操作中我们是将PageInfo对象存储在request域中,然后list页面解析request域中的对象实现信息的显示. ...

  6. ZooKeeper 数据模型:节点的特性与应用

    zk的基础知识基本分为三大模块 数据模型 ACL 权限控制 Watch 监控 数据模型 默认配置文件 # The number of milliseconds of each tick tickTim ...

  7. 读取和写入blob类型数据

    读写oracle  blob类型 http://zyw090111.iteye.com/blog/607869 http://blog.csdn.net/jeryjeryjery/article/de ...

  8. AcWing 走廊泼水节 题解

    这道题大致题意就是让一棵树任意两点有连边(也就是完全图),但是补完后最小生成树是一开始的那棵树,问最小加的边权之和是多少. 了解题意后,我们可以想到用Kruskal(废话),当每两个集合合并的时候,除 ...

  9. hive如何获取当前时间

    在大多数的sql中获取当前时间都是用now()函数即可,hive获取当前时间的函数与sql 不一样 在impala中执行now()函数时是可以通过的 然而在hive中执行now()函数却报错: hiv ...

  10. SELinux已经允许,为什么日志显示的仍然是denied?

    从日志可以看到,SELinux的Mode已经修改位了permissive = 1,也就是允许模式,但它前面的日志仍然显示的是“denied".本来我还以为是自己哪里没弄好导致的这个问题,但访 ...