Kafka-Eagle简介
源代码地址:https://github.com/smartloli/kafka-eagle
Kafka Eagle是什么
Kafka Eagle包含哪些功能
数据面板
主题
消费者组
集群管理
指标监控
告警
系统管理
数据大屏
Kafka Eagle部署
下载包安装
# 解压安装包
tar xf kafka-eagle-bin-2.0.3.tar.gz -C /opt/
mv /opt/kafka-eagle-bin-2.0.3/kafka-eagle-web-2.0.3-bin.tar.gz ./
rm -rf /opt/kafka-eagle-bin-2.0.3/
tar xf kafka-eagle-web-2.0.3-bin.tar.gz -C /opt/
然后,是配置环境变量,这里需要注意的是,KE_HOME和JAVA_HOME均需在环境变量文件中进行配置(建议在~/.bash_profile文件中进行设置好,否则,可能在启动的时候抛出环境变量找不到的错误),配置内容如下:
# 配置JAVA_HOME和KE_HOME:
vi ~/.bash_profile
export JAVA_HOME=/usr/local/jdk1.8.0_151
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export KE_HOME=/opt/kafka-eagle-web-2.0.3
export PATH=$PATH:$JAVA_HOME/bin:$KE_HOME/bin
配置
# 设置Kafka多集群,这里只需要设置Zookeeper,
# 系统会自动识别Kafka Broker
######################################
kafka.eagle.zk.cluster.alias=cluster1
# cluster1.zk.list=127.0.0.1:2181
cluster1.zk.list=zk01:2181,zk02:2181,zk03:2181
# cluster2.zk.list=127.0.0.1:2181/plain
# cluster3.zk.list=127.0.0.1:2181/scram
# cluster4.zk.list=vmn4:2181
######################################
# Zookeeper线程池最大连接数
######################################
kafka.zk.limit.size=25
######################################
# Kafka Eagle的页面访问端口
######################################
kafka.eagle.webui.port=8048
######################################
# 存储消费信息的类型,一般在0.9版本之前,消费
# 信息会默认存储在Zookeeper中,所以存储类型
# 设置zookeeper即可,如果是在0.10版本之后,
# 消费者信息默认存储在Kafka中,所以存储类型
# 设置为kafka。而且,在使用消费者API时,尽量
# 客户端Kafka API版本和Kafka服务端的版本保持
# 一致性。
######################################
cluster1.kafka.eagle.offset.storage=kafka
cluster2.kafka.eagle.offset.storage=kafka
#cluster3.kafka.eagle.offset.storage=kafka
cluster4.kafka.eagle.offset.storage=kafka
######################################
# 开启性能监控,数据默认保留30天
######################################
kafka.eagle.metrics.charts=true
kafka.eagle.metrics.retain=30
######################################
# KSQL查询Topic数据默认是最新的5000条,如果
# 在使用KSQL查询的过程中出现异常,可以将下面
# 的false属性修改为true,Kafka Eagle会在
# 系统中自动修复错误。
######################################
kafka.eagle.sql.topic.records.max=5000
kafka.eagle.sql.fix.error=false
######################################
# 删除Kafka Topic时需要输入删除密钥,由
# 管理员执行
######################################
kafka.eagle.topic.token=keadmin
######################################
# 开启Kafka ACL特性,例如SCRAM或者PLAIN,
# 一般生产环境会使用SCRAM来做ACL,应为SCRAM
# 可以动态创建和管理用户。
######################################
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="admin" password="admin-secret";
cluster1.kafka.eagle.sasl.client.id=
cluster2.kafka.eagle.sasl.enable=true
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="admin" password="admin-secret";
cluster2.kafka.eagle.sasl.client.id=
######################################
# 存储Kafka Eagle元数据信息的数据库,目前支持
# MySQL和Sqlite,默认使用Sqlite进行存储
######################################
kafka.eagle.driver=org.sqlite.JDBC
kafka.eagle.url=jdbc:sqlite:/opt/kafka-eagle-web-2.0.3/db/ke.db
kafka.eagle.username=root
kafka.eagle.password=www.kafka-eagle.org
######################################
# kafka mysql jdbc driver address
######################################
#kafka.eagle.driver=com.mysql.jdbc.Driver
#kafka.eagle.url=jdbc:mysql://127.0.0.1:3306/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
#kafka.eagle.username=root
#kafka.eagle.password=123456
查看服务状态
# 启动Kafka Eagle系统,执行如下命令:
ke.sh start
# 查看Kafka Eagle运行状态
ke.sh status
# 停止Kafka Eagle
ke.sh stop
# 查看Kafka Eagle GC情况
ke.sh gc
# 查看Kafka Eagle服务器资源占用情况,例如TCP、句柄等
ke.sh stats
# 查看Kafka Eagle版本号
ke.sh version
# 查看Kafka Eagle服务器上JDK的编码情况(如果JDK编码不是UTF-8,可能会有异常出现,执行如下命令,根据提示来修复JDK编码问题)
ke.sh jdk
# 查看Kafka Eagle中是否存在某个类(如果需要精确,类名前面可以加上包名)
ke.sh find [ClassName]
总结
vi kafka-server-start.sh
...
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export KAFKA_HEAP_OPTS="-server -Xms8G -Xmx8G -XX:PermSize=128m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=8 -XX:ConcGCThreads=5 -XX:InitiatingHeapOccupancyPercent=70"
# 开启JMX_PORT端口,端口开启后,Kafka Eagle系统会自动感知获取
export JMX_PORT="9999"
# 注释脚本中默认的信息
# export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
fi