要想对kafka进行可视化监控,我们可以使用EFAK(旧名:kafka-eagle)。
部署成功后,首页长这个样子。
第一步:安装
地址1:官方网站https://www.kafka-eagle.org/,最终跳转的还是github(https://github.com/smartloli/kafka-eagle-bin/archive/v3.0.1.tar.gz)
地址2:githubhttps://github.com/smartloli/kafka-eagle-bin/tags
两种下载方式:
windows操作系统:https://github.com/smartloli/kafka-eagle-bin/archive/refs/tags/v3.0.2.zip
linux操作系统:https://github.com/smartloli/kafka-eagle-bin/archive/refs/tags/v3.0.2.tar.gz
解压,最终得到:efak-web-3.0.2。
说明:最好和kafka放在同级目录下,方便管理。
第二步:环境配置
官方说明文档:https://docs.kafka-eagle.org/2.installation/
因为我在本地测试用的windows,所以本文将以windows为例进行说明。
第一:必须配置环境变量JAVA_HOME(jdk>=1.8)。
第二:必须配置环境变量KE_HOME。
第三步:参数配置
来到efak-web-3.0.2conf目录下,打开system-config.properties文件。
zookeeper集群配置
zookeeper的默认端口号是:2181,按自己的实际需要进行配置即可。
我就用了一个。
数据库配置
efak监控kafka,需要将数据存储到数据库当中。
在system-config.properties文件当中,我们支持使用sqlite
也支持使用mysql。
我这里使用mysql。
最终,在启动efak的时候,它会自动在当前设置的数据库当中建立以下表。
ke_alarm_clusters
ke_alarm_config
ke_alarm_consumer
ke_alarm_crontab
ke_connect_config
ke_consumer_bscreen_press
ke_consumer_group
ke_consumer_group_summary
ke_logsize
ke_metrics
ke_metrics_offline
ke_p_role
ke_resources
ke_role_resource
ke_sql_history
ke_topic_consumer_group_summary_view
ke_topic_rank
ke_user_role
ke_users
视图
ke_topic_consumer_group_summary_view
说明:如果我们不想要将efak的表建在咱们的业务库,那就需要我们手动创建一个库,例如:ke,来专门存储efak的所需的表。
当然,这也建表语句和要插入的数据,我们也可以自己手动创建。
查看代码
日志配置(非必要配置)
来到efak-web-3.0.2kmsconf目录下,打开logging.properties文件。
找到java.util.logging.ConsoleHandler.encoding,并将其值改为:GBK。
如果不改的话,启动后,控制台里的中文将以乱码的形式展示。
第四步:开启JMX
来到kafka_2.13-3.5.1binwindows目录下,找到:kafka-server-start.bat。
选中,右键,编辑。
在set KAFKA_HEAP_OPTS=-Xmx1G -Xms1G下,增加以下参数配置。
保存。
切换到efak-web-3.0.2/bin目录下。
双击运行:ke.bat。
当控制台出现如下字样时,项目启动完成。
efak本地访问地址:http://localhost:8048/
会自动跳转至登录页。
用户名:admin
密码:123456
便捷启动
每次启动zk.bat,我们都要切换到efak-web-3.0.2bin目录下,那有没有更省事的办法呢?
我们可以在efak-web-3.0.2的同级目录下创建一个文件,将以下内容复制进去。
将文件保存为bat格式。
这样,以后启动efak,我们只需运行一个bat文件就可以了。
修改efak的访问端口
修改efak的端口,实际上是修改tomcat的访问端口,因为本质上:efak是以tomcat来部署的项目。
来到efak-web-3.0.2kmsconf目录下,打开server.xml。
说明:
如果你的项目也是用tomcat进行部署的话,
这个tomcat的这些端口,最好都改了,以防端口冲突。
可以在上述端口前面,统一加:1。
Tomcat的端口号取值范围是0-65535之间任意未被占用的端口。
用户管理
用户信息最终保存在:ke_users表。