Kerberos环境下Kafka管理工具Kafka Eagle安装使用

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命令:

ktpass -princ kafka/[email protected]  -mapuser kafka/admin -pass 123!QAZ -out kafkaadmin.keytab -crypto RC4-HMAC-NT

使用KDC的话Linux下导出keytab命令:

kadmin.local -q "xst -norandkey -k kafkaadmin.keytab kafka/[email protected]"

2.进入{KE_HOME}/conf目录,在system-config.properties配置文件中找到“kafka sasl authenticate”片段将配置修改为如下内容

kafka.eagle.sasl.enable=true
kafka.eagle.sasl.protocol=SASL_PLAINTEXT
kafka.eagle.sasl.mechanism=GSSAPI

3.修改${KE_HOME}/conf/kafka_client_jaas.conf文件,内容如下:

KafkaClient {
  com.sun.security.auth.module.Krb5LoginModule required
  useKeyTab=true
  storeKey=true
  serviceName=kafka
  keyTab="/opt/cloudera/kafka-eagle/keytab/kafkaadmin.keytab"
  principal="kafka/[email protected]";
};

Client {
  com.sun.security.auth.module.Krb5LoginModule required
  useKeyTab=true
  storeKey=true
  keyTab="/opt/cloudera/kafka-eagle/keytab/kafkaadmin.keytab"
  principal="kafka/[email protected]";
};

注意: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自带的性能测试脚本生成和消费消息

[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

生产消息脚本

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

消费消息脚本

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

猜你喜欢

转载自blog.csdn.net/yangbosos/article/details/88715822
今日推荐