kafka--集群安装 使用SASL/PLAIN加密认证

2020-10-22
官方配置:http://kafka.apache.org/documentation/#security_sasl_plain

kafka:类似于一个数据缓冲区,应用程序接收不了大量数据的冲击,依靠kafka在中间做个缓冲,kafka依靠zk达到一个高可用状态
zk:注册中心

1、环境准备
        1、zk安装--使用kafka的sasl认证  #zk安装请看上个文档https://www.jianshu.com/p/3b22058ee3fd
        2、修改主配置文件、创建zk_jaas文件、声明位置、拷贝kafka下认证文件----如果是集群,所有节点的机器内容要同步修改

1、修改zk的主配置文件---节点同步修改
[root@elastic41 zookeeper]# vim conf/zoo.cfg
#文件中新增以下内容
#kafka加密认证使用
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider   ##指定使用kafka的认证机制为plain
requireClientAuthScheme=sasl
jaasLoginRenew=3600000
zookeeper.sasl.client=true

2、创建zk_jaas文件、声明位置---节点同步修改
[root@elastic41 zookeeper]# cat >> conf/zk_server_jaas.conf <<EOF
    Server {
    org.apache.kafka.common.security.plain.PlainLoginModule required    ##指定使用kafka的认证机制为plain
    username="admin"
    password="admin-secret"
    user_kafka="kafka-sec"
    user_producer="prod-sec";
    };
    EOF

3、声明jaas位置---节点同步修改
[root@elastic41 zookeeper]# vim bin/zkEnv.sh
SERVER_JVMFLAGS=" -Djava.security.auth.login.config=/data/zookeeper/conf/zk_server_jaas.conf"    #将这个变量加入到zkEnv.sh脚本中,zkServer.sh和zkClient.sh启动会调用zkEnv.sh

4、拷贝kafka下认证文件到zk/lib中----节点同步修改
[root@elastic41 zookeeper]# cp -a /root/lxt/kafka_2.11-2.3.0/libs/{kafka-clients-2.3.0.jar,lz4-java-1.6.0.jar,slf4j-api-1.7.26.jar,slf4j-log4j12-1.7.26.jar,snappy-java-1.1.7.3.jar} lib/

5、重新启动zk---添加开机启动项
[root@elastic41 zookeeper]# bin/zkServer.sh restart
[root@elastic41 zookeeper]# echo "/data/zookeeper/bin/zkServer.sh start" >> /etc/rc.local

#######################并没有什么卵用的分割线######################

 安装包下载:http://kafka.apache.org/downloads  下载二进制包解压就行   #我使用的版本 Scala 2.11- kafka_2.11-2.3.0.tgz

1、kafka在配置文件的config中创建两个文件server_jaas和client_jaas文件---集群节点同步修改
[root@elastic41 kafka_2.11-2.3.0]#cat >> config/kafka_server_jaas.conf <<EOF
KafkaServer {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="admin"
    password="admin-sec"
    user_admin="admin-sec"
    user_producer="prod-sec"
    user_consumer="cons-sec";
};
Client {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="kafka"
    password="kafka-sec";
};
EOF

--------------------------------------------------分割线----------------------------------------------
[root@elastic42 kafka_2.11-2.3.0]# cat >> config/kafka_client_jaas.conf <<EOF
KafkaClient {
    org.apache.kafka.common.security.plain.PlainLoginModule required
            username="producer"
            password="prod-sec";
};
EOF

#######################并没有什么卵用的分割线######################

2、配置 kafka中config/server.properties,分别在3个节点修改配置文件,注意ip和broker.id号id号只要三个节点不一样就可以随意,id号和/tmp/kafka-logs/meta.properties下面的id号是对应的,如果id号改变记得修改或者删除meta文件让他重新生成,影响kafka启动!

