kafka开启Kerberos

九月1年前技术文章453

1、修改server.properties

#增加如下配置
listeners=SASL_PLAINTEXT://IP:port
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=GSSAPI
sasl.enabled.mechanisms=GSSAPI
sasl.kerberos.service.name=kafka

2、修改consumer.properties

security.protocol=SASL_PLAINTEXT
sasl.mechanism=GSSAPI
sasl.kerberos.service.name=kafka

3、修改producer.properties

security.protocol=SASL_PLAINTEXT
sasl.mechanism=GSSAPI
sasl.kerberos.service.name=kafka

4、增加client.properties

security.protocol=SASL_PLAINTEXT
sasl.kerberos.service.name=kafka

5、在config下增加kafka_jaas.conf

KafkaServer{
        com.sun.security.auth.module.Krb5LoginModule required
        useKeyTab=true
        storeKey=true
        serviceName="kafka"
        keyTab="/data/kerberos/kafka.keytab"
        principal="kafka/dtstack@DTSTACK.COM";
};
KafkaClient{
        com.sun.security.auth.module.Krb5LoginModule required
        useKeyTab=true
        storeKey=true
        serviceName="kafka"
        keyTab="/data/kerberos/kafka.keytab"
        principal="kafka/dtstack@DTSTACK.COM"
        userTicketCache=false;
};
Client{
        com.sun.security.auth.module.Krb5LoginModule required
        useKeyTab=true
        storeKey=true
        serviceName="kafka"
        keyTab="/data/kerberos/kafka.keytab"
        principal="kafka/dtstack@DTSTACK.COM"
        userTicketCache=false;
};

6、修改启动脚本 kafka-server-start.sh,增加krb5文件和kafka_jaas.conf文件

export KAFKA_OPTS="-javaagent:./libs/jmx_prometheus_javaagent-0.11.0.jar=9525:./prometheus/kafka.yml -Djava.security.krb5.conf=/etc/krb5.conf -Djava.security.auth.login.config=./config/kafka_jaas.conf"

if [ $# -lt 1 ];
then
echo "USAGE: $0 [-daemon] server.properties [--override property=value]*"
exit 1
fi
base_dir=$(dirname $0)

if [ "x$KAFKA_LOG4J_OPTS" = "x" ]; then
export KAFKA_LOG4J_OPTS="-Dlog4j.configuration=file:$base_dir/../config/log4j.properties"
fi

if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
fi

EXTRA_ARGS=${EXTRA_ARGS-'-name kafkaServer -loggc'}

COMMAND=$1
case $COMMAND in
-daemon)
EXTRA_ARGS="-daemon "$EXTRA_ARGS
shift
;;
*)
;;
esac
#export JMX_PORT="9524"
export KAFKA_OPTS="-javaagent:./libs/jmx_prometheus_javaagent-0.11.0.jar=9525:./prometheus/kafka.yml -Djava.security.krb5.conf=/etc/krb5.conf -Djava.security.auth.login.config=./config/kafka_jaas.conf"

exec $base_dir/kafka-run-class.sh $EXTRA_ARGS kafka.Kafka "$@"

7、修改脚本文件

修改kafka-topic.sh/kafka-console-consumer.sh/kafka-console-producer.sh文件,同样增加krb5文件和kafka_jaas.conf文件

#在文件首行添加或者在exec前进行配置。
export KAFKA_OPTS="-Djava.security.krb5.conf=/etc/krb5.conf -Djava.security.auth.login.config=/opt/dtstack/Kafka/kafka/config/kafka_jaas.conf"

8、em页面重新启动kafka

9、创建测试topic进行冒烟测试

./kafka-topics.sh --create --zookeeper zkip1:port,zkip2:port,zkip3:port --replication-factor 1 --partitions 3  --topic test --command-config /opt/dtstack/Kafka/kafka/config/client.properties

./kafka-console-producer.sh --broker-list  broker1:9092,broker2:9092,broker3:9092  --topic test --producer.config /opt/dtstack/Kafka/kafka/config/producer.properties

./kafka-console-consumer.sh --bootstrap-server broker1:9092,broker2:9092,broker3:9092 --topic test --from-beginning --consumer.config  /opt/dtstack/Kafka/kafka/config/consumer.properties



标签: kafka

相关文章

Debezium部署以及同步之DB2数据到Kafka的同步

Debezium部署以及同步之DB2数据到Kafka的同步

因为Debezium依赖于kafka之上,所以我们先部署kafka和zookeeper(忽略)。1 环境介绍Debezium1.9版本 Db2 11.5版本  附官网:http...

kafka模拟消费报错 ISR缺失 指定offset提取数据失败场景

kafka模拟消费报错 ISR缺失 指定offset提取数据失败场景

测试集群信息kafka版本:3.0.0172.16.120.236  kafka-id: 0172.16.121.150  kafka-id: 1172.16.121.225  kafka-id: 2...

压测实操--kafka-consumer压测方案

压测实操--kafka-consumer压测方案

环境信息:操作系统centos7.9,kafka版本为hdp集群中的2.0版本。Consumer相关参数使用Kafka自带的kafka-consumer-perf-test.sh脚本进行压测,该脚本参...

压测实操--kafka broker压测方案

压测实操--kafka broker压测方案

环境信息:操作系统centos7.9,kafka版本为hdp集群中的2.0版本。kafka broker参数num.replica.fetchers:副本抓取的相应参数,如果发生ISR频繁进出的情况或...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。