Kafka Eagle/ efak监控工具使用
1.下载安装
http://download.kafka-eagle.org/
https://github.com/smartloli/kafka-eagle-bin/releases/tag/v2.1.0
https://github.com/smartloli/kafka-eagle-bin
2.配置JDK和KE环境变量
vi ~/.bash_profile
export JAVA_HOME=/usr/local/jdk8
export KE_HOME=/data/soft/new/kafka-eagle
export PATH=$PATH:$JAVA_HOME/bin:$KE_HOME/bin
source ~/.bash_profile
3.解压安装包
tar -zxvf efak-xxx-bin.tar.gz
4.修改配置文件
cd ${KE_HOME}/conf
vi system-config.properties
######################################
# multi zookeeper & kafka cluster list
# Settings prefixed with 'kafka.eagle.' will be deprecated, use 'efak.' instead
######################################
efak.zk.cluster.alias=cluster1
cluster1.zk.list=192.20.32.22:2181,192.20.32.23:2181,192.20.32.24:2181
######################################
# zookeeper enable acl
######################################
cluster1.zk.acl.enable=false
cluster1.zk.acl.schema=digest
cluster1.zk.acl.username=test
cluster1.zk.acl.password=test123
######################################
# broker size online list
######################################
cluster1.efak.broker.size=20
######################################
# zk client thread limit
######################################
kafka.zk.limit.size=16
######################################
# EFAK webui port
######################################
efak.webui.port=8048
######################################
# EFAK enable distributed
######################################
efak.distributed.enable=false
efak.cluster.mode.status=master
efak.worknode.master.host=localhost
efak.worknode.port=8085
######################################
# kafka jmx acl and ssl authenticate
######################################
cluster1.efak.jmx.acl=false
cluster1.efak.jmx.user=keadmin
cluster1.efak.jmx.password=keadmin123
cluster1.efak.jmx.ssl=false
cluster1.efak.jmx.truststore.location=/data/ssl/certificates/kafka.truststore
cluster1.efak.jmx.truststore.password=ke123456
######################################
# kafka offset storage
######################################
cluster1.efak.offset.storage=kafka
cluster2.efak.offset.storage=zk
######################################
# kafka jmx uri
######################################
cluster1.efak.jmx.uri=service:jmx:rmi:///jndi/rmi://192.20.32.29:9988/jmxrmi
######################################
# kafka metrics, 15 days by default
######################################
efak.metrics.charts=true
efak.metrics.retain=15
######################################
# kafka sql topic records max
######################################
efak.sql.topic.records.max=5000
efak.sql.topic.preview.records.max=10
######################################
# delete kafka topic token
######################################
efak.topic.token=keadmin
######################################
# kafka sasl authenticate
######################################
cluster1.efak.sasl.enable=true
cluster1.efak.sasl.protocol=SASL_PLAINTEXT
cluster1.efak.sasl.mechanism=PLAIN
cluster1.efak.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="xxx" password="XXX";
cluster1.efak.sasl.client.id=
cluster1.efak.blacklist.topics=
cluster1.efak.sasl.cgroup.enable=false
cluster1.efak.sasl.cgroup.topics=
######################################
# kafka ssl authenticate
######################################
cluster3.efak.ssl.enable=false
cluster3.efak.ssl.protocol=SSL
cluster3.efak.ssl.truststore.location=
cluster3.efak.ssl.truststore.password=
cluster3.efak.ssl.keystore.location=
cluster3.efak.ssl.keystore.password=
cluster3.efak.ssl.key.password=
cluster3.efak.ssl.endpoint.identification.algorithm=https
cluster3.efak.blacklist.topics=
cluster3.efak.ssl.cgroup.enable=false
cluster3.efak.ssl.cgroup.topics=
######################################
# kafka sqlite jdbc driver address
######################################
#efak.driver=org.sqlite.JDBC
#efak.url=jdbc:sqlite:/hadoop/kafka-eagle/db/ke.db
#efak.username=root
#efak.password=www.kafka-eagle.org
######################################
# kafka mysql jdbc driver address
######################################
efak.driver=org.sqlite.JDBC
efak.url=jdbc:sqlite:/root/kafka-eagle-bin/efak-web-2.1.0/db/ke.db
efak.username=root
efak.password=www.kafka-eagle.org
5.启动
cd ${KE_HOME}/bin
chmod +x ke.sh
sh ke.sh start
# 分布式
ke.sh cluster start
ke.sh cluster restart
ke.sh cluster stop
6.访问界面
# 等待一会后,访问界面
http://192.168.20.21:8084
# 用户名、密码
admin/123456
7.配置kafka JMX用于性能采集
(1.) 开启kafka JMX端口
方法一:
vi 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
方法二:
a.)在 kafka的/bin目录下的kafka-run-class文件中的第一行,添加`JMX_PORT=59903`
b.) 查找KAFKA_JMX_OPTS,绑定ip,添加 `-Djava.rmi.server.hostname=10.11.34.185`
c.) 打开jconsul,输入 `service:jmx:rmi:///jndi/rmi://10.11.34.185:59903/jmxrmi`
(2.)修改zookeeper启动脚本
vi zkServer.sh
...
// after 77 lines
ZOOMAIN="-Dzookeeper.4lw.commands.whitelist=* ${ZOOMAIN}"
(3.) 重启zookeeper、kafka后,用jconsul进行连接测试
service:jmx:rmi:///jndi/rmi://192.168.10.11:9999/jmxrmi
相关链接
http://www.kafka-eagle.org/articles/docs/installation/linux-macos.html