[root@elastic42 kafka_2.11-2.3.0]# vim config/server.properties
broker.id=1                                                                     #其他节点记得改id号
listeners=SASL_PLAINTEXT://192.168.7.41:9092        #其他节点记得改ip
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
super.users=User:admin;User:producer;User:consumer
allow.everyone.if.no.acl.found=true                              #开启acl拒绝除管理员外任何人启动kafka集群
log.dirs=/data/kafka_2.12-2.3.0/kafka-logs
zookeeper.connect=192.168.7.41:2181,192.168.7.42:2181,192.168.7.43:2181

#######################并没有什么卵用的分割线######################

3、添加kafka-opts参数指定jaas文件位置---其他节点要同步!
#在bin/kafka-server-start.sh中指定server_jaas位置
#在 bin/kafka-console-consumer.sh bin/kafka-console-producer.sh中指定client_jaas位置
[root@elastic41 kafka_2.11-2.3.0]# vim bin/kafka-server-start.sh                                  #位置在base_dir=$(dirname $0)下面就行
export KAFKA_OPTS=" -Djava.security.auth.login.config=/root/lxt/kafka_2.11-2.3.0/config/kafka_server_jaas.conf"

[root@elastic41 kafka_2.11-2.3.0]# vim bin/kafka-console-consumer.sh                                #位置放到if上面  指定client_jaas
export KAFKA_OPTS="-Djava.security.auth.login.config=/root/lxt/kafka_2.11-2.3.0/config/kafka_client_jaas.conf"

[root@elastic41 kafka_2.11-2.3.0]# vim bin/kafka-console-producer.sh                                     #位置放到if上面  指定client_jaas
export KAFKA_OPTS="-Djava.security.auth.login.config=/root/lxt/kafka_2.11-2.3.0/config/kafka_client_jaas.conf"

4、启动kafka--添加开机启动
[root@elastic41 kafka_2.11-2.3.0]#bin/kafka-server-start.sh  config/server.properties       #前台启动可查看报错之类信息、如果启动没有问题可以加 -daemon直接后台启动--或使用nohup  &的方式后台启动
[root@elastic41 ~]# /root/lxt/kafka_2.11-2.3.0/bin/kafka-server-start.sh  -daemon  /root/lxt/kafka_2.11-2.3.0/config/server.properties
[root@elastic41 ~]#echo "/root/lxt/kafka_2.11-2.3.0/bin/kafka-server-start.sh -daemon  /root/lxt/kafka_2.11-2.3.0/config/server.properties" >>/etc/rc.local                                         #这个方式并不太友好,因为他启动依赖zk,如果zk还没起来就执行了这个命令,服务是起不来的

#######################并没有什么卵用的分割线######################

#创建topic
[root@elastic41 kafka_2.11-2.3.0] bin/kafka-topics.sh --create --topic testtopic --replication-factor 3 --partitions 1 --zookeeper localhost:2181
查看topic
[root@elastic41 kafka_2.11-2.3.0] bin/kafka-topics.sh --list --zookeeper localhost:2181
其他节点 产生数据测试
[root@elastic42 kafka_2.11-2.3.0] bin/kafka-console-producer.sh --broker-list 192.168.7.42:9092 --topic testtopic --producer-property security.protocol=SASL_PLAINTEXT --producer-property sasl.mechanism=PLAIN

另一个节点  消费者查看数据测试
[root@elastic43 kafka_2.11-2.3.0]# bin/kafka-console-consumer.sh --bootstrap-server 192.168.7.43:9092 --topic testtopic --consumer-property security.protocol=SASL_PLAINTEXT --consumer-property sasl.mechanism=PLAIN --from-beginning

#######################并没有什么卵用的分割线######################

报错信息集合

https://blog.csdn.net/zsyoung/article/details/100102551

大屌哥文档
https://blog.csdn.net/qq_31547771/article/details/100585535

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,928评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,192评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,468评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,186评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,295评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,374评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,403评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,186评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,610评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,906评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,075评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,755评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,393评论 3 320
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,079评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,313评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,934评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,963评论 2 351