EFAK - Kafka可视化管理工具
前言
什么是EFAK
EFAK(Eagle For Apache Kafka,以前稱為 Kafka Eagle)EFAK是開源可視化和管理軟件。可以查詢、可視化、監(jiān)控kafka集群,是將 kafka 的集群數(shù)據(jù)轉(zhuǎn)換為圖形可視化的工具。
為什么要用EFAK
-
Apache Kafka 沒有正式提供監(jiān)控系統(tǒng)或頁面。
-
開源Kafka監(jiān)控系統(tǒng)功能太少或暫停維護(hù)。
-
現(xiàn)有的監(jiān)控系統(tǒng)難以配置和使用。
-
一些監(jiān)控系統(tǒng)無法滿足與現(xiàn)有IM的集成,如微信、釘釘?shù)取?/p>
安裝
下載
可以在 GitHub 上下載EFAK源代碼自行編譯安裝,也可以下載二進(jìn)制 .tar.gz 文件。
| Github | https://github.com/smartloli/EFAK |
| 下載 | http://download.kafka-eagle.org/ |
ps:推薦使用官方編譯的二進(jìn)制安裝包
「安裝JDK」
如果Linux服務(wù)器上有JDK環(huán)境,這一步可以忽略,繼續(xù)下一步的安裝。如果沒有JDK,請先到Oracle官網(wǎng)下載JDK。
JAVA_HOME 配置 將二進(jìn)制安裝包解壓到指定目錄:
cd?/usr/java tar?-zxvf?jdk-xxxx.tar.gz mv?jdk-xxxx?jdk1.8 vi?/etc/profileexport?JAVA_HOME=/usr/java/jdk1.8 export?PATH=$PATH:$JAVA_HOME/bin然后,我們使用. /etc/profile使配置立即生效。
「提取 EFAK」
這里我們解壓到/data/soft/new目錄并解壓:
tar?-zxvf?efak-xxx-bin.tar.gz如果之前安裝過版本,刪除修改后的版本,重命名當(dāng)前版本,如下圖:
rm?-rf?efak mv?efak-xxx?efak然后,配置 EFAK 配置文件
vi?/etc/profileexport? KE_HOME=/data/soft/new/efakexport? PATH=$PATH:$KE_HOME/bin最后,我們使用. /etc/profile使配置立即生效。
配置EFAK系統(tǒng)文件 根據(jù)自身Kafka集群的實(shí)際情況配置EFAK,例如zookeeper地址、Kafka集群的版本類型(zk為低版本,kafka為高版本)、開啟安全認(rèn)證的Kafka集群等。
cd?${KE_HOME}/conf vi?system-config.properties#?Multi?zookeeper&kafka?cluster?list?--?The?client?connection?address?of?the?Zookeeper?cluster?is?set?here efak.zk.cluster.alias=cluster1,cluster2 cluster1.zk.list=tdn1:2181,tdn2:2181,tdn3:2181 cluster2.zk.list=xdn1:2181,xdn2:2181,xdn3:2181#?Add?zookeeper?acl cluster1.zk.acl.enable=false cluster1.zk.acl.schema=digest cluster1.zk.acl.username=test cluster1.zk.acl.password=test123#?Kafka?broker?nodes?online?list cluster1.efak.broker.size=10 cluster2.efak.broker.size=20#?Zkcli?limit?--?Zookeeper?cluster?allows?the?number?of?clients?to?connect?to #?If?you?enable?distributed?mode,?you?can?set?value?to?4?or?8 kafka.zk.limit.size=16#?EFAK?webui?port?--?WebConsole?port?access?address efak.webui.port=8048###################################### #?EFAK?enable?distributed ###################################### efak.distributed.enable=false #?master?worknode?set?status?to?master,?other?node?set?status?to?slave efak.cluster.mode.status=slave #?deploy?efak?server?address efak.worknode.master.host=localhost efak.worknode.port=8085#?Kafka?offset?storage?--?Offset?stored?in?a?Kafka?cluster,?if?stored?in?the?zookeeper,?you?can?not?use?this?option cluster1.efak.offset.storage=kafka cluster2.efak.offset.storage=kafka#?Whether?the?Kafka?performance?monitoring?diagram?is?enabled efak.metrics.charts=false#?EFAK?keeps?data?for?30?days?by?default efak.metrics.retain=30#?If?offset?is?out?of?range?occurs,?enable?this?property?--?Only?suitable?for?kafka?sql efak.sql.fix.error=false efak.sql.topic.records.max=5000#?Delete?kafka?topic?token?--?Set?to?delete?the?topic?token,?so?that?administrators?can?have?the?right?to?delete efak.topic.token=keadmin#?Kafka?sasl?authenticate cluster1.efak.sasl.enable=false cluster1.efak.sasl.protocol=SASL_PLAINTEXT cluster1.efak.sasl.mechanism=SCRAM-SHA-256 cluster1.efak.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule?required?username="admin"?password="admin-secret"; #?If?not?set,?the?value?can?be?empty cluster1.efak.sasl.client.id= #?Add?kafka?cluster?cgroups cluster1.efak.sasl.cgroup.enable=false cluster1.efak.sasl.cgroup.topics=kafka_ads01,kafka_ads02cluster2.efak.sasl.enable=true cluster2.efak.sasl.protocol=SASL_PLAINTEXT cluster2.efak.sasl.mechanism=PLAIN cluster2.efak.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule?required?username="admin"?password="admin-secret"; cluster2.efak.sasl.client.id= cluster2.efak.sasl.cgroup.enable=false cluster2.efak.sasl.cgroup.topics=kafka_ads03,kafka_ads04#?Default?use?sqlite?to?store?data efak.driver=org.sqlite.JDBC #?It?is?important?to?note?that?the?'/hadoop/kafka-eagle/db'?path?must?be?exist. efak.url=jdbc:sqlite:/hadoop/kafka-eagle/db/ke.db efak.username=root efak.password=smartloli#?(Optional)?set?mysql?address #efak.driver=com.mysql.jdbc.Driver #efak.url=jdbc:mysql://127.0.0.1:3306/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull #efak.username=root #efak.password=smartloli「啟動EFAK服務(wù)器(獨(dú)立)」 在$KE_HOME/bin目錄中,有一個(gè)ke.sh腳本文件。執(zhí)行啟動命令如下:
cd?${KE_HOME}/bin chmod?+x?ke.sh?ke.sh?start之后,當(dāng) EFAK 服務(wù)器重新啟動或停止時(shí),執(zhí)行以下命令:
ke.sh?restart ke.sh?stop如下圖所示:
「啟動EFAK服務(wù)器(分布式)」
在$KE_HOME/bin目錄中,有一個(gè)ke.sh腳本文件。執(zhí)行啟動命令如下:
cd?${KE_HOME}/bin #?sync?efak?package?to?other?worknode?node #?if?$KE_HOME?is?/data/soft/new/efak for?i?in?`cat?$KE_HOME/conf/works`;do?scp?-r?$KE_HOME?$i:/data/soft/new;done#?sync?efak?server?.bash_profile?environment for?i?in?`cat?$KE_HOME/conf/works`;do?scp?-r?~/.bash_profile?$i:~/;donechmod?+x?ke.sh? ke.sh?cluster?start之后,當(dāng) EFAK 服務(wù)器重新啟動或停止時(shí),執(zhí)行以下命令:
ke.sh?cluster?restart ke.sh?cluster?stop如下圖所示:
使用
儀表盤
查看Kafka brokers、topics、consumer 、Zookeepers信息等
創(chuàng)建主題
列出主題
該模塊跟蹤Kafka集群中的所有Topic,包括分區(qū)數(shù)、創(chuàng)建時(shí)間、修改Topic,如下圖所示:
主題詳情
每個(gè)Topic對應(yīng)一個(gè)超鏈接,可以查看Topic的詳細(xì)信息,如下圖:
消費(fèi)情況
數(shù)據(jù)預(yù)警
配置下郵件服務(wù)器的用戶名和密碼,就可以看到相應(yīng)的預(yù)警數(shù)據(jù)了
以及最后的大屏展示
以上就是EFAK的安裝和使簡單用了,具體的項(xiàng)目里還有很多功能,推薦大家可以使用EFAK作為Kafka的可視化管理軟件
掃碼關(guān)注我的微信公眾號:Java架構(gòu)師進(jìn)階編程??獲取最新面試題,電子書
專注分享Java技術(shù)干貨,包括JVM、SpringBoot、SpringCloud、數(shù)據(jù)庫、架構(gòu)設(shè)計(jì)、面試題、電子書等,期待你的關(guān)注!
總結(jié)
以上是生活随笔為你收集整理的EFAK - Kafka可视化管理工具的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《那些年啊,那些事——一个程序员的奋斗史
- 下一篇: 一、【tmux】 Terminal Mu