系列导航

一、kafka搭建-单机版

二、kafka搭建-集群搭建

三、kafka集群增加密码验证

四、kafka集群权限增加ACL

五、kafka集群__consumer_offsets副本数修改

六、java操作kafka(没有密码验证)

七、java操作kafka(有密码验证)

上一篇博客教会大家如何搭建kafka消息队列的集群,这一章增加kafka集群的密码验证,增加集群的安全性。

注:上一篇博客https://www.cnblogs.com/yclh/p/14769664.html

--------zoopkeeper改造---------
1、 修改zoopkeeper的配置文件
    cd /opt/zookeeper/zookeeper-3.4.14/conf
 
    vi zoo.cfg
    增加如下内容
    authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
    requireClientAuthScheme=sasl
    jaasLoginRenew=3600000
 
    

    增加新的配置文件
    vi zk_server_jaas.conf             
    增加如下内容
    Server {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="admin"
    password="admin"
    user_kafka="kafka-user"
    user_producer="prod-pwd";
    user_consumer="cons-user";
    };
    
    
    
2、jar包引入
   Zookeeper部署根目录下创建一个路径for_sasl
   
   cd /opt/zookeeper/                   
   mkdir for_sasl  
   将如下这些jar包放入for_sasl 中
   kafka-clients-0.10.0.1.jar
   lz4-1.3.0.jar
   slf4j-api-1.7.21.jar
   slf4j-log4j12-1.7.21.jar
   snappy-java-1.1.2.6.jar   
    
   修改配置文件
   cd /opt/zookeeper/zookeeper-3.4.14/bin
   vi zkEnv.sh
   添加如下内容      
   for i in /opt/zookeeper/for_sasl/*.jar;
   do CLASSPATH="$i:$CLASSPATH"
   done
   SERVER_JVMFLAGS=" -Djava.security.auth.login.config=/opt/zookeeper/zookeeper-3.4.14/conf/zk_server_jaas.conf "
 
   以上操作所有节点都做
   
3、启动zookeeper
    cd /opt/zookeeper/zookeeper-3.4.14/bin
    #启动服务(3台都需要操作)
    ./zkServer.sh start
    #检查服务器状态
    ./zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /opt/zookeeper/bin/../conf/zoo.cfg
    Mode: follower   #他是否为领导
    

------------------kafka改造------------------------------
新增配置文件:kafka_server_jaas.conf
1、修改kafka的配置文件
    cd /opt/kafka/kafka_2.11-2.1.1/config
    vi kafka_server_jaas.conf      
    添加如下内容:
    KafkaServer {
        org.apache.kafka.common.security.plain.PlainLoginModule required
        username="admin"
        password="admin"
        user_admin="admin"
        user_testProducer="handleP-gzwl"   #预留用户begin  注:这里用户名是testProducer 密码是handleP-gzwl
        user_testConsumer="handleC-gzwl"
        user_testAProducer="oilStatP-gzwl"
        user_testAConsumer="oilStatC-gzwl"  #预留用户end
        user_producer="prod-pwd"
        user_consumer="cons-user";
       };

        Client {
        org.apache.kafka.common.security.plain.PlainLoginModule required
        username="kafka"
        password="kafka-user";
    };
 
 
2、配置server.properties  
  vi  server.properties
  添加如下部分 注意不同主机不同的地址 192.168.0.104、192.168.0.105、192.168.0.106
    listeners=SASL_PLAINTEXT://192.168.0.104:9092
    security.inter.broker.protocol=SASL_PLAINTEXT
    sasl.enabled.mechanisms=PLAIN
    sasl.mechanism.inter.broker.protocol=PLAIN
    authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
    allow.everyone.if.no.acl.found=true
 
    原有的:advertised.listeners=PLAINTEXT://192.168.0.104:9092
    也要改成SASL_PLAINTEXT
 
    这两行注销掉
    #inter.broker.protocol.version=0.9.0
    #log.message.format.version=0.9.0
 

3、创建启动脚本
   cd /opt/kafka/kafka_2.11-2.1.1/bin   
   
   cp kafka-server-start.sh kafka-server-start-sasl.sh
   
   vi kafka-server-start-sasl.sh
   将最后一行 exec $base_dir/kafka-run-class.sh $EXTRA_ARGS kafka.Kafka "$@"
   改为
   exec $base_dir/kafka-run-class.sh $EXTRA_ARGS -Djava.security.auth.login.config=/opt/kafka/kafka_2.11-2.1.1/config/kafka_server_jaas.conf kafka.Kafka "$@"
   
   

4、 启动kafka:
    kafka-server-start-sasl.sh -daemon /opt/kafka/kafka_2.11-2.1.1/config/server.properties
     
     
5、关闭脚本
    kafka-server-stop.sh  
    

------------------kafka常用工具类改造------------------------------
1、创建kafka_client_jaas.conf文件     
   cd /opt/kafka/kafka_2.11-2.1.1/config
   vi kafka_client_jaas.conf
   添加如下内容:
   
  KafkaClient {  
    org.apache.kafka.common.security.plain.PlainLoginModule required  
            username="producer"  
            password="prod-pwd";  
  };
 
 
2、加入环境变量
    cd /opt/kafka/kafka_2.11-2.1.1/config
    vi admin_sasl.config
    添加如下内容:
    security.protocol = SASL_PLAINTEXT
    sasl.mechanism = PLAIN     
    
    测试:
    kafka-console-producer.sh --broker-list 192.168.0.104:9092 --topic handle
    
 3、   使kafka-console-producer.sh好用
    
    cd /opt/kafka/kafka_2.11-2.1.1/config
    vi kafka_handle_p_jaas.conf
    
    KafkaClient {  
    org.apache.kafka.common.security.plain.PlainLoginModule required  
    username="handleProducer"  
    password="handleP-gzwl";  
    };  
    
    
    cd /opt/kafka/kafka_2.11-2.1.1/bin
    cp   kafka-console-producer.sh   kafka-console-producer-sasl.sh
    
    vi kafka-console-producer-sasl.sh
    将 exec $(dirname $0)/kafka-run-class.sh kafka.tools.ConsoleProducer "$@"
    改成  exec $(dirname $0)/kafka-run-class.sh -Djava.security.auth.login.config=/opt/kafka/kafka_2.11-2.1.1/config/kafka_handle_p_jaas.conf kafka.tools.ConsoleProducer "$@"
 
    vi producer.config
    添加如下内容:
    security.protocol=SASL_PLAINTEXT
    sasl.mechanism=PLAIN
    
    测试:    
    kafka-console-producer-sasl.sh --broker-list 192.168.0.104:9092 --topic handle --producer.config   /opt/kafka/kafka_2.11-2.1.1/config/producer.config
    
3、使 kafka-consumer-groups.sh 变得好用    
   cd /opt/kafka/kafka_2.11-2.1.1/bin
   cp   kafka-consumer-groups.sh   kafka-consumer-groups-sasl.sh
   vi kafka-consumer-groups-sasl.sh
   
    将最后一行 exec $(dirname $0)/kafka-run-class.sh kafka.admin.ConsumerGroupCommand "$@"
    改为       exec $(dirname $0)/kafka-run-class.sh -Djava.security.auth.login.config=/opt/kafka/kafka_2.11-2.1.1/config/kafka_client_jaas.conf kafka.admin.ConsumerGroupCommand "$@"
    注:这里的配置文件kafka_client_jaas.conf不通topic要用不同的用户名和密码

    
    ------------------------group监控----------------------------
     
    超级用户可以查看所有group  注:stat是消费者的group
    kafka-consumer-groups-sasl.sh  --bootstrap-server SASL_PLAINTEXT://192.168.0.104:9092    --describe --group stat  --command-config /opt/kafka/kafka_2.11-2.1.1/config/admin_sasl.config
 
4、 kafka-topics.sh不用改直接用
    
     创建topic
    kafka-topics.sh --create --zookeeper 192.168.0.104:12181  --replication-factor 2 --partitions 2 --topic test2
    
    查看topic
    
    kafka-topics.sh --list --zookeeper localhost:12181
    或者
    kafka-topics.sh --list --zookeeper 192.168.0.104:12181    
    
    查看topic的详细情况
    kafka-topics.sh --describe --zookeeper 192.168.0.104:12181
    
    指定topic查看
    kafka-topics.sh --describe --zookeeper 192.168.0.104:12181   --topic handle
 
 
    删除topic
    kafka-topics.sh --delete --zookeeper 192.168.0.104:12181   --topic test
    
    
    添加topic的partion
    kafka-topics.sh --alter --topic jyzImageAllNew --zookeeper localhost:12181 --partitions 4

推荐一个适合零基础学习SQL的网站:不用安装数据库,在线轻松学习SQL!

kafka集群三、增加密码验证的更多相关文章

  1. Kafka 集群在马蜂窝大数据平台的优化与应用扩展

    马蜂窝技术原创文章,更多干货请订阅公众号:mfwtech Kafka 是当下热门的消息队列中间件,它可以实时地处理海量数据,具备高吞吐.低延时等特性及可靠的消息异步传递机制,可以很好地解决不同系统间数 ...

  2. (三)kafka集群扩容后的topic分区迁移

    kafka集群扩容后的topic分区迁移 kafka集群扩容后,新的broker上面不会数据进入这些节点,也就是说,这些节点是空闲的:它只有在创建新的topic时才会参与工作.除非将已有的partit ...

  3. kafka学习(三)-kafka集群搭建

    kafka集群搭建 下面简单的介绍一下kafka的集群搭建,单个kafka的安装更简单,下面以集群搭建为例子. 我们设置并部署有三个节点的 kafka 集合体,必须在每个节点上遵循下面的步骤来启动 k ...

  4. kafka集群环境搭建(Linux)

    一.准备工作 centos6.8和jvm需要准备64位的,如果为32位,服务启动的时候报java.lang.OutOfMemoryError: Map failed 的错误. 链接:http://pa ...

  5. Kafka 集群配置SASL+ACL

    一.简介 在Kafka0.9版本之前,Kafka集群时没有安全机制的.Kafka Client应用可以通过连接Zookeeper地址,例如zk1:2181:zk2:2181,zk3:2181等.来获取 ...

  6. kafka集群及监控部署

    1. kafka的定义 kafka是一个分布式消息系统,由linkedin使用scala编写,用作LinkedIn的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础 ...

  7. 六十一.常用组件 、 Kafka集群 、 Hadoop高可用

    1.Zookeeper安装搭建Zookeeper集群并查看各服务器的角色停止Leader并查看各服务器的角色 1.1 安装Zookeeper1)编辑/etc/hosts ,所有集群主机可以相互 pin ...

  8. Centos7.5安装kafka集群

    Tags: kafka Centos7.5安装kafka集群 Centos7.5安装kafka集群 主机环境 软件环境 主机规划 主机安装前准备 安装jdk1.8 安装zookeeper 安装kafk ...

  9. ELK+Kafka集群日志分析系统

    ELK+Kafka集群分析系统部署 因为是自己本地写好的word文档复制进来的.格式有些出入还望体谅.如有错误请回复.谢谢! 一. 系统介绍 2 二. 版本说明 3 三. 服务部署 3 1) JDK部 ...

  10. Kafka【第一篇】Kafka集群搭建

    Kafka初识 1.Kafka使用背景 在我们大量使用分布式数据库.分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户 ...

随机推荐

  1. MacOS|matplotlib 无法显示中文 解决办法

    matplotlib 无法显示中文 解决办法 画图时,中文无法正常显示,如图 下载字体 点击这里获取字体 提取码: wnby 查看字体路径 在 python 环境中执行以下指令 import matp ...

  2. vertx学习总结5之回调函数及其限制,如网关/边缘服务示例所示未来和承诺——链接异步操作的简单模型响应式扩展——一个更强大的模型,特别适合组合异步事件流Kotlin协程

    这章我们讲回调,英文名:Beyond callbacks 一.章节覆盖: 回调函数及其限制,如网关/边缘服务示例所示 未来和承诺--链接异步操作的简单模型 响应式扩展--一个更强大的模型,特别适合组合 ...

  3. 我用 AI 写的《JavaScript 工程师的 Python 指南》电子书发布啦!

    关于本书 你好,我是 luckrnx09,一名靠 React 恰饭的前端工程师,很高兴向你介绍我的第一本开源电子书<JavaScript 工程师的 Python 指南>. 本书的内容完全免 ...

  4. transformer模型

    Transformer由谷歌团队在论文<Attention is All You Need>提出,是基于attention机制的模型,最大的特点就是全部的主体结构均为attention. ...

  5. Transformer在量化投资的应用

    导语 RNN.LSTM和GRU网络已在序列模型.语言模型.机器翻译等应用中取得不错的效果.循环结构(recurrent)的语言模型和编码器-解码器体系结构取得了不错的进展. 但是,RNN固有的顺序属性 ...

  6. RV1126 分区教程

    一.前言 期初我是想弄一个分区存放自己的 APP 程序,如果需要更改应用的时候,只需要烧写独立的分区即可,就不需要重新烧写 rootfs.这是一个简单的操作,为啥还需要记录了,因为我在里面遇到了一些坑 ...

  7. Linux应急响应总结——更新中

    Linux应急响应 用户信息 方向 查看可登录的用户: cat /etc/passwd | grep /bin/bash awk -F: '{if($7!="/usr/sbin/nologi ...

  8. gentoo安装gcc出现error: C compiler cannot create executables

    安装程序  systemd 过程中,出现了error: C compiler cannot create executables 这类错误,经过检查,由于没有配置本地编译器的结果. 输入命令如下: g ...

  9. Spring Boot整合Spring Data连接postgreSQL完成简单的CRUD操作

    导入jpa依赖和postgresql依赖: <!-- jpa依赖 --> <dependency> <groupId>org.springframework.boo ...

  10. Java 集合(一)List

    在 Java 中,主要存在以下三种类型的集合:Set.List 和 Map,按照更加粗略的划分,可以分为:Collection 和 Map,这些类型的继承关系如下图所示: Collection 是集合 ...