Kafka Eagle V2.0.0新版預覽

哥不是小蘿莉發表於2020-07-13

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.1=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:2182(CONNECTED) 3] addauth digest test:test123
[zk: 127.0.0.1:2182(CONNECTED) 4] setAcl /znode01 auth:test:cdrwa
cZxid = 0x100
ctime = Sun Jul 12 11:54:24 CST 2020
mZxid = 0x100
mtime = Sun Jul 12 11:54:24 CST 2020
pZxid = 0x100
cversion = 0
dataVersion = 0
aclVersion = 1
ephemeralOwner = 0x0
dataLength = 2
numChildren = 0
[zk: 127.0.0.1:2182(CONNECTED) 5] 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:2182
######################################
# 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 (0,1,2) limit 10

# 新版本
# 這裡partition是SQL關鍵字,不能直接寫,需要用``進行轉義
select * from ke_topic where `partition` in (0,1,2) limit 10

同時,支援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大資料探勘從入門到進階實戰》,喜歡的朋友或同學, 可以在公告欄那裡點選購買連結購買博主的書進行學習,在此感謝大家的支援。關注下面公眾號,根據提示,可免費獲取書籍的教學視訊。

相關文章