Kafka 监控平台搭建(Kafka-Eagle)
本篇主要讲解 Kafka-eagle 监控平台的搭建 ,包括如何下载 安装 以及一些配置参数等的讲解 ,我个人觉得Kafka-Eagle监控平台 挺好的 一起来看看吧。
1.下载kafka-Eagle和配置环境变量
1.1 官网下载
首先当然是下载 Kafka-Eagle 了 Kafka-Eagle 官网
直接点击下载
下载后将其解压并且 修改目录名称为 kafka-eagle
1.2 配置环境变量
我的是Mac 如下配置 需要有JDK1.8 以上的 支持
vi ~/.bash_profileexport JAVA_HOME=/usr/local/jdk8export KE_HOME=/data/soft/new/kafka-eagleexport PATH=$PATH:$JAVA_HOME/bin:$KE_HOME/bin
2. 配置 kafka-eagle 的 system-config.properties
在config / system-config.properties
有关详细的配置
####################################### multi zookeeper & kafka cluster list######################################//配置多个Kafka集群所对应的Zookeeperkafka.eagle.zk.cluster.alias=cluster1cluster1.zk.list=192.168.25.6:2181 #cluster2.zk.list=xdn10:2181,xdn11:2181,xdn12:2181####################################### zookeeper enable acl######################################cluster1.zk.acl.enable=falsecluster1.zk.acl.schema=digestcluster1.zk.acl.username=testcluster1.zk.acl.password=test123####################################### broker size online list######################################cluster1.kafka.eagle.broker.size=20####################################### zk client thread limit######################################//设置Kafka Eagle浏览器访问端口kafka.zk.limit.size=25####################################### kafka eagle webui port######################################//设置Kafka Eagle浏览器访问端口kafka.eagle.webui.port=8048####################################### kafka offset storage######################################//如果你的offsets存储在Kafka中,这里就配置//属性值为kafka,如果是在Zookeeper中,可以//注释该属性。一般情况下,Offsets的也和你消//费者API有关系,如果你使用的Kafka版本为0.10.x//以后的版本,但是,你的消费API使用的是0.8.2.x//时的API,此时消费者依然是在Zookeeper中//我的kafka 是高版本 就配置 kafka了cluster1.kafka.eagle.offset.storage=kafka#cluster2.kafka.eagle.offset.storage=zk####################################### kafka metrics, 15 days by default######################################//重点:需要配置成 true 来 是否启动监控图表,目前这个版本默认是启动的kafka.eagle.metrics.charts=truekafka.eagle.metrics.retain=15####################################### kafka sql topic records max######################################kafka.eagle.sql.topic.records.max=5000kafka.eagle.sql.fix.error=true####################################### delete kafka topic token######################################kafka.eagle.topic.token=keadmin####################################### kafka sasl authenticate######################################cluster1.kafka.eagle.sasl.enable=falsecluster1.kafka.eagle.sasl.protocol=SASL_PLAINTEXTcluster1.kafka.eagle.sasl.mechanism=SCRAM-SHA-256cluster1.kafka.eagle.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="kafka" password="kafka-eagle";cluster1.kafka.eagle.sasl.client.id=cluster1.kafka.eagle.blacklist.topics=cluster1.kafka.eagle.sasl.cgroup.enable=falsecluster1.kafka.eagle.sasl.cgroup.topics=//我把 cluster2的都给注释了# cluster2.kafka.eagle.sasl.enable=false# 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="kafka" password="kafka-eagle";# cluster2.kafka.eagle.sasl.client.id=# cluster2.kafka.eagle.blacklist.topics=# cluster2.kafka.eagle.sasl.cgroup.enable=false# cluster2.kafka.eagle.sasl.cgroup.topics=####################################### kafka ssl authenticate######################################cluster3.kafka.eagle.ssl.enable=falsecluster3.kafka.eagle.ssl.protocol=SSLcluster3.kafka.eagle.ssl.truststore.location=cluster3.kafka.eagle.ssl.truststore.password=cluster3.kafka.eagle.ssl.keystore.location=cluster3.kafka.eagle.ssl.keystore.password=cluster3.kafka.eagle.ssl.key.password=cluster3.kafka.eagle.ssl.cgroup.enable=falsecluster3.kafka.eagle.ssl.cgroup.topics=####################################### kafka sqlite jdbc driver address######################################//把sqlite 的给注释了 使用下面的 mysql# kafka.eagle.driver=org.sqlite.JDBC# kafka.eagle.url=jdbc:sqlite:/hadoop/kafka-eagle/db/ke.db# kafka.eagle.username=root# kafka.eagle.password=www.kafka-eagle.org####################################### kafka mysql jdbc driver address######################################//需要配置一个mysql地址 数据库名称为 ke 数据库不用你创建,它会自己创建并且初始化表,但是数据库的账号密码要配置正确kafka.eagle.driver=com.mysql.jdbc.Driverkafka.eagle.url=jdbc:mysql://127.0.0.1:3306/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNullkafka.eagle.username=rootkafka.eagle.password=root
3. 启动Kafka-Eagle
需要先把Kafka 环境启动起来
配置完成后,可以执行Kafka Eagle脚本ke.sh。如果首次执行,需要给该脚本赋予执行权限,命令如下
chmod +x ke.sh
在ke.sh脚本中,支持以下命令:
命令 | 说明 |
---|---|
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系统中的类是否存在 |
启动命令 :./ke.sh start
启动如果成功则 可以出现下面的打印
访问 http://localhost:8048
账号:admin
密码:123456
如果登录不进去,则可能是你没有配置好 数据库等配置,默认Kafka-eagle 使用的sqlit ,我这里配置成 mysql
kafka.eagle.driver=com.mysql.jdbc.Driverkafka.eagle.url=jdbc:mysql://127.0.0.1:3306/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNullkafka.eagle.username=rootkafka.eagle.password=root
配置正确后就能看到 数据库会自动创建一个 ke 并且初始化了一些表结构
登录进去
4.集成SpringBoot 模拟发送一些消息
结合SpringBoot 集成Kafka 那一篇创建的 项目 提供一个 接口,该接口模拟发送很多的数据到Kafka 来看看 监控平台
@GetMapping("testSend") public void testSend() { for (int i = 0; i < 100000; i++) { String msg = "Test-" + UUID.randomUUID().toString(); try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } kafkaSender.send(msg); } }
5. 相关功能介绍
5.1 Topics
Topics 菜单下面有 Create (创建) List (展示Topic) KSQL(编写像sql一样的查询语句)
5.1.1 List
可以看到我有2个Topic 展示在下面
5.1.2 KSQL
可以像写Sql 一样 去查询某个 Topic
5.1.3 Mock 模拟 发送消息
5.2 Consumers
Consumers 里展示了 所有的消费者
可以看到 Producer 的 指标
可以看到 Consumer 的 指标
5.3 BScreen 大屏
大屏展示了 一些相信的信息 包括近七天的生产者数据量和 消费者数据量 等等数据
5.4 Metrics 监控指标
监控指标菜单 默认是无法 获取到数据的,需要将 Kafka的 JMX 功能开启,开启后 Kafka-Eagle 才能通过这个JMX来获取到 一些指标数据
5.4.1 Kafka 开启JMX 功能
只需要把 kafka-server-start.sh 脚本文件第一行 添加 export JMX_PORT=9988
端口随意,要能使用的 ,重启Kafka
如下 监控指标数据 就有了
5.5 AlarmConsumer 发送报警邮件
可以通过该菜单来配置 发送一些报警 信息 ,我这里就不展开了
总结
本篇主要讲解 Kafka-eagle 监控平台的搭建 ,包括如何下载 安装 以及一些配置参数等的讲解 ,还介绍了一些基本菜单的功能,以及让 Metrics 生效 需要 Kafka 开启JMX 等等 介绍 ,快来尝试尝试吧 !