kafka监控系统kafka eagle安装使用

简介

介绍一个国人开源的kafka的监控系统Kafka-Eagle.同类型的还有kafka-manager,不过官方版已经很久不更新了,不支持kafka2以后的版本,滴滴维护开源了一个支持kafka多版本监控的kafka-manager,之后有时间了再试试。

官网: https://www.kafka-eagle.org/

Github:https://github.com/smartloli/kafka-eagle

下载:http://download.kafka-eagle.org/

历史版本:https://docs.kafka-eagle.org/5.changelog/1.changelog

没梯子的话下载起来比较慢,这里分享我已经下载好的版本。

kafka-eagle-v1.4.6.tar.gz

我这里使用最新的1.4.6版本进行部署。

首先要有kafka(废话,没有kafka监控啥),kafka 2.4.1单机版部署及使用

1.解压安装包

tar -zxvf kafka-eagle-${version}-bin.tar.gz

2.配置JAVA_HOME和KE_HOME:

vim /etc/profile

export JAVA_HOME=/path/to/jdk8 

export KE_HOME=/path/to/kafka-eagle

export PATH=$PATH:$JAVA_HOME/bin:$KE_HOME/bin

3.进入$KE_HOME/config 修改配置文件:

vim system-config.properties

######################################
# 设置Kafka多集群,这里只需要设置Zookeeper,
# 系统会自动识别Kafka Broker
######################################
kafka.eagle.zk.cluster.alias=cluster1
cluster1.zk.list=sdakf01:2181
#这里如果是zk集群就是cluster1.zk.list=sdakf01:2181,sdakf02:2181,sdakf03:2181

######################################
# broker size online list
######################################
cluster1.kafka.eagle.broker.size=20

######################################
# 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

######################################
# 开启性能监控,数据默认保留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="kafka" password="kafka";
cluster1.kafka.eagle.sasl.client.id=
cluster1.kafka.eagle.sasl.cgroup.enable=false
cluster1.kafka.eagle.sasl.cgroup.topics=


######################################
# 存储Kafka Eagle元数据信息的数据库,目前支持
# MySQL和Sqlite,默认使用Sqlite进行存储
# kafka sqlite jdbc driver address
######################################
kafka.eagle.driver=org.sqlite.JDBC
#kafka.eagle.url=jdbc:sqlite:/hadoop/kafka-eagle/db/ke.db
kafka.eagle.url=jdbc:sqlite:/opt/app/kafka-eagle-web-1.4.6/db/ke.db
kafka.eagle.username=root
#kafka.eagle.password=www.kafka-eagle.org
kafka.eagle.password=123456

######################################
# 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

4.注意事项,建议提前做

1.修改jdk默认编码:

vim /etc/profile 或 vim ~/.bash_profile

加上这一句:

export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8"
 

然后source /etc/profile

2.修改kafka的bin/kafka-server-start.sh开启JMX

kafka-eagle会使用JMX去监控kafka的数据,获取topic,consumer,producer,处理时间,消费数,消息数等信息用做可视化报表。

在每个kafka节点下修改bin/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

5.启动Kafka-Eagle验证

$KE_HOME/bin/ke.sh start

出现下面的信息表示启动成功:

打印的日志里也给出了访问地址和管理员账号密码: http://localhost:8048/ke'   admin/123456

作者还提供了其他的辅助命令:

# 查看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]

如果登录一直报错的话可能是因为上面的jdk编码错误的问题,可以查看前端访问日志:

在$KE_HOME/kms/logs/catalina.out

修改JDK默认编码重新启动KE即可。

首页:

Topic:

KSQL:

发送消息

创建Topic

Consumer:

zk&kafka:

ZK cli:

监控仪表盘:

告警:

监控大屏:

更多玩法请参考官方手册。https://docs.kafka-eagle.org/

猜你喜欢

转载自blog.csdn.net/wsdc0521/article/details/105812299