上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

centos 7 kafka2.6单机安装及动态认证SASL SCRAM配置

guduadmin11天前

目录

1.kfaka安装篇

1.1 安装jdk

1.2安装kafka

2.安全篇

2.1 kafka安全涉及3部份:

2.2 Kafka权限控制认证方式

2.3 SASL/SCRAM-SHA-256 配置实例

2.3.1 创建用户

2.3.2 创建 JAAS 文件及配置

3.测试

3.1 创建测试用户

3.2 配置JAAS 文件

3.2.1 生产者配置

3.2.2 消费者配置

3.3 消息收发测试


1.kfaka安装篇

  • 依赖环境:jdk 1.8+
  • 系统:centos 7.6
  • 安装版本:v2.6.2
  • 下载:Apache Kafka

    1.1 安装jdk

    # 安装jdk 1.8
    yum install java-1.8.0-openjdk.x86_64 -y
    

    1.2安装kafka

    # 下载2.6.2 kafka
    wget https://archive.apache.org/dist/kafka/2.6.2/kafka_2.13-2.6.2.tgz
    # 解压
     tar -xzf kafka_2.13-2.6.2.tgz && mv kafka_2.13-2.6.2 /usr/local/kafka
     cd /usr/local/kafka
     
    # 启动zk
    bin/zookeeper-server-start.sh config/zookeeper.properties
    # 启动kafka
    bin/kafka-server-start.sh config/server.properties
    # 启动后查看端口
    # 查看监听zk端口2181、kafka端口 9092
    # netstat -lntp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
            
    tcp6       0      0 :::9092      :::*                    LISTEN      2164/java           
    tcp6       0      0 :::2181                 :::*                    LISTEN      1008/java      

    2.安全篇

    2.1 kafka安全涉及3部份:

    • 传输加密
    • 用户认证与授权
    • ZK开启ACL(默认不开启acl,所有用户可更改,按需开启)

      这里只开启传输加密和用户认证部分,acl不在这里配置

      2.2 Kafka权限控制认证方式

      Kafka支持的认证类别有

      centos 7 kafka2.6单机安装及动态认证SASL SCRAM配置,第1张

      具体使用哪种按需选择,这里以sasl scram认证配置为例

      2.3 SASL/SCRAM-SHA-256 配置实例

      步骤:

      • 创建用户
      • 配置认证
        2.3.1 创建用户

        配置 SASL/SCRAM 的第一步,是创建能连接 Kafka 集群的用户,创建用户admin ,用于实现 Broker 间通信。

        创建用户:

        # 注意将密码替换
        # 创建用户admin
        bin/kafka-configs.sh --zookeeper 127.0.0.1:2181 --alter --add-config 'SCRAM-SHA-256=[password=admin],SCRAM-SHA-512=[password=admin]' --entity-type users --entity-name admin

        附:管理用户命令

        # 查看用户信息
        bin/kafka-configs.sh --zookeeper localhost:2181 --describe --entity-type users --entity-name admin
        # 删除用户
        bin/kafka-configs.sh --zookeeper localhost:2181 --alter  --delete-config 'SCRAM-SHA-512' --entity-type users --entity-name admin
        2.3.2 创建 JAAS 文件及配置

        2.3.2.1 broker配置

        创建用户之后,需要为每个 Broker 创建一个对应的 JAAS 文件。因为本例为单机部署,所以只创建了一份 JAAS 文件即可。如果是集群,需要为每个 Broker 机器都创建一份 JAAS 文件

        JAAS 的文件内容如下

        # 在kafka工作目录下创建jaas.conf文件,用于broker通信
        vim config/kafka_server_jaas.conf
        KafkaServer {
            org.apache.kafka.common.security.scram.ScramLoginModule required
            username="admin"
            password="admin";
        };

        开启broker认证配置

        vim config/server.properties
        # 添加如下配置
        # 开启认证配置
        advertised.listeners=SASL_PLAINTEXT://:9092
        listeners=SASL_PLAINTEXT://:9092
        security.inter.broker.protocol=SASL_PLAINTEXT
        # Broker 间通信也开启 SCRAM 认证,使用 SHA-256 算法
        sasl.mechanism.inter.broker.protocol=SCRAM-SHA-256
        # 开启 SCRAM 认证机制,并启用 SHA-256 算法
        sasl.enabled.mechanisms=SCRAM-SHA-256

        broker启动命令添加 jaas conf配置,用于通信认证

        vim /usr/local/kafka/bin/kafka-server-start.sh 
        # 将最下面的命令注释
        # exec $base_dir/kafka-run-class.sh $EXTRA_ARGS kafka.Kafka "$@"
        # 增加jvm参数:-Djava.security.auth.login.config
        # 修改如下
        exec $base_dir/kafka-run-class.sh $EXTRA_ARGS -Djava.security.auth.login.config=/usr/local/kafka/config/kafka_server_jaas.conf kafka.Kafka "$@"

        重启kafka

        3.测试

        3.1 创建测试用户

        在这里创建 2个用户,分别是producer和 consumer 。producer 用于生产消息,consumer 用于消费消息,producer和consumer用于测试使用,生产中使用可根据业务需要创建对应用户,这里仅用于演示。

        # 创建用户producer
        bin/kafka-configs.sh --zookeeper 127.0.0.1:2181 --alter --add-config 'SCRAM-SHA-256=[password=producer],SCRAM-SHA-512=[password=producer]' --entity-type users --entity-name producer
        # 创建用户consumer
        bin/kafka-configs.sh --zookeeper 127.0.0.1:2181 --alter --add-config 'SCRAM-SHA-256=[password=consumer],SCRAM-SHA-512=[password=consumer]' --entity-type users --entity-name consumer

        3.2 配置JAAS 文件

        3.2.1 生产者配置
        vim /usr/local/kafka/config/producer_jaas.conf
        KafkaClient {
            org.apache.kafka.common.security.scram.ScramLoginModule required
            username="producer"
            password="producer";
        };

        配置生产者启动脚本添加JAAS文件

        vim bin/kafka-console-producer.sh
        # 将下面的命令注释
        #exec $(dirname 
        vim config/producer.properties
        # 添加如下内容
        security.protocol=SASL_PLAINTEXT
        sasl.mechanism=SCRAM-SHA-256
        )/kafka-run-class.sh kafka.tools.ConsoleProducer "$@" # 修改如下 exec $(dirname
        3.2.2 消费者配置
        )/kafka-run-class.sh -Djava.security.auth.login.config=/usr/local/kafka/config/producer_jaas.conf kafka.tools.ConsoleProducer "$@"

        配置producer.properties

        vim /usr/local/kafka/config/consumer_jaas.conf
        KafkaClient {
            org.apache.kafka.common.security.scram.ScramLoginModule required
            username="consumer"
            password="consumer";
        };
        vim bin/kafka-console-consumer.sh
        # 将下面的命令注释
        #exec $(dirname 
        vim config/consumer.properties
        # 添加如下内容
        security.protocol=SASL_PLAINTEXT
        sasl.mechanism=SCRAM-SHA-256
        )/kafka-run-class.sh kafka.tools.ConsoleConsumer "$@" # 修改如下 exec $(dirname

        3.3 消息收发测试

        )/kafka-run-class.sh -Djava.security.auth.login.config=/usr/local/kafka/config/consumer_jaas.conf kafka.tools.ConsoleConsumer "$@"

        配置JAAS文件

         # 发送消息到topic test
         bin/kafka-console-producer.sh --broker-list  localhost:9092 --topic test --producer.config config/producer.properties
        # 读取test消息
        bin/kafka-console-consumer.sh --bootstrap-server  localhost:9092 --topic test --from-beginning --consumer.config config/consumer.properties
        

        配置消费者启动脚本添加JAAS文件配置

        配置consumer.properties

        效果如下centos 7 kafka2.6单机安装及动态认证SASL SCRAM配置,第2张

        至此kafka SASL SCRAM认证配置完毕

网友评论

搜索
最新文章
热门文章
热门标签