kafka访问配置说明

求知探索 1年前 ⋅ 923 阅读

lite2.0的kafka集群使用SASL认证,有两种类型环境:kerberos环境和非kerberos环境。kafka的访问方式有produce和consume,下面分别介绍不同环境下的kafka集群的访问方式。

1. 非kerberos环境

1.1. 准备

访问非kerberos环境的kafka集群之前,需要进行以下三项准备工作。

第一步:准备kafka-client-jaas.conf配置文件,也直接取kafka生成的客户端配置文件/etc/kafka/conf/kafka-client-jaas.conf,内容如下所示:

kafka-client-jaas.conf 

KafkaClient {

    org.apache.kafka.common.security.plain.PlainLoginModule required

    username="kafka"

    password="kafka@Tbds.com";

};

第二步:配置KAFKA_OPTS参数,执行命令:export KAFKA_OPTS='-Djava.security.auth.login.config=/etc/kafka/conf/kafka-client-jaas.conf'

第三步:准备kafka-sasl-conig.properties配置文件,内容如下所示:

kafka-sasl-conig.properties 

security.protocol=SASL_PLAINTEXT

sasl.mechanism=PLAIN

假设把kafka-sasl-conig.properties文件保存在/tmp/目录下,即/tmp/kafka-sasl-conig.properties。

1.2. produce demo

produce即往kafka写入消息,produce的执行方法如下所示:

produce执行案例 

export KAFKA_OPTS='-Djava.security.auth.login.config=/etc/kafka/conf/kafka-client-jaas.conf'

 

#第一种方法

bin/kafka-console-producer.sh --topic testTopic1 --bootstrap-server tbds-9-135-219-135:6669 --producer-property security.protocol=SASL_PLAINTEXT --producer-property sasl.mechanism=PLAIN

 

#第二种方法

bin/kafka-console-producer.sh --topic testTopic1 --bootstrap-server tbds-9-135-219-135:6669 --producer.config /tmp/kafka-sasl-config.properties

 

1.3. consumer demo

consume即从kafka读取消息,consume的执行方法如下所示:

consume执行案例 

export KAFKA_OPTS='-Djava.security.auth.login.config=/etc/kafka/conf/kafka-client-jaas.conf'

 

#第一种方法

bin/kafka-console-consumer.sh --topic testTopic1 --from-beginning --bootstrap-server tbds-9-135-219-135:6669 --consumer-property security.protocol=SASL_PLAINTEXT --consumer-property sasl.mechanism=PLAIN

 

#第二种方法

bin/kafka-console-consumer.sh --topic testTopic1 --from-beginning --bootstrap-server tbds-9-135-219-135:6669 --consumer.config /tmp/kafka-sasl-config.properties

 

2. kerberos环境

2.1. 准备

访问kerberos环境的kafka集群之前,需要进行以下三项准备工作。

第一步:准备kerberos认证用户。使用principal为“kafka-client/tbds-9-134-191-22@TBDS.COM”,keytab密钥文件为“/etc/security/keytabs/kafka.client.keytab”。

第二步:准备jaas配置文件配置文件/tmp/kafka-client-jaas.properties,内容如下所示:

/tmp/kafka-client-jaas.properties 

security.protocol=SASL_PLAINTEXT

sasl.mechanism=GSSAPI

sasl.kerberos.service.name=kafka

第三步:准备java.security.auth.login.config配置文件/etc/kafka/conf/kafka-client-jaas.conf,此文件在kafka安装时已创建,如果文件不存在才需手动创建,内容如下所示:

kafka-client-jaas.conf 

// Kafka client authentication

KafkaClient {

    com.sun.security.auth.module.Krb5LoginModule required

    useKeyTab=true

    storeKey=true

    keyTab="/etc/security/keytabs/kafka.client.keytab"

    principal="kafka-client/tbds-9-134-191-22@TBDS.COM";

};

主要是替换keyTab和principal字段的值。

2.2. produce demo

produce案例如下所示:

produce in kerberos 

export KAFKA_OPTS='-Djava.security.auth.login.config=/etc/kafka/conf/kafka-client-jaas.conf';

 

#第一种方式

bin/kafka-console-producer.sh --bootstrap-server tbds-9-134-191-129:6669,tbds-9-134-191-22:6669,tbds-9-134-191-235:6669 --topic test20210601 --producer-property security.protocol=SASL_PLAINTEXT --producer-property sasl.mechanism=GSSAPI --producer-property sasl.kerberos.service.name=kafka;

 

#第二种方式

bin/kafka-console-producer.sh --bootstrap-server tbds-9-134-191-129:6669,tbds-9-134-191-22:6669,tbds-9-134-191-235:6669 --topic test20210601 --producer.config /tmp/kafka-client-jaas.properties;

 

2.3. consume demo

consume案例如下所示:

consume in kerberos 

export KAFKA_OPTS='-Djava.security.auth.login.config=/etc/kafka/conf/kafka-client-jaas.conf';

 

#第一种方式

bin/kafka-console-consumer.sh --bootstrap-server tbds-9-134-191-129:6669,tbds-9-134-191-22:6669,tbds-9-134-191-235:6669 --topic test20210601 --group abcd001 --from-beginning --consumer-property security.protocol=SASL_PLAINTEXT --consumer-property sasl.mechanism=GSSAPI --consumer-property sasl.kerberos.service.name=kafka;

 

#第二种方式

bin/kafka-console-consumer.sh --bootstrap-server tbds-9-134-191-129:6669,tbds-9-134-191-22:6669,tbds-9-134-191-235:6669 --topic test20210601 --group abcd001 --from-beginning --consumer.config /tmp/kafka-client-jaas.properties;


全部评论: 0

    我有话说: