Kafka三种可视化监控管理工具Monitor/Manager/Eagle
1.Kafka Monitor
下载链接:https://github.com/Morningstar/kafka-offset-monitor/releases/tag/0.4.6
- 上传jar包KafkaOffsetMonitor-assembly-0.4.6-SNAPSHOT.jar到集群
- 在/opt/module/下创建kafka-offset-console文件夹
- 将上传的jar包放入刚创建的目录下
- 在/opt/module/kafka-offset-console目录下创建启动脚本start_en.sh,内容如下:
#!/bin/bash
# 默认port为8086,由于我的环境8086端口已被占用,所有改为8087
java -Xms512M -Xmx512M -Xss1024K -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -cp KafkaOffsetMonitor-assembly-0.4.6-SNAPSHOT.jar
com.quantifind.kafka.offsetapp.OffsetGetterWeb
--offsetStorage kafka
--kafkaBrokers cm1:9092,cm2:9092,cm3:9092
--kafkaSecurityProtocol PLAINTEXT
--zk cm1:2181,cm2:2181,cm3:2181
--port 8087
--refresh 10.seconds
--retain 2.days
--dbName offsetapp_kafka 1>mobile-logs/stdout.log 2>mobile-logs/stderr.log &
- 在/opt/module/kafka-offset-console目录下创建mobile-logs文件夹
mkdir /opt/module/kafka-offset-console/mobile-logs
- 启动KafkaMonitor
./start_en.sh
- 登录页面cm1:8087端口查看详情
启动一个消费者和一个生产者
2.Kafka Manager
2.1 部署
https://github.com/yahoo/kafka-manager/archive/1.3.3.15.zip
- 上传压缩包kafka-manager-1.3.3.15.zip到集群
- 解压kafka-manager-1.3.3.15.zip
$ unzip kafka-manager-1.3.3.15.zip
- 修改kafka-manager-1.3.3.21/conf/application.conf文件启用Kafka-Manager使用账号登录
# 修改为:
kafka-manager.zkhosts="cm1:2181,cm2:2181,cm3:2181"
basicAuthentication.enabled=true
basicAuthentication.enabled=${?KAFKA_MANAGER_AUTH_ENABLED}
basicAuthentication.username="admin"
basicAuthentication.username=${?KAFKA_MANAGER_USERNAME}
basicAuthentication.password="admin"
basicAuthentication.password=${?KAFKA_MANAGER_PASSWORD}
basicAuthentication.realm="Kafka-Manager"
将登录Kafka-Manager的账号密码设置为admin。
- 使用如下命令启动Kafka-Manager
修改文件的权限
[root@cm1 bin]$ chmod 777 kafka-manager
# 默认为9000,但是我的集群有端口冲突,改为8090
[root@cm1 kafka-manager-1.3.3.15]$ nohup bin/kafka-manager -Dhttp.port=8090 > nohup.out 2>&1 &
端口8090监听成功。
- 在浏览器输入http://cm1:8090访问即可
到此为止Kafka-Manager就部署成功了。
- 登录Kafka-Manager管理界面
点击Cluster菜单,添加一个Kafka集群
根据自己当前Kafka集群的环境进行相应的配置,点击“Save”完成集群添加
点击“Kafka-CDH”连接,进入Kafka集群的详细界面,下图为Kafka的统计信息
Brokers界面,可以看到当前Kafka集群的所有Broker节点及综合指标
点击相应的Broker ID可以看到每个Broker的统计信息及详细指标等
在Topic菜单下,可以创建和查看集群的所有Topic
创建一个Topic
2.2 总结
Kafka-Manager支持Kafka的0.8.x,0.9.x,0.10.x,0.11.x版本
Kafka需要JDK8的环境运行
Kafka-Manager支持管理多个Kafka集群。
可以便捷的查看Kafka集群的状态(Brokers、Topics、副本分布及分区分布情况)
通过界面的方式创建Topic及为Topic重新分配分区等功能。
Kafka-Manager启动默认端口号为9000,可以通过-Dhttp.port来指定端口号
3.Kafka Eagle
参考 https://blog.csdn.net/qq_19524879/article/details/82848797
- 从git上下载:https://github.com/smartloli/kafka-eagle-bin/archive/v1.4.8.tar.gz(本例选择1.2.9版本)
- 解压(需要解压两次)
cd /opt/module/
tar -zxf kafka-eagle-bin-1.4.8.tar.gz
cd kafka-eagle-bin-1.4.8
tar -zxf kafka-eagle-web-1.4.8-bin.tar.gz
设置全局变量,设置JDK的全局变量JAVA_HOME和本应用的KE_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_131-cloudera
export KE_HOME=/opt/module/kafka-eagle-bin-1.4.8/kafka-eagle-web-1.4.8
export PATH=$JAVA_HOME/bin:$KE_HOME/bin:$PATH
进入kafka-eagle的conf目录下修改配置文件 system-config.properties ,配置基础配置
cd /opt/module/kafka-eagle-bin-1.4.8/kafka-eagle-web-1.4.8
# 修改为以下内容
#设置kafka集群(可以多个)
kafka.eagle.zk.cluster.alias=cluster1
cluster1.zk.list=cm1:2181,cm2:2181,cm3:2181
######################################
# kafka eagle 的端口
######################################
kafka.eagle.webui.port=8048
######################################
# kafka jdbc 地址注意可以自己安装数据mysql也可以自带的
######################################
kafka.eagle.driver=org.sqlite.JDBC
kafka.eagle.url=jdbc:sqlite:/opt/module/kafka-eagle-bin-1.4.8/kafka-eagle-web-1.4.8/db/ke.db
kafka.eagle.username=root
kafka.eagle.password=123456
文件配置完毕后开始启动 ,启动要进入bin目录下
#进入bin目录后会看到 ke.sh 文件先修改文件的权限
chomd 777 ke.sh
ke.sh start
# 停止
ke.sh stop
启动成功后的控制台输出
部署完成结束
- 下面介绍下他的页面功能
功能界面
使用下 kafkasql查询的功能
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法