简介
如图 kafka eagle 是可视化的 kafka 监视系统,用于监控 kafka 集群
环境准备:
- 需要的内存:
1.5G+
- 支持的 kafka 版本:
0.8.2.x
,0.9.x
,0.10.x
,0.11.x
,1.x
,2.x
- 支持的操作系统:
Mac OS X
,Linux
,Windows
- 支持的 JDK 版本:
JDK8+
下载地址
下载监控软件,官方 GITHUB 下载,非常非常慢,但是可以下载任意版本,只需要修改最后的 v1.3.7 到想要的版本
https://codeload.github.com/smartloli/kafka-eagle-bin/tar.gz/v1.3.7
蓝奏云极速下载(v1.3.7):
https://keats.lanzous.com/iPuztehkbpc
配置 kafka
更改 kafka 安装目录 /bin 目录 下 kafka-server-start.sh 的这一段 $KAFKA_HEAP_OPTS
里面的内容,提供 jmx 连接端口。KAFKA_HEAP_OPTS JVM的参数可以根据自己服务器的性能进行调大(不建议调小,再小就起不来了)
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export KAFKA_HEAP_OPTS="-server -Xms1G -Xmx1G -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
安装 eagle
解压安装文件
复制下载好的 kafka-eagle-bin-1.3.7.tar.gz
到 /home/kafka
目录,解压
tar -zxvf kafka-eagle-bin-1.3.7.tar.gz
将解压出来的压缩包继续解压
tar -zxvf kafka-eagle-web-1.3.7-bin.tar.gz
移动文件
mv kafka-eagle-web-1.3.7 /home/kafka/eagle
配置环境变量
sudo vi /etc/profile
- 确定 JAVA_HOME 环境变量已经配置
- 在最后面加上以下两行 kafka eagle 的环境变量
export KE_HOME=/home/kafka/eagle
export PATH=$PATH:$KE_HOME/bin
刷新 profile
如果很不幸,环境变量没写对导致 path 变量无效,大部分命令都失效的话,参考这里:关于错误修改了/etc/profile文件(环境变量错误)
source /etc/profile
切换到 bin 目录,为 eagle 的启动脚本添加可执行权限
chmod 777 ke.sh
修改 eagle 的配置文件
切换到 conf 目录,修改配置文件 system-config.properties
首先可以看出 eagle 兼容多套 kafka 集群,可以按需进行增加 / 删除
######################################
# multi zookeeper&kafka cluster list
######################################
kafka.eagle.zk.cluster.alias=cluster1,cluster2
cluster1.zk.list=tdn1:2181,tdn2:2181,tdn3:2181
cluster2.zk.list=xdn10:2181,xdn11:2181,xdn12:2181
我这边是单个集群、集群中只有单节点 kafka 和 zk。这里需要注意:当 eagle 和 zk 在一个局域网的不同阿里云服务器时建议使用局域网IP来配置 zk 地址,如果配公网地址会报域名解析异常导致页面没数据
kafka.eagle.zk.cluster.alias=cluster1
cluster1.zk.list=localhost:2181
端口号,如果端口被占用可以修改
######################################
# kafka eagle webui port
######################################
kafka.eagle.webui.port=8094
0.9 版本之前消费者偏移量存储在 zk、之后存储在 kafka。依据 kafka 版本来配置 value 。如果是低版本 kafka 值取 zookeeper 而非提供的 zk
######################################
# kafka offset storage
######################################
cluster1.kafka.eagle.offset.storage=kafka
kafka.eagle.metrics.charts 是否生成图表展示在页面,默认关闭,建议开启
######################################
# enable kafka metrics
######################################
kafka.eagle.metrics.charts=true
配置数据库,以 MySQL 为例。配置好库名之后,表结构会自动创建,数据库我是自己创建的空库,不知道会不会自动创建库。后续可以通过页面 / 直接修改 ke_user 表来修改管理员的账号和密码
######################################
# kafka jdbc driver address
######################################
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=xxx
启动
需要注意:启动 eagle 需要服务器至少 1.5 G 的可用内存。如果可用内存不足,虽然会显示启动成功的页面。但是输入 ./ke.sh status 会发现服务状态为未启动。此时 ke 会生成如下图的错误日志
别的启动错误,可以查看 kms/logs 下面的 catalina.out,java 的错误大家应该都很熟悉我就不多说了
启动之后访问 host:port/ke 即可访问 eagle 控制台,登录账号 admin,密码 123456