一、背景

Kafka产线环境需要管理的Topic和Consumser越来越多,使用命令行工具进行管理会非常繁杂。因此,大数据平台上需要一套Kafka的管理监控系统,Kafka-Eagle。

Kafka Eagle是一个用于监控和管理kafka的开源组件,可以同时监控多个kafka集群。
Kafka Eagle提供了完善的监控页面和kafka常用操作的管理界面,便于管理员对kafka集群进行运维管理。

Kafka Eagle提供了KSQL操作的可视化界面,让你可以非常快速的查看kafka中的消息。

Kafka Eagle支持多种报警方式,如钉钉,微信和邮件等。

二、安装

1. 安装MySQL,建库、建用户,授权

# yum -y install https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm


# sed   -i  's/gpgcheck=1/gpgcheck=0/g'   /etc/yum.repos.d/mysql-community.repo

# yum clean all 

# yum -y install mysql-community-server  mysql-community-client

# cat /etc/my.cnf

####################################

[mysqld]
pid-file  = /var/run/mysqld/mysqld.pid
socket  = /var/lib/mysql/mysql.sock
log-error  = /var/log/mysqld.log
datadir  = /var/lib/mysql
symbolic-links  = 0
max_connections = 1000
skip_name_resolve
character-set-client-handshake  = FALSE
character-set-server =  utf8
collation-server = utf8_general_ci
init_connect =  "SET NAMES 'utf8'"

[mysql]
default-character-set  = utf8

[client]
default-character-set  = utf8

####################################

初始化MySQL,可以通过执行 mysqld --initialize ,使用 --initialize 选项,以“安全模式”初始化,会在日志中生成一个随机的root初始密码。

# mysqld --initialize --datadir=/opt/data/mysql --user=mysql

#  cat /var/log/mysqld.log | grep "temporary password"

# mysql_init_passwd=`cat /var/log/mysqld.log | grep "temporary password" | awk '{print $NF}'`

# systemctl  start mysqld

# systemctl  enable  mysqld

# systemctl status  mysqld

#  mysql -u root -p"${mysql_init_passwd}"

首次登录,必须更改随机的root初始密码,且密码强度需满足一定要求,才能执行数据库操作。

> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MySQL@123';
> exit

#  mysql -u root -p"MySQL@123"


> CREATE DATABASE ke DEFAULT CHARACTER SET utf8 DEFAULT COLLATE  utf8_general_ci;
> GRANT ALL PRIVILEGES ON ke.* TO 'ke'@'127.0.0.1' IDENTIFIED BY 'Ke@123';
> flush privileges; 

2. 安装kafka-eagle

下载 Kafka Eagle
https://github.com/smartloli/kafka-eagle-bin/archive/v2.1.0.tar.gz

# tar -zxf kafka-eagle-bin-2.1.0.tar.gz
# tar -zxf kafka-eagle-bin-2.1.0/efak-web-2.1.0-bin.tar.gz
# mv efak-web-2.1.0 /opt/efak

# vim /opt/efak/system-config.properties

##############################################

######################################
# multi zookeeper & kafka cluster list
# Settings prefixed with 'kafka.eagle.' will be deprecated, use 'efak.' instead
######################################
efak.zk.cluster.alias=cluster1
cluster1.zk.list=10.12.32.79:2189,10.12.32.80:2189,10.12.32.81:2189

######################################
# zookeeper enable acl
######################################
cluster1.zk.acl.enable=false
cluster1.zk.acl.schema=digest
cluster1.zk.acl.username=test
cluster1.zk.acl.password=test123

######################################
# broker size online list
######################################
cluster1.efak.broker.size=20

######################################
# zk client thread limit
######################################
kafka.zk.limit.size=16

######################################
# EFAK webui port
######################################
efak.webui.port=8048

######################################
# EFAK enable distributed
######################################
efak.distributed.enable=false
efak.cluster.mode.status=master
efak.worknode.master.host=localhost
efak.worknode.port=8085

######################################
# kafka jmx acl and ssl authenticate
######################################
cluster1.efak.jmx.acl=false
cluster1.efak.jmx.user=keadmin
cluster1.efak.jmx.password=keadmin123
cluster1.efak.jmx.ssl=false
cluster1.efak.jmx.truststore.location=/data/ssl/certificates/kafka.truststore
cluster1.efak.jmx.truststore.password=ke123456

######################################
# kafka offset storage
######################################
cluster1.efak.offset.storage=kafka
#cluster2.efak.offset.storage=zk

######################################
# kafka jmx uri
######################################
cluster1.efak.jmx.uri=service:jmx:rmi:///jndi/rmi://%s/jmxrmi

######################################
# kafka metrics, 15 days by default
######################################
efak.metrics.charts=true
efak.metrics.retain=15

######################################
# kafka sql topic records max
######################################
efak.sql.topic.records.max=5000
efak.sql.topic.preview.records.max=10

######################################
# delete kafka topic token
######################################
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="kafka" password="kafka-eagle";
cluster1.efak.sasl.client.id=
cluster1.efak.blacklist.topics=
cluster1.efak.sasl.cgroup.enable=false
cluster1.efak.sasl.cgroup.topics=
cluster2.efak.sasl.enable=false
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="kafka" password="kafka-eagle";
cluster2.efak.sasl.client.id=
cluster2.efak.blacklist.topics=
cluster2.efak.sasl.cgroup.enable=false
cluster2.efak.sasl.cgroup.topics=

######################################
# kafka ssl authenticate
######################################
#cluster3.efak.ssl.enable=false
#cluster3.efak.ssl.protocol=SSL
#cluster3.efak.ssl.truststore.location=
#cluster3.efak.ssl.truststore.password=
#cluster3.efak.ssl.keystore.location=
#cluster3.efak.ssl.keystore.password=
#cluster3.efak.ssl.key.password=
#cluster3.efak.ssl.endpoint.identification.algorithm=https
#cluster3.efak.blacklist.topics=
#cluster3.efak.ssl.cgroup.enable=false
#cluster3.efak.ssl.cgroup.topics=

######################################
# kafka sqlite jdbc driver address
######################################
#efak.driver=org.sqlite.JDBC
#efak.url=jdbc:sqlite:/hadoop/kafka-eagle/db/ke.db
#efak.username=root
#efak.password=www.kafka-eagle.org

######################################
# kafka mysql jdbc driver address
######################################
efak.driver=com.mysql.cj.jdbc.Driver
efak.url=jdbc:mysql://127.0.0.1:3306/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
efak.username=ke
efak.password=Ke@123

##############################################

设置Kafka Eagle环境变量

# vim /etc/profile

##############################################

#kafka eagle
KE_HOME=/opt/efak
JAVA_HOME=/opt/jdk
JRE_HOME=/opt/jdk/jre

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$KE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib

export KE_HOME JAVA_HOME JRE_HOME PATH CLASSPATH

##############################################

 # source /etc/profile

启动 Kafka Eagle

# chown  -R  test:test   opt/efak

#  su  -  test

$ ke.sh start

$  ss -tan | grep 8048

#  systemctl stop firewalld
# systemctl disable firewalld

三、Kafka Eagle 使用

浏览器访问: http://xx.xx.xx.xx:8048
默认用户名密码:admin/123456

 

四、参考

Kafka Eagle安装详情及问题解答
https://www.cnblogs.com/smartloli/p/12110570.html

各版本下载地址
http://www.kafka-eagle.org/articles/docs/changelog/changelog.html

安装使用文档
https://docs.kafka-eagle.org/2.env-and-install/2.installing

Dashboard
http://www.kafka-eagle.org/articles/docs/quickstart/dashboard.html

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