一、滴滴Logi—KafkaManager
滴滴自建Kafka云管控平台从2019年4月份计划开源到2021月1月14号完成开源,内部迭代了3个大版本,历时22个月修成正果,一经开源便获得了社区用户广泛的认可,截止当前项目Star达到2k。
(长按上方二维码即可查看Github项目详情)
感兴趣的可以点个Star✨收藏一下
安装手册
1、环境依赖
如果是以Release包进行安装的,则仅安装Java及MySQL即可。如果是要先进行源码包进行打包,然后再使用,则需要安装Maven及Node环境。
Java 8+(运行环境需要)MySQL 5.7(数据存储)Maven 3.5+(后端打包依赖)Node 10+(前端打包依赖)
2、获取安装包
1、Release直接下载
这里如果觉得麻烦,然后也不想进行二次开发,则可以直接下载Release包,下载地址:Github Release包下载地址
如果觉得Github的下载地址太慢了,也可以进入Logi-KafkaManager的用户群获取,群地址在README中。
2、源代码进行打包
下载好代码之后,进入Logi-KafkaManager的主目录,执行sh build.sh命令即可,执行完成之后会在output/kafka-manager-xxx目录下面生成一个jar包。
对于windows环境的用户,估计执行不了sh build.sh命令,因此可以直接执行mvn install,然后在kafka-manager-web/target目录下生成一个kafka-manager-web-xxx.jar的包。
获取到jar包之后,我们继续下面的步骤。
3、MySQL-DB初始化
执行create_mysql_table.sql中的SQL命令,从而创建所需的MySQL库及表,默认创建的库名是logi_kafka_manager。
4、启动
5、使用
本地启动的话,访问http://localhost:8080,输入帐号及密码(默认admin/admin)进行登录。更多参考:kafka-manager 用户使用手册
6、产品简介
6.1 快速体验地址
- 体验地址 http://117.51.146.109:8080 账号密码 admin/admin
6.2 体验地图
相比较于同类产品的用户视角单一(大多为管理员视角),滴滴Logi-KafkaManager建立了基于分角色、多场景视角的体验地图。分别是:用户体验地图、运维体验地图、运营体验地图
6.2.1 用户体验地图
- 平台租户申请 :申请应用(App)作为Kafka中的用户名,并用 AppID+password作为身份验证
- 集群资源申请 :按需申请、按需使用。可使用平台提供的共享集群,也可为应用申请独立的集群
- Topic 申 请 :可根据应用(App)创建Topic,或者申请其他topic的读写权限
- Topic 运 维 :Topic数据采样、调整配额、申请分区等操作
- 指 标 监 控 :基于Topic生产消费各环节耗时统计,监控不同分位数性能指标
- 消 费 组 运 维 :支持将消费偏移重置至指定时间或指定位置
6.2.2 运维体验地图
- 多版本集群管控 :支持从
0.10.2到2.x版本 - 集 群 监 控 :集群Topic、Broker等多维度历史与实时关键指标查看,建立健康分体系
- 集 群 运 维 :划分部分Broker作为Region,使用Region定义资源划分单位,并按照业务、保障能力区分逻辑集群
- Broker 运 维 :包括优先副本选举等操作
- Topic 运 维 :包括创建、查询、扩容、修改属性、迁移、下线等
6.2.3 运营体验地图
- 资 源 治 理 :沉淀资源治理方法。针对Topic分区热点、分区不足等高频常见问题,沉淀资源治理方法,实现资源治理专家化
- 资 源 审 批 :工单体系。Topic创建、调整配额、申请分区等操作,由专业运维人员审批,规范资源使用,保障平台平稳运行
- 账 单 体 系 :成本控制。Topic资源、集群资源按需申请、按需使用。根据流量核算费用,帮助企业建设大数据成本核算体系
6.3 核心优势
- 高 效 的 问 题 定 位 :监控多项核心指标,统计不同分位数据,提供种类丰富的指标监控报表,帮助用户、运维人员快速高效定位问题
- 便 捷 的 集 群 运 维 :按照Region定义集群资源划分单位,将逻辑集群根据保障等级划分。在方便资源隔离、提高扩展能力的同时,实现对服务端的强管控
- 专 业 的 资 源 治 理 :基于滴滴内部多年运营实践,沉淀资源治理方法,建立健康分体系。针对Topic分区热点、分区不足等高频常见问题,实现资源治理专家化
- 友 好 的 运 维 生 态 :与滴滴夜莺监控告警系统打通,集成监控告警、集群部署、集群升级等能力。形成运维生态,凝练专家服务,使运维更高效
6.4 滴滴Logi-KafkaManager架构图
二、Kafka Manager kafkaManager
它是由雅虎开源的可以监控整个kafka集群相关信息的一个工具。
(1)可以管理几个不同的集群
(2)监控集群的状态(topics, brokers, 副本分布, 分区分布)
(3)创建topic、修改topic相关配置
1、上传安装包
kafka-manager-1.3.0.4.zip
2、解压安装包
unzip kafka-manager-1.3.0.4.zip -d /kafka/install
3、修改配置文件
进入到conf vim application.conf
#修改kafka-manager.zkhosts的值,指定kafka集群地址
kafka-manager.zkhosts="node01:2181,node02:2181,node03:2181"
4、启动kafka-manager
启动zk集群,kafka集群,再使用root用户启动kafka-manager服务。
bin/kafka-manager 默认的端口是9000,可通过 -Dhttp.port,指定端口 -Dconfig.file=conf/application.conf指定配置文件
nohup bin/kafka-manager -Dconfig.file=conf/application.conf -Dhttp.port=8080 &
5、访问地址
kafka-manager所在的主机名:8080
三、 KafkaOffsetMonitor
该监控是基于一个jar包的形式运行,部署较为方便。只有监控功能,使用起来也较为安全 。
(1)消费者组列表
(2)查看topic的历史消费信息.
(3)每个topic的所有parition列表(topic,pid,offset,logSize,lag,owner)
(4)对consumer消费情况进行监控,并能列出每个consumer offset,滞后数据。
1、下载安装包
KafkaOffsetMonitor-assembly-0.2.0.jar
2、在服务器上新建一个目录kafka_moitor,把jar包上传到该目录中
3、在kafka_moitor目录下新建一个脚本
vim start_kafka_web.sh
#!/bin/sh
java -cp KafkaOffsetMonitor-assembly-0.2.0.jar com.quantifind.kafka.offsetapp.OffsetGetterWeb --zk node01:2181,node
02:2181,node03:2181 --port 8089
--refresh 10.seconds --retain 1.days
--refresh 刷新时间
-retain 数据保留时间
4、启动脚本
nohup sh start_kafka_web.sh &
5、访问地址
在浏览器中即可使用ip:8089访问kafka的监控页面。
四、 Kafka Eagle kafka eagle
底层依赖于数据库
1、下载Kafka Eagle安装包
kafka-eagle-bin-1.2.3.tar.gz
2、解压
tar -zxvf kafka-eagle-bin-1.2.3.tar.gz -C /kafka/install
解压之后进入到kafka-eagle-bin-1.2.3目录中
得到kafka-eagle-web-1.2.3-bin.tar.gz
然后解压 tar -zxvf kafka-eagle-web-1.2.3-bin.tar.gz
重命名 mv kafka-eagle-web-1.2.3 kafka-eagle-web
3、修改配置文件
进入到conf目录 修改system-config.properties
# 填上你的kafka集群信息
kafka.eagle.zk.cluster.alias=cluster1
cluster1.zk.list=node01:2181,node02:2181
node03:2181
# kafka eagle页面访问端口
kafka.eagle.webui.port=8048
# kafka sasl authenticate
kafka.eagle.sasl.enable=false
kafka.eagle.sasl.protocol=SASL_PLAINTEXT
kafka.eagle.sasl.mechanism=PLAIN
kafka.eagle.sasl.client=/kafka/install/kafka-eagle-bin-1.2.3/kafka-eagle-web/conf/kafka_client_jaas.conf
# 添加刚刚导入的ke数据库配置,我这里使用的是mysql
kafka.eagle.driver=com.mysql.jdbc.Driver
//ke是数据库名 kafka eagle会自动构建 不需要提前创建
//后面是用户名 密码
kafka.eagle.url=jdbc:mysql://node03:3306/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
kafka.eagle.username=root
kafka.eagle.password=123456
4、配置环境变量
vi /etc/profile
export KE_HOME=/kafka/install/kafka-eagle-bin-1.2.3/kafka-eagle-web
export PATH=KE_HOME/bin
5、启动kafka-eagle
进入到$KE_HOME/bin目录
执行脚本sh ke.sh start
6、访问地址
启动成功后在浏览器中输入http://node01:8048/ke就可以访问kafka eagle 了。
用户名:admin
password:123456
登录首页
仪表盘信息
kafka集群信息
zookeeper集群
topic信息
查看topic信息
consumer消费者信息
zk客户端命令