• kafka3.4.x配置sasl认证


    背景这里kafka使用的是单独部署的zookeeper 需要走认证配置

    我这里使用的zookeeper版本是3.8.3 kafka 3.4.0

    kafka安装目录:/usr/local/bin/xx/kafka

    zookeeper安装目录:/usr/local/bin/xx/zookeeper

    1. 修改配置文件
      1. 找到kafka的/usr/local/bin/xx/kafka/config/server.properties文件
      2. 修改配置
        1. 1.KAFKA:
        2. 在server.properties 调整
        3. 改动之前:
        4. listeners=SASL_PLAINTEXT://0.0.0.0:9092
        5. advertised.listeners=SASL_PLAINTEXT://x.x.x.x:9092
        6. 改动之后:
        7. listeners=SASL_PLAINTEXT://0.0.0.0:9092
        8. advertised.listeners=SASL_PLAINTEXT://x.x.x.x:9092
        9. security.inter.broker.protocol=SASL_PLAINTEXT
        10. sasl.enabled.mechanisms=PLAIN
        11. sasl.mechanism.inter.broker.protocol=PLAIN
        12. authorizer.class.name=kafka.security.authorizer.AclAuthorizer
        13. allow.everyone.if.no.acl.found=true
        14. zookeeper.client.sasl=true
        15. 2.ZOOKEEPER:
        16. 直接在zoo.cfg 最后增加authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
        17. requireClientAuthScheme=sasl
        18. jaasLoginRenew=3600000
    2. 增加认证jaas.conf文件
        1. 1.在kafka安装目录创建文件/usr/local/bin/xx/kafka/config/
        2. touch kafka_server_jaas.conf
        3. 内容如下:
        4. KafkaServer {
        5. org.apache.kafka.common.security.plain.PlainLoginModule required
        6. username="admin"
        7. password="xx"
        8. user_admin="xx"
        9. user_kafka="xx";
        10. };
        11. Client {
        12. org.apache.kafka.common.security.plain.PlainLoginModule required
        13. username="kafka"
        14. password="xx";
        15. };
        16. KafkaClient {
        17. org.apache.kafka.common.security.plain.PlainLoginModule required
        18. username="kafka"
        19. password="xx";
        20. };
        21. 2.在zookeeper安装目录创建文件/usr/local/bin/xx/zookeeper/conf/
        22. touch zk_server_jaas.conf
        23. 内容如下:
        24. Server {
        25. org.apache.kafka.common.security.plain.PlainLoginModule required
        26. username="admin"
        27. password="xx"
        28. user_kafka="xx";
        29. };
        30. ps:这里创建了两个账户 admin和kafka
        31. 3.全部设置完毕,重启zookeeper和kafka
    3. 消费验证
        1. 1.在kafka安装目录的config目录下创建鉴权文件
        2. cd /usr/local/bin/xx/kafka/config
        3. touch sasl.config
        4. 内容如下:
        5. security.protocol=SASL_PLAINTEXT sasl.mechanism=PLAIN sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="kafka" password="xx";
        6. 2.启动消费者
        7. /usr/local/bin/xx/kafka/bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic test -consumer.config /usr/local/bin/xx/kafka/config/sasl.config
        8. 3.启动生产者
        9. /usr/local/bin/cscmc/app/kafka/bin/kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic test -producer.config /usr/local/bin/xx/kafka/config/sasl.config
        10. 4.自产自消能够成功说明配置全部正确

    4. 注意事项
      1. 单独部署的zookeeper 开启认证缺少依赖包,直接将kafka/libs下的kafka-client和lz4-java拷贝到zookeeer/lib下
      2. 新版本的kafka配置文件的类有更改由authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer --> kafka.security.authorizer.AclAuthorizer

  • 相关阅读:
    webpack 3 + Vue2 使用dotenv配置多环境
    微服务下的Mybatis xml无效绑定问题分析 Invalid bound statement
    css知识学习系列(12)-每天10个知识点
    Java核心类库之集合框架
    一起Talk Android吧(第四百零八回:间接绘制几何图形)
    无线传感器网络:排队论(Queueing Theory)模型
    SpringMVC组件和注解解析
    SpringCloud&Nacos注册中心服务分级存储模型
    【Linux】权限
    创建具有负载平衡和集群的可扩展 Node.js 应用程序
  • 原文地址:https://blog.csdn.net/qq_23945685/article/details/136379289