EFAK - Kafka visual management tool

Posted by lamia on Sun, 27 Feb 2022 17:03:38 +0100

preface

What is EFAK

EFAK (Eagle For Apache Kafka, formerly known as Kafka Eagle) EFAK is an open source visualization and management software. kafka cluster can be queried, visualized and monitored. It is a tool to convert kafka cluster data into graphic visualization.

Why EFAK

  • Apache Kafka does not officially provide monitoring systems or pages.

  • The open source Kafka monitoring system has too few functions or maintenance is suspended.

  • The existing monitoring system is difficult to configure and use.

  • Some monitoring systems cannot meet the integration with existing IM, such as wechat, nailing, etc.

install

download

You can download EFAK source code on GitHub, compile and install it yourself, or download binary tar.gz file.

EFAKmemory pool
Githubhttps://github.com/smartloli/EFAK
downloadhttp://download.kafka-eagle.org/

ps: it is recommended to use the official compiled binary installation package

"Install JDK"

If there is a JDK environment on the Linux server, this step can be ignored and proceed to the next step of installation. If there is no JDK, please download the JDK from the Oracle official website first.

JAVA_ The home configuration extracts the binary installation package to the specified directory:

cd /usr/java
tar -zxvf jdk-xxxx.tar.gz
mv jdk-xxxx jdk1.8
vi /etc/profile

export JAVA_HOME=/usr/java/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin

Then we use/ etc/profile makes the configuration take effect immediately.

"Extract EFAK"

Here we unzip it to the / data/soft/new directory and unzip it:

tar -zxvf efak-xxx-bin.tar.gz

If the version has been installed before, delete the modified version and rename the current version, as shown below:

rm -rf efak
mv efak-xxx efak

Then, configure the EFAK configuration file

vi /etc/profileexport 
KE_HOME=/data/soft/new/efakexport 
PATH=$PATH:$KE_HOME/bin

Finally, we use/ etc/profile makes the configuration take effect immediately.

Configure EFAK system files to configure EFAK according to the actual situation of their Kafka cluster, such as zookeeper address, version type of Kafka cluster (zk is a low version, Kafka is a high version), Kafka cluster with security authentication enabled, etc.

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_ads02

cluster2.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

"Start EFAK server (independent)" in $Ke_ In the home / bin directory, there is a Ke SH script file. Execute the startup command as follows:

cd ${KE_HOME}/bin
chmod +x ke.sh ke.sh start

Then, when the EFAK server restarts or stops, execute the following command:

ke.sh restart
ke.sh stop

As shown in the figure below:

"Start EFAK server (distributed)"

At $Ke_ In the home / bin directory, there is a Ke SH script file. Execute the startup command as follows:

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:~/;done

chmod +x ke.sh 
ke.sh cluster start

Then, when the EFAK server restarts or stops, execute the following command:

ke.sh cluster restart
ke.sh cluster stop

As shown in the figure below:

use

Dashboard

Check the information of Kafka brokers, topics, consumer s, Zookeepers, etc

create themes

List topics

This module tracks all topics in the Kafka cluster, including the number of partitions, creation time and modifying topics, as shown in the following figure:

Subject details

Each Topic corresponds to a hyperlink. You can view the details of the Topic, as shown in the following figure:

Consumption

Data early warning

Configure the user name and password of the mail server, and you can see the corresponding alert data

And the final big screen display

The above is the installation and use of EFAK. There are many functions in specific projects. It is recommended that you can use EFAK as Kafka's visual management software

Scan code concerns my official account of WeChat: Java architect's advanced programming to get the latest interview questions, e-books.

Focus on sharing Java technology dry goods, including JVM, SpringBoot, SpringCloud, database, architecture design, interview questions, e-books, etc. we look forward to your attention!

Topics: Java kafka Zookeeper