在实际的应用中,需要时刻的关注Kafka集群的资源信息,查看集群的代理节点的监控状态,主题的分区等信息,以及消费组的其他数据。我们通过Kafka的命令可以模拟它的生产者以及消费者的数据,以及消费者的数据情况,但是无法全面的看到Kafka的整体监控信息。比如Kafka的CPU以及内存的资源消耗情况,和Active Brokers的情况。本文章主要介绍Kafka Eagle监控工具的搭建以及应用。
首先到https://www.kafka-eagle.org/下载最新版本的Kafka Eagle,下载完成后,我们需要进行编译(本地必须已经完整的搭建了Java环境以及Maven的环境)。下载成功后,进入到解压的目录,解压后的目录为:
需要完善pom.xml的文件,文件内容主要为:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.smartloli.kafka.eagle</groupId>
<artifactId>kafka-eagle</artifactId>
<packaging>pom</packaging>
<version>2.0.4</version>
<name>ke</name>
<url>https://repo1.maven.org/maven2/</url>
<properties>
<project.version>2.0.4</project.version>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<modules>
<module>kafka-eagle-common</module>
<module>kafka-eagle-api</module>
<module>kafka-eagle-web</module>
<module>kafka-eagle-core</module>
<module>kafka-eagle-plugin</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
完善pom.xml的文件后,执行./build.sh的命令进行编译,就会显示如下的信息:
编译成功后,在目录kafka-eagle-web/target的目录下
把压缩文件kafka-eagle-web-2.0.4-bin.tar.gz单独的复制到一个目录下,然后进行解压,解压后,在config配置文件里面的system-config.properties的文件内容,具体完善后的内容为:
######################################
# multi zookeeper & kafka cluster list
######################################
kafka.eagle.zk.cluster.alias=cluster1
cluster1.zk.list=localhost:2181,47.95.142.233: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.kafka.eagle.broker.size=20
######################################
# zk client thread limit
#设置Zookpeer连接池大小
######################################
kafka.zk.limit.size=25
######################################
# kafka eagle webui port
#设置浏览器访问的端口号
######################################
kafka.eagle.webui.port=8048
######################################
# kafka jmx acl and ssl authenticate
######################################
cluster1.kafka.eagle.jmx.acl=false
cluster1.kafka.eagle.jmx.user=keadmin
cluster1.kafka.eagle.jmx.password=keadmin123
cluster1.kafka.eagle.jmx.ssl=false
cluster1.kafka.eagle.jmx.truststore.location=/Users/dengjie/workspace/ssl/certificates/kafka.truststore
cluster1.kafka.eagle.jmx.truststore.password=ke123456
######################################
# kafka offset storage
######################################
cluster1.kafka.eagle.offset.storage=kafka
cluster2.kafka.eagle.offset.storage=zk
######################################
# kafka jmx uri
######################################
cluster1.kafka.eagle.jmx.uri=service:jmx:rmi:///jndi/rmi://%s/jmxrmi
######################################
# kafka metrics, 15 days by default
######################################
kafka.eagle.metrics.charts=true
kafka.eagle.metrics.retain=15
######################################
# kafka sql topic records max
######################################
kafka.eagle.sql.topic.records.max=5000
######################################
# delete kafka topic token
#管理员删除Topic的口令
######################################
kafka.eagle.topic.token=keadmin
######################################
# kafka sasl authenticate
#是否开启Kafka SASL安全认证
######################################
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="kafka" password="kafka-eagle";
cluster1.kafka.eagle.sasl.client.id=
cluster1.kafka.eagle.blacklist.topics=
cluster1.kafka.eagle.sasl.cgroup.enable=false
cluster1.kafka.eagle.sasl.cgroup.topics=
cluster2.kafka.eagle.sasl.enable=false
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="kafka" password="kafka-eagle";
cluster2.kafka.eagle.sasl.client.id=
cluster2.kafka.eagle.blacklist.topics=
cluster2.kafka.eagle.sasl.cgroup.enable=false
cluster2.kafka.eagle.sasl.cgroup.topics=
######################################
# kafka ssl authenticate
######################################
cluster3.kafka.eagle.ssl.enable=false
cluster3.kafka.eagle.ssl.protocol=SSL
cluster3.kafka.eagle.ssl.truststore.location=
cluster3.kafka.eagle.ssl.truststore.password=
cluster3.kafka.eagle.ssl.keystore.location=
cluster3.kafka.eagle.ssl.keystore.password=
cluster3.kafka.eagle.ssl.key.password=
cluster3.kafka.eagle.blacklist.topics=
cluster3.kafka.eagle.ssl.cgroup.enable=false
cluster3.kafka.eagle.ssl.cgroup.topics=
######################################
# kafka sqlite jdbc driver address
#默认数据存储到sqlite
######################################
# kafka.eagle.driver=org.sqlite.JDBC
# kafka.eagle.url=jdbc:sqlite:/hadoop/kafka-eagle/db/ke.db
# kafka.eagle.username=root
# kafka.eagle.password=www.kafka-eagle.org
######################################
# kafka mysql jdbc driver address
#数据存储到MySQL
######################################
kafka.eagle.driver=com.mysql.jdbc.Driver
kafka.eagle.url=jdbc:mysql://localhost:3306/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
kafka.eagle.username=root
kafka.eagle.password=123456
这地方我们会把所有的数据存储到MySQL中。然后把Kafka-Eagle添加到Path的环境变量里面,或者直接进入到bin的目录下,执行
ke.sh start
命令就可以启动Kafka-Eagle了,执行后输出的信息如下:
显示如上说明启动Kafka-Eagle成功,然后访问地址,就会显示出如下的信息:
输入账户和密码登录成功,整个主页面就会显示如下:
可以看到显示具体的主题,TOPICS的数量以及名称,和BROKERS以及其他的信息,点击BScreen可以查看完整的面板信息,如下所示:
如上所示,可以看到生产者以及消费者的数据信息。
感谢您的阅读,后续逐步的介绍Kafka中间件的其他技术栈。