Kafka作为业界优秀的消息中间件,很多知名公司都在使用。笔者用命令行敲了敲其主题、生产者和消费者的组件,使用起来很方面,但是界面操作是笔者更喜欢的把玩方式,直观易记。因此对比了量款Kafka的管理项目,分别是Kafka Manage、Kafka Eagle,最后选用炫酷的Kafka Eagle。
1 安装环境
- JDK: 15
- OS: Windows10
- Kafka: kafka_2.11-2.4.0
- MySQL:5.7
2 下载 Kafka Eagle
点击下载地址下载即可。
3 配置 Kafka Eagle
在项目里找到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=tdn1:2181,tdn2:2181,tdn3:2181 #cluster2.zk.list=xdn10:2181,xdn11:2181,xdn12:2181 cluster1.zk.list=127.0.0.1:2181 ###################################### # 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=32 ###################################### # EFAK webui port ###################################### #修改成该端口没用,默认就是8048 efak.webui.port=8090 ###################################### # kafka jmx acl and ssl authenticate ###################################### #不用管 cluster1.efak.jmx.acl=false cluster1.efak.jmx.user=admin cluster1.efak.jmx.password=123456 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 ###################################### #修改kafka的JMX端口 cluster1.efak.jmx.uri=service:jmx:rmi:///jndi/rmi://127.0.0.1:9999/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 ###################################### #添加这些参数 useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=UTC efak.driver=com.mysql.cj.jdbc.Driver efak.url=jdbc:mysql://127.0.0.1:3306/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=UTC efak.username=root efak.password=password
4 启动 Kafka Eagle
进到项目/bin
文件目录里启动 Kafka Eagle。
在启动之前,先让zookeeper和kafka启动起来。
在启动过程中会遇到以下问题。
数据库问题
Q :
The server time zone value ‘?й???’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the ‘serverTimezone’ configuration property) to use a more specifc time zone value if you want to utilize time zone support.
A:
使用如下命令解决
按照配置文件里的端口输入访问路径打不开网站
经验证,修改端口无效,可能在代码里固定了,因此还是访问端口8048即可。
5 Kafka Eagle炫酷大屏界面
启动完毕,访问地址为 http://127.0.0.1:8048/,输入用户名及密码(admin/123456)即可登录。