温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
Fayson的github: https://github.com/fayson/cdhproject
提示:代码块部分可以左右滑动查看噢
1
文档编写目的
Fayson在前面的文章介绍了《如何在CDH集群安装Kafka Manager》和《0542-6.1.0-非安全环境下Kafka管理工具Kafka Eagle安装使用》。Kafka-eagle支持Kerberos环境下的Kafka集群管理,本篇文章Fayson主要介绍在Kerberos环境下Kafka管理工具Kafka Eagle安装使用。
- 内容概述
1.Kafka-eagle配置
2.Kafka-eagle使用
3.总结
- 测试环境
1.CM和CDH版本为5.15.0
2.Kafka版本为0.10.2 kafka2.2.0
3.Kafka-eagle版本为1.2.9
2
Kafka-eagle配置
在前面的文章《6.1.0-非Kerberos环境下Kafka管理工具Kafka Eagle安装使用》已经介绍了Kafka-eagle的安装及配置,这里就不再重复的讲了。既然要集成Kerberos环境下的Kafka,当然少不了Principal账号和keytab文件。
1.准备一个kafka的Principal账号及keytab文件
使用AD的话window下导出keytab命令:
代码语言:javascript复制ktpass -princ kafka/admin@FAYSON.COM -mapuser kafka/admin -pass 123!QAZ -out kafkaadmin.keytab -crypto RC4-HMAC-NT
使用KDC的话Linux下导出keytab命令:
代码语言:javascript复制kadmin.local -q "xst -norandkey -k kafkaadmin.keytab kafka/admin@FAYSON.COM"
2.进入{KE_HOME}/conf目录,在system-config.properties配置文件中找到“kafka sasl authenticate”片段将配置修改为如下内容
代码语言:javascript复制kafka.eagle.sasl.enable=true
kafka.eagle.sasl.protocol=SASL_PLAINTEXT
kafka.eagle.sasl.mechanism=GSSAPI
3.修改${KE_HOME}/conf/kafka_client_jaas.conf文件,内容如下:
代码语言:javascript复制KafkaClient {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
storeKey=true
serviceName=kafka
keyTab="/opt/cloudera/kafka-eagle/keytab/kafkaadmin.keytab"
principal="kafka/admin@FAYSON.COM";
};
Client {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
storeKey=true
keyTab="/opt/cloudera/kafka-eagle/keytab/kafkaadmin.keytab"
principal="kafka/admin@FAYSON.COM";
};
注意:kafka_client_jaas.conf文件中配置的serviceName=kafka参数,在Kerberos环境下访问Kafka时需要获取serviceName,之前Fayson是在代码里面指定“sasl.kerberos.service.name”与jaas.conf文件中指定效果一致。如下是KafkaClient加载Kerberos配置时获取serviceName代码片段
3
Kafka-eagle使用
1.kafka-eagle监控主页
2.Topic列表界面
3.模拟向指定Topic发送消息界面
4.Consumers监控界面
5.Kafka指标监控界面
4
总结
1.在集成Kerberos环境下的Kafka时需要注意jaas.conf文件中需要增加serviceName属性,否则Kafka-eagle在访问Kakfa时会报“No serviceName defined in either JAAS or Kafka config”错误。
2.Kafka-eagle1.2.9版本使用的Kafka客户端为2.0.0,目前集成Kafka0.10.2版本未发现有什么异常。
更多功能可参考官方文档:https://ke.smartloli.org/
在安装测试过程总使用的Kafka自带的性能测试脚本生成和消费消息
代码语言:javascript复制[root@cdh05 lib]# more /data/disk1/client.properties
security.protocol=SASL_PLAINTEXT
sasl.kerberos.service.name=kafka
client.id=testgroup
bootstrap.servers=cdh2.fayson.com:9092,cdh3.fayson.com:9092,cdh4.fayson.com:9092
max.request.size=4192256
生产消息脚本
代码语言:javascript复制export KAFKA_OPTS="-Djava.security.auth.login.config=/opt/cloudera/kafka-eagle/conf/kafka_client_jaas.conf "
sh /opt/cloudera/parcels/KAFKA/lib/kafka/bin/kafka-producer-perf-test.sh
--topic topic_eagle_1
--num-records 1000
--producer.config /data/disk1/client.properties
--throughput 10
--record-size 1024
消费消息脚本
代码语言:javascript复制export KAFKA_OPTS="-Djava.security.auth.login.config=/opt/cloudera/kafka-eagle/conf/kafka_client_jaas.conf "
/opt/cloudera/parcels/KAFKA/lib/kafka/bin/kafka-consumer-perf-test.sh
--topic topic_eagle_1
--messages 10000
--fetch-size 10
--broker-list cdh2.fayson.com:9092,cdh3.fayson.com:9092,cdh4.fayson.com:9092
--consumer.config /data/disk1/client.properties
提示:代码块部分可以左右滑动查看噢
为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。