本文由 简悦 SimpRead 转码, 原文地址 blog.csdn.net
本文主要介绍 Apache 和 CDH 平台下 kafka eagle 的安装配置教程,Cloudera CDP 平台可以选择自带的 SMM,也可以像 CDH 一样配置 kafka eagle(推荐)。
简介
kafka eagle(英文 kafka 鹰,又名 EFAK) 是一款由国内公司开源的 Kafka 集群监控系统,可以用来监视 kafka 集群的 broker 状态、Topic 信息、IO、内存、consumer 线程、偏移量等信息,并进行可视化图表展示。独特的 KQL 还可以通过 SQL 在线查询 kafka 中的数据。
官网地址 www.kafka-eagle.org/
github 地址:github.com/smartloli/E…
下载
下载地址 download.kafka-eagle.org/
本文安装的是 3.0.1 版本,支持 Kafka 版本 0.8,0.9.x,0.10.x,0.11.x,1.x,2.x
wget https://github.com/smartloli/kafka-eagle-bin/archive/v3.0.1.tar.gz
安装
解压两次
tar -zvxf v3.0.1.tar.gz
cd kafka-eagle-bin-3.0.1/
tar -zxvf kafka-eagle-web-3.0.1-bin.tar.gz -C /opt/bd/
cd ../
mv kafka-eagle-web-3.0.1 kafka-eagle
创建 mysql 数据库 ke 用来储存元数据
MySQL > create database ke;
设置环境变量
vim /etc/profile
export KE_HOME=/opt/bd/kafka-eagle
export PATH=$PATH:$KE_HOME/bin
source /etc/profile
基本设置
修改配置文件
cd ${KE_HOME}/conf
vim system-config.properties
配置 zookeeper 地址
kafka.eagle.zk.cluster.alias=cluster1
cluster1.zk.list=tdn1:2181,tdn2:2181,tdn3:2181/kafka
重要提示
- 此处示例的 kafka 是 2.4 版本 所以 zookeeper 地址后加上 /kafka, 如果不清楚版本,建议复制 kafka 配置文件的 zookeeper 配置 (CDH6.3.x 及以下不需要加)
- mysql 8.0 在 2.0.x 版本使用中会有问题
配置 Mysql
注释掉 sqlite jdbc driver address 修改 mysql jdbc driver address 改成自己的 MySQL 密码
kafka.eagle.driver=com.mysql.cj.jdbc.Driver
kafka.eagle.url=jdbc:mysql://127.0.0.1:3306/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
#Mysql密码
kafka.eagle.username=root
kafka.eagle.password=123456
开启 JMX 监控
eagle 通过 jmx 收集一些指标,在使用 jmx 之前需要确保 kafka 开启了 jmx 监控
Apache 版本:
开启方法 1:kafka 启动时要添加 JMX_PORT=9999
开启方法 2:vim bin/kafka-server-start.sh
...
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export KAFKA_HEAP_OPTS="-server -Xms2G -Xmx2G -XX:PermSize=128m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=8 -XX:ConcGCThreads=5 -XX:InitiatingHeapOccupancyPercent=70"
export JMX_PORT="9999"
fi
CDH
修改每个 broker 节点的 broker_java_opts:
-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M -XX:MinMetaspaceFreeRatio=50 -XX:MaxMetaspaceFreeRatio=80 -XX:+DisableExplicitGC -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dcom.sun.management.jmxremote=true
其他可选设置 (普通用户忽略,保持默认即可)
| 配置项 | 默认值 | 解释 |
|---|---|---|
| kafka.eagle.sql.fix.error | false | kafka sql 查询失败是否允许自动修复 |
| cluster1.zk.list | ke01:2181,ke02:2181,ke03:2181/cluster1 | zookeeper 集群地址. |
| kafka.zk.limit.size | 25 | eagle 连接 Zookeeper 的最大 client 数. |
| cluster1.kafka.eagle.broker.size | 10 | Kafka broker size online list. |
| kafka.eagle.webui.port | 8048 | Kafka Eagle webui 端口. |
| cluster1.kafka.eagle.offset.storage | kafka | Kafka 消费者 offsets 存储位置 kafka.0.10 前版本是 zookeeper |
| kafka.eagle.sql.topic.records.max | 5000 | Kafka Eagle SQL 每次查询的最大记录数 |
- 如果 Kafka 开启了安全认证如则需要修改 sasl 设置
cluster1.kafka.eagle.sasl.enable=true
cluster1.kafka.eagle.sasl.protocol=SASL_PLAINTEXT
cluster1.kafka.eagle.sasl.mechanism=GSSAPI
cluster1.kafka.eagle.sasl.jaas.config=com.sun.security.auth.module.Krb5LoginModule required useKeyTab=true storeKey=true keyTab="/etc/security/keytabs/kafka_client.keytab" principal="kafka-eagle.org@EXAMPLE.COM";
# make sure there is a local ticket cache "klist -l" to view
# cluster1.kafka.eagle.sasl.jaas.config=com.sun.security.auth.module.Krb5LoginModule required useTicketCache=true renewTicket=true service;
# if your kafka cluster doesn't require it, you don't need to set it up
# cluster1.kafka.eagle.sasl.client.id=
- 如果开启了 zookeeper acl 认证 需要修改以下配置
# Add zookeeper acl
cluster1.zk.acl.enable=true
cluster1.zk.acl.schema=digest
cluster1.zk.acl.username=test
cluster1.zk.acl.password=test123
- kafka 如果开启了 acl ssl 需要修改配置
######################################
# kafka jmx acl and ssl authenticate
######################################
cluster1.kafka.eagle.jmx.acl=true
cluster1.kafka.eagle.jmx.user=keadmin
cluster1.kafka.eagle.jmx.password=keadmin123
cluster1.kafka.eagle.jmx.ssl=false
cluster1.kafka.eagle.jmx.truststore.location=/Users/dengjie/workspace/ssl/certificates/kafka.truststore
cluster1.kafka.eagle.jmx.truststore.password=ke123456
######################################
kafka jmx uri(建议保持默认)
cluster1.kafka.eagle.jmx.uri=service:jmx:rmi:///jndi/rmi://%s/jmxrmi
启动
$KE_HOME/bin/ke.sh start
进度条 100% 后会出现启动成功界面,端口默认 8048
输入密码 admin/123456 登录即可
其他命令
$KE_HOME/bin/ke.sh [start|status|stop|restart|stats]
TIP
可以设置域名让浏览器缓存 js 文件,大大提高加载速度。
参考资料
本文发自 csdn,尊重原创,转载请先经过许可