Kafka监控系统 --- Kafka Eagle


1. Kafka Eagle 简介

Kafka Eagle监控系统是一款用来监控Kafka集群的工具,目前更新的版本是v1.3.7,支持管理多个Kafka集群、管理Kafka主题(包含查看、删除、创建等)、消费者组合消费者实例监控、消息阻塞告警、Kafka集群健康状态查看等。

设计的背景

在开发过程成开发者需要实时了解Kafka性能状况

在管理大量主题时使用脚本非常不方便

Kafka Eagle v1.2.3整个系统所包含的功能,这里笔者给绘制成了一个图,结果如下图所示:
在这里插入图片描述

应用场景
Kafka Eagle应用场景

2. Kafka Eagle 结构与功能

整体架构
Kafka Eagle整体架构
功能模块
Kafka Eagle功能模块

3. Kafka Eagle依赖

运行jdk环境
编译安装依赖maven环境

4. Kafka Eagle安装

第一步:下载安装包

# 安装包下载地址
http://download.smartloli.org/

第二步:配置环境变量

vi ~/.bash_profile
export JAVA_HOME=/usr/local/jdk8
export KE_HOME=/data/soft/new/kafka-eagle
export PATH=$JAVA_HOME/bin:$KE_HOME/bin:$PATH

source ~/.bash_profile

第三步:配置$KE_HOME/conf/system-config.properties文件

######################################
# 配置多个Kafka集群所对应的Zookeeper
######################################
kafka.eagle.zk.cluster.alias=cluster1,cluster2
cluster1.zk.list=dn1:2181,dn2:2181,dn3:2181
cluster2.zk.list=tdn1:2181,tdn2:2181,tdn3:2181

######################################
# 设置Zookeeper线程数
######################################
kafka.zk.limit.size=25

######################################
# 设置Kafka Eagle浏览器访问端口
######################################
kafka.eagle.webui.port=8048

######################################
# 如果你的offsets存储在Kafka中,这里就配置
# 属性值为kafka,如果是在Zookeeper中,可以
# 注释该属性。一般情况下,Offsets的也和你消
# 费者API有关系,如果你使用的Kafka版本为0.10.x
# 以后的版本,但是,你的消费API使用的是0.8.2.x
# 时的API,此时消费者依然是在Zookeeper中
######################################
cluster1.kafka.eagle.offset.storage=kafka
######################################
# 如果你的集群一个是新版本(0.10.x以上),
# 一个是老版本(0.8或0.9),可以这样设置,
# 如果都是新版本,那么可以将值都设置成kafka
######################################
cluster2.kafka.eagle.offset.storage=zookeeper

######################################
# 是否启动监控图表,默认是不启动的
######################################
kafka.eagle.metrics.charts=false

######################################
# 在使用Kafka SQL查询主题时,如果遇到错误,
# 可以尝试开启这个属性,默认情况下,不开启
######################################
kafka.eagle.sql.fix.error=false

######################################
# 邮件服务器设置,用来告警
######################################
kafka.eagle.mail.enable=false
kafka.eagle.mail.sa=
kafka.eagle.mail.username=
kafka.eagle.mail.password=
kafka.eagle.mail.server.host=
kafka.eagle.mail.server.port=

######################################
# 设置告警用户,多个用户以英文逗号分隔
######################################
[email protected]


######################################
# 超级管理员删除主题的Token
######################################
kafka.eagle.topic.token=keadmin

######################################
# 如果启动Kafka SASL协议,开启该属性
######################################
kafka.eagle.sasl.enable=false
kafka.eagle.sasl.protocol=SASL_PLAINTEXT
kafka.eagle.sasl.mechanism=PLAIN

######################################
# Kafka Eagle默认存储在Sqlite中,如果要使用
# MySQL可以替换驱动、用户名、密码、连接地址
######################################
#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.driver=org.sqlite.JDBC
kafka.eagle.url=jdbc:sqlite:/Users/dengjie/workspace/kafka-egale/db/ke.db
kafka.eagle.username=root
kafka.eagle.password=root

第四步:启动Kafka Eagle

命令 说明
ke.sh start 启动Kafka Eagle系统
ke.sh stop 停止Kafka Eagle系统
ke.sh restart 重启Kafka Eagle系统
ke.sh status 查看Kafka Eagle系统运行状态
ke.sh stats 统计Kafka Eagle系统占用Linux资源情况
ke.sh find [ClassName] 查看Kafka Eagle系统中的类是否存在

5. Kafka Eagle监控趋势图

Kafka系统默认是没有开启JMX端口的,所以Kafka Eagle的监控趋势图默认采用不启用的方式,即kafka.eagle.metrics.charts=false。如果需要查看监控趋势图,需要开启Kafka系统的JMX端口,设置该端口在$KAFKA_HOME/bin/kafka-server-start.sh脚本中,设置内容如下:

vi kafka-server-start.sh

if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
    export KAFKA_HEAP_OPTS="-server -Xms2G -Xmx2G -XX:PermSize=128m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=8 -XX:ConcGCThreads=5 -XX:InitiatingHeapOccupancyPercent=70"
    export JMX_PORT="9999"
    #export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
fi

6. Kafka SQL查询Topic

还有一部分同学在Kafka Eagle系统的SQL查询Topic时,会出现查询不到数据的情况。这里查询不到数据可能情况有多种,首先需要排除Kafka集群因素,确保Kafka集群运行正常,Topic能够正常访问,并且Topic中是有数据的。
在排除一些主观因素后,回到Kafka Eagle系统应用层面,如果出现这种问题,可以尝试开启属性kafka.eagle.sql.fix.error=true,这个属性默认是不开启的。正常情况下使用Kafka SQL查询Topic
在这里插入图片描述

7. 总结

如果在使用Kafka Eagle系统中遇到其他问题,可以查看$KE_HOME/logs/ke_console.out日志来分析具体的异常信息,一般都会提示具体的错误,大家可以根据错误提示来进行解决。

猜你喜欢

转载自blog.csdn.net/baidu_41847368/article/details/114767565