Centos 7.6安装kafka配置SASL_PLAINTEXT加密操作
1、概述
Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 Kafka®用于构建实时数据管道和流应用程序。它具有水平可伸缩性,容错性,快速快速性,可在数千家公司中投入生产。
2、环境准备
系统环境:CentOS Linux release 7.6.1810
kafka版本:kafka_2.11-2.4.0
Java版本:java version “1.8.0_121”
zookeeper版本:zookeeper-3.4.11
3、安装包准备
kafka官方下载地址:kafka安装包下载地址
点击下载即可:
zookeeper官方下载地址:zookeeper安装包下载地址
点击下载即可:
4、开始安装
4.1、检查环境,具体操作如下:
[root@matser ~]# cat /etc/hosts
[root@matser ~]# cat /etc/redhat-release
[root@matser ~]# java -version
4.2、解压kafka和zookeeper安装包
[root@matser ~]# cd /opt/software/
[root@matser software]# tar -xvf kafka_2.11-2.4.0.tgz
[root@matser software]# zookeeper-3.4.11.tar.gz
[root@matser software]# ll kafka zookeeper
4.3、安装配置zookeeper信息
4.3.1、进入解压后的zookeeper文件夹中,找到zookeeper的配置文件,这里更改配置文件名称之后使用zookeeper默认配置信息。
[root@matser software]# pwd
[root@matser software]# cd zookeeper
[root@matser software]# ll
[root@matser software]# cd conf
[root@matser software]# mv zoo_sample.cfg zoo.cfg
[root@matser conf]# vim zoo.cfg
1 # The number of milliseconds of each tick
2 tickTime=2000
3 # The number of ticks that the initial
4 # synchronization phase can take
5 initLimit=10
6 # The number of ticks that can pass between
7 # sending a request and getting an acknowledgement
8 syncLimit=5
9 # the directory where the snapshot is stored.
10 # do not use /tmp for storage, /tmp here is just
11 # example sakes.
12 dataDir=/tmp/zookeeper
13 # the port at which the clients will connect
14 clientPort=2181
15 # the maximum number of client connections.
16 # increase this if you need to handle more clients
17 #maxClientCnxns=60
18 #
19 # Be sure to read the maintenance section of the
20 # administrator guide before turning on autopurge.
21 #
22 # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
23 #
24 # The number of snapshots to retain in dataDir
25 #autopurge.snapRetainCount=3
26 # Purge task interval in hours
27 # Set to "0" to disable auto purge feature
28 #autopurge.purgeInterval=1
4.3.2、启动zookeeper服务。
[root@matser conf]# cd ../bin/
[root@matser bin]# pwd
[root@matser bin]# ./zkServer.sh start
[root@matser bin]# jps
到此,zookeeper服务已经正常启动,安装完成。
4.4、安装配置kafka信息
4.4.1、进入解压后的kafka文件夹中,找到kafka的配置文件。
[root@matser bin]# cd /opt/software/kafka
[root@matser kafka]# pwd
[root@matser kafka]# ll
[root@matser kafka]# cd config/
4.4.2、修改kafka的配置文件。
[root@matser config]# vim server.properties
添加修改以下内容:
#使用SASL_PLAINTEXT加密配置
listeners=SASL_PLAINTEXT://192.168.226.130:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
super.users=User:admin
#zookeeper连接配置信息
zookeeper.connect=192.168.226.130:2181
4.4.3、在kafka存放配置文件的目录下添加kafka的server和client加密配置文件。
4.4.3.1、添加kafka_server_jaas.conf配置文件
[root@matser config]# pwd
/opt/software/kafka/config
[root@matser config]# vim kafka_server_jaas.conf
编辑该文件,添加如下内容:
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin"
user_admin="admin"
user_alice="alice";
};
4.4.3.2、添加kafka_client_jaas.conf配置文件
[root@matser config]# pwd
/opt/software/kafka/config
[root@matser config]# vim kafka_client_jaas.conf
编辑该文件,添加如下内容:
KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin";
};
4.4.4、在kafka存放配置文件的目录下修改kafka的producer和consumer配置文件。
[root@matser config]# vim producer.properties
编辑producer.properties文件,添加如下内容并修改kafka连接信息:
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
[root@matser config]# vim consumer.properties
编辑producer.properties文件,添加如下内容并修改kafka连接信息:
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
4.4.5、修改kafka启动文件以及生产者消费者命令工具配置文件。
4.4.5.1、修改kafka启动文件。
[root@matser config]# cd ../bin/
[root@matser bin]# pwd
/opt/software/kafka/bin
[root@matser bin]# ll
[root@matser bin]# vim kafka-server-start.sh
添加如下配置内容,注意该变量引入的配置文件路径信息:
export KAFKA_OPTS="-Djava.security.auth.login.config=/opt/software/kafka/config/kafka_server_jaas.conf"
4.4.5.2、修改kafka生产者和消费者命令行工具文件。
[root@matser bin]# vim kafka-console-producer.sh
[root@matser bin]# vim kafka-console-consumer.sh
添加如下配置内容,注意该变量引入的配置文件路径信息:
export KAFKA_OPTS="-Djava.security.auth.login.config=/opt/software/kafka/config/kafka_client_jaas.conf"
4.4.6、启动kafka服务。
[root@matser bin]# pwd
/opt/software/kafka/bin
[root@matser bin]# ./kafka-server-start.sh ../config/server.properties >/dev/null 2>&1 &
可以查看启动日志:
[root@matser bin]# cd ../logs/
[root@matser logs]# pwd
/opt/software/kafka/logs
[root@matser logs]# ll
[root@matser logs]# tail -f server.log
到此,kafka服务已经正常启动,安装完成。
5、测试使用
5.1、创建topic
[root@matser bin]# pwd
/opt/software/kafka/bin
[root@matser bin]# ./kafka-topics.sh --create --zookeeper 192.168.226.130:2181 --replication-factor 1 --partitions 1 --topic sasltopic
5.2、查看topic列表
[root@matser bin]# ./kafka-topics.sh --list --zookeeper 192.168.226.130:2181
5.3、查看topic详细信息
[root@matser bin]# ./kafka-topics.sh --describe --zookeeper 192.168.226.130:2181 --topic sasltopic
5.4、开启topic生产者
[root@matser bin]# ./kafka-console-producer.sh --broker-list 192.168.226.130:9092 --topic sasltopic --producer.config ../config/producer.properties
5.5、开启topic消费者
[root@matser bin]# ./kafka-console-consumer.sh --bootstrap-server 192.168.226.130:9092 --topic sasltopic --from-beginning --consumer.config ../config/consumer.properties
5.6、添加topic其他用户读写权限信息
这里添加一个新的用户kafkaConsumer01,该用户对sasltopic有读写权限,添加权限操作如下:
[root@matser bin]# ./kafka-acls.sh --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=192.168.226.130:2181 --add --allow-principal User:kafkaConsumer01 --operation Read --operation Write --topic sasltopic
5.7、查看topic权限信息
[root@matser bin]# ./kafka-acls.sh --authorizer-properties zookeeper.connect=192.168.226.130:2181 --list --topic sasltopic