Kafka Eagle安装详情及问题解答
1.概述
時光小說網(wǎng) www.youxs.org最近有很多同學(xué)給筆者留言,說在安裝Kafka Eagle的時候,會遇到一些問題,請教如何解決?今天筆者就在這里總結(jié)一下安裝步驟,和一些安裝的注意事項,以及解決方式。
2.內(nèi)容
在安裝Kafka Eagle之前,可能新接觸的同學(xué)對Kafka Eagle不太了解,那我們現(xiàn)在簡要介紹一下Kafka Eagle。
源代碼地址:https://github.com/smartloli/kafka-eagle?(感興趣的同學(xué)可以關(guān)注一波)
2.1 Kafka Eagle是什么?
Kafka Eagle是一款用于監(jiān)控和管理Apache Kafka的完全開源系統(tǒng),目前托管在Github,由筆者和一些開源愛好者共同維護(hù)。它提供了完善的管理頁面,很方面的去管理和可視化Kafka集群的一些信息,例如Broker詳情、性能指標(biāo)趨勢、Topic集合、消費(fèi)者信息等。
同時,兼容若干Kafka版本,例如0.8,0.9,...,以及截止到2019-12-16最新發(fā)布的2.4.0版本。
2.2 Kafka Eagle包含哪些功能?
Kafka Eagle監(jiān)控管理系統(tǒng),提供了一個可視化頁面,使用者可以擁有不同的角色,例如管理員、開發(fā)者、游客等。不同的角色對應(yīng)不同的使用權(quán)限。在知道了Kafka Eagle的作用之后,那么它包含哪些功能呢?核心功能如下所示:
?
?2.2.1 數(shù)據(jù)面板
?
?負(fù)責(zé)展示Kafka集群的Broker數(shù)、Topic數(shù)、Consumer數(shù)、以及Topic LogSize Top10和Topic Capacity Top10數(shù)據(jù)。
?
?2.2.2 主題
該模塊包含主題創(chuàng)建、主題管理、主題預(yù)覽、KSQL查詢主題、主題數(shù)據(jù)寫入、主題屬性配置等。
?
?2.2.3 消費(fèi)者組
該模塊包含監(jiān)控不同消費(fèi)者組中的Topic被消費(fèi)的詳情,例如LogSize、Offsets、以及Lag等。同時,支持查看Lag的歷史趨勢圖。
?
?2.2.4 集群管理
該模塊包含Kafka集群和Zookeeper集群的詳情展示,例如Kafka的IP和端口、版本號、啟動時間、Zookeeper的Leader和Follower。同時,還支持多Kafka集群切換,以及Zookeeper Client數(shù)據(jù)查看等功能。
?
2.2.5 指標(biāo)監(jiān)控
該模塊包含監(jiān)控Kafka集群和Zookeeper集群的核心指標(biāo),包含Kafka的消息發(fā)送趨勢、消息大小接收與發(fā)送趨勢、Zookeeper的連接數(shù)趨勢等。同時,還支持查看Broker的瞬時指標(biāo)數(shù)據(jù)。
?
2.2.6 告警
該模塊包含告警集群異常和消費(fèi)者應(yīng)用Lag異常。同時,支持多種IM告警方式,例如郵件、釘釘、微信、Webhook等。
?
2.2.7 系統(tǒng)管理
該模塊包含用戶管理,例如創(chuàng)建用戶、用戶授權(quán)、資源管理等。
?
2.2.8 數(shù)據(jù)大屏
該模塊包含展示消費(fèi)者和生產(chǎn)者當(dāng)日及最近7天趨勢、Kafka集群讀寫速度、Kafka集群歷史總記錄等。
?
3.Kafka Eagle如何安裝?
Kafka Eagle安裝部署非常方便,可以從官網(wǎng)下載最新版本進(jìn)行安裝,或者從Github下載最新的Release源代碼進(jìn)行編譯安裝。
例如,從官網(wǎng)下載Kafka Eagle安裝包,按如下命令操作即可:
# 解壓安裝包tar -zxvf kafka-eagle-v1.4.2-bin.tar.gz
然后,是配置環(huán)境變量,這里需要注意的是,KE_HOME和JAVA_HOME均需在環(huán)境變量文件中進(jìn)行配置(建議在~/.bash_profile文件中進(jìn)行設(shè)置好,否則,可能在啟動的時候拋出環(huán)境變量找不到的錯誤),配置內(nèi)容如下:
# 配置JAVA_HOME和KE_HOME: vi ~/.bash_profile export JAVA_HOME=/hadoop/jdk8 export KE_HOME=/hadoop/kafka-eagle export PATH=$PATH:$JAVA_HOME/bin:$KE_HOME/bin接下來是配置Kafka Eagle的系統(tǒng)文件,這里需要注意一些事項,配置內(nèi)容如下:
###################################### # 設(shè)置Kafka多集群,這里只需要設(shè)置Zookeeper, # 系統(tǒng)會自動識別Kafka Broker ###################################### kafka.eagle.zk.cluster.alias=cluster1 cluster1.zk.list=127.0.0.1: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線程池最大連接數(shù) ###################################### kafka.zk.limit.size=25###################################### # Kafka Eagle的頁面訪問端口 ###################################### kafka.eagle.webui.port=8048###################################### # 存儲消費(fèi)信息的類型,一般在0.9版本之前,消費(fèi) # 信息會默認(rèn)存儲在Zookeeper中,所以存儲類型 # 設(shè)置zookeeper即可,如果是在0.10版本之后, # 消費(fèi)者信息默認(rèn)存儲在Kafka中,所以存儲類型 # 設(shè)置為kafka。而且,在使用消費(fèi)者API時,盡量 # 客戶端Kafka API版本和Kafka服務(wù)端的版本保持 # 一致性。 ###################################### cluster1.kafka.eagle.offset.storage=kafka cluster2.kafka.eagle.offset.storage=kafka #cluster3.kafka.eagle.offset.storage=kafka cluster4.kafka.eagle.offset.storage=kafka###################################### # 開啟性能監(jiān)控,數(shù)據(jù)默認(rèn)保留30天 ###################################### kafka.eagle.metrics.charts=true kafka.eagle.metrics.retain=30###################################### # KSQL查詢Topic數(shù)據(jù)默認(rèn)是最新的5000條,如果 # 在使用KSQL查詢的過程中出現(xiàn)異常,可以將下面 # 的false屬性修改為true,Kafka Eagle會在 # 系統(tǒng)中自動修復(fù)錯誤。 ###################################### kafka.eagle.sql.topic.records.max=5000 kafka.eagle.sql.fix.error=false###################################### # 刪除Kafka Topic時需要輸入刪除密鑰,由 # 管理員執(zhí)行 ###################################### kafka.eagle.topic.token=keadmin###################################### # 開啟Kafka ACL特性,例如SCRAM或者PLAIN, # 一般生產(chǎn)環(huán)境會使用SCRAM來做ACL,應(yīng)為SCRAM # 可以動態(tài)創(chuàng)建和管理用戶。 ###################################### 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元數(shù)據(jù)信息的數(shù)據(jù)庫,目前支持 # MySQL和Sqlite,默認(rèn)使用Sqlite進(jìn)行存儲 ###################################### 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.driver=org.sqlite.JDBC #kafka.eagle.url=jdbc:sqlite:/Users/dengjie/webserver/hadoop/sqlite/ke.db #kafka.eagle.username=root #kafka.eagle.password=root最后是啟動,執(zhí)行命令如下:
# 啟動Kafka Eagle系統(tǒng),執(zhí)行如下命令: ke.sh start同時,我們還可以執(zhí)行其他的命令,參數(shù)如下:
# 查看Kafka Eagle運(yùn)行狀態(tài) ke.sh status# 停止Kafka Eagle ke.sh stop# 查看Kafka Eagle GC情況 ke.sh gc# 查看Kafka Eagle服務(wù)器資源占用情況,例如TCP、句柄等 ke.sh stats# 查看Kafka Eagle版本號 ke.sh version# 查看Kafka Eagle服務(wù)器上JDK的編碼情況(如果JDK編碼不是UTF-8,可能會有異常出現(xiàn),執(zhí)行如下命令,根據(jù)提示來修復(fù)JDK編碼問題) ke.sh jdk# 查看Kafka Eagle中是否存在某個類(如果需要精確,類名前面可以加上包名) ke.sh find [ClassName]4.總結(jié)
總的來說,Kafka Eagle提供了簡單、易用的頁面,部署方便。同時,提供非常詳細(xì)的操作手冊,根據(jù)官網(wǎng)提供的操作手冊來安裝Kafka Eagle,一般都可以正常使用。另外,有時候可能會在日志中發(fā)現(xiàn)一些連接超時或是空指針異常,對于這類問題,首先需要檢測Kafka集群的各個Broker節(jié)點(diǎn)JMX_PORT是否開啟(這個Kafka默認(rèn)是不開啟),然后就是空指針異常問題,這類問題通常發(fā)生在Kafka集群配置了ACL,這就需要認(rèn)真檢測Kafka Eagle配置文件中ACL信息是否正確(比如設(shè)置的用戶名和密碼是否正確,以及用戶是否擁有訪問Topic的權(quán)限等)
vi kafka-server-start.sh ... if [ "x$KAFKA_HEAP_OPTS" = "x" ]; thenexport 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系統(tǒng)會自動感知獲取export JMX_PORT="9999"# 注釋腳本中默認(rèn)的信息# export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G" fi如果大家對Kafka Eagle感興趣,可以關(guān)注一波。后續(xù),在Github上筆者也會公布每個版本的開發(fā)計劃,修復(fù)大家在issues上面提的需求和問題,將Kafka Eagle建設(shè)的更加完善、易用。
Kafka Eagle源代碼地址:https://github.com/smartloli/kafka-eagle
5.結(jié)束語
這篇博客就和大家分享到這里,如果大家在研究學(xué)習(xí)的過程當(dāng)中有什么問題,可以加群進(jìn)行討論或發(fā)送郵件給我,我會盡我所能為您解答,與君共勉!
另外,博主出書了《Kafka并不難學(xué)》和《Hadoop大數(shù)據(jù)挖掘從入門到進(jìn)階實戰(zhàn)》,喜歡的朋友或同學(xué),?可以在公告欄那里點(diǎn)擊購買鏈接購買博主的書進(jìn)行學(xué)習(xí),在此感謝大家的支持。關(guān)注下面公眾號,根據(jù)提示,可免費(fèi)獲取書籍的教學(xué)視頻。?
總結(jié)
以上是生活随笔為你收集整理的Kafka Eagle安装详情及问题解答的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字库的产生
- 下一篇: ETL转换工具 kettle——spo