linux搭建zookeeper和kafka 并添加SASL/PLAIN

前言

生产环境需要用到kafka(集群),测试没有相对应的环境,所以在测试环境机器上搭建,话不多说,直接上货

准备安装包

使用zookeeper的版本是zookeeper-3.4.10
kafka 版本:kafka_2.12-2.1.1,当然,其他版本也都是适配,版本适配就好。
搭建的系统为:linux
百度网盘链接:链接:
链接: zookeeper3.4.10-kafka_2.12-2.1.1提取码: najr

搭建zookeeper

tar -xvf zookeeper-3.4.10.tar.gz
解压完成之后是这个目录
在这里插入图片描述
cd 进去
在这里插入图片描述
配置zookeeper的配置文件

1、如果是嵌入式zookeeper(kafka自带的zookeeper)

修改/usr/local/kafka/config/zookeeper.properties文件,添加如下配置
下面展示一些 内联代码片

authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
jaasLoginRenew=3600000
requireClientAuthScheme=sasl
zookeeper.sasl.client=true

2、如果是非嵌入式zookeeper(单机安装的zookeeper服务)

修改/usr/local/zookeeper/conf/zoo.cfg文件,添加和上面一样的配置

authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
jaasLoginRenew=3600000
requireClientAuthScheme=sasl
zookeeper.sasl.client=true

二、创建jaas文件
在zookeeper的安装目录下的conf目录下创建zk_jaas.conf文件,并编辑内容

嵌入式zookeeper目录:/usr/local/kafka/config/zk_jaas.conf

单机zookeeper目录:/usr/local/zookeeper/conf/zk_jaas.conf

Server {
   org.apache.zookeeper.server.auth.DigestLoginModule required
   username="admin"
   password="admin"
   user_admin="admin";
};

Client {
       org.apache.zookeeper.server.auth.DigestLoginModule required
       username="admin"
       password="admin";
};

user_admin="admin"的含义是user_username=“password”,添加一个用户名为admin,密码为admin的认证用户,用户名和密码可以自己定义。

三、配置zookeeper客户端环境变量
因为如果要连接zookeeper的话是需要通过SASL认证的,所以需要配置环境变量,这里的环境变量主要是使用到了zk_jaas.conf文件中的Client配置,会在连接时使用用户名和密码。

然后启动zookeeper的服务:
在这里插入图片描述
然后验证一下:
/usr/local/zookeeper/bin/zkCli.sh -server {hostname}:{port}
在这里插入图片描述
链接成功!

安装kafka

解压安装包:tar -xvf kafka_2.12-2.1.1.tgz
在这里插入图片描述
在这里插入图片描述
1、config 目录下的 server.properties 文件 进行修改。 我的做法是保持 源文件不动 又复制了 一份

在复制上面进行改动 server-sasl.properties 修改文件
下面展示一些 内联代码片

 
# 添加下面的配置  ip和端口改成自己需要
listeners=SASL_PLAINTEXT://xx.xx.xx.xx:8123
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN
 
 

2、
在config目录添加kafka_server_jaas.conf 文件 此文件是服务端 设置用户名 和密码

KafkaServer {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="admin"
    password="admin"
    user_admin="admin";
};

其中 Kafka 定义了关键字KafkaServer字段用于指定服务端登录配置。该配置通过org.apache.
org.apache.kafka.common.security.plain.PlainLoginModule由指定采用PLAIN 机制, 定义了两个用户, 用户通
过usemame 和password 指定该代理与集群其他代理初始化连接的用户名和密码, 通过“ user_ "
为前缀后接用户名方式创建连接代理的用户名和密码,例如, user_admin = "admin” 是指
用户名为admin, 密码为admin

3、在config目录添加kafka_client_jaas.conf

KafkaClient {
        org.apache.kafka.common.security.plain.PlainLoginModule required
        username="admin"
        password="admin";
};

4、修改目录/kafka_2.12-1.1.1/bin 下的 kafka-server-start.sh文件 。 我的做法也是复制出来一份 ,然后进行修改

kafka-server-start-saal.sh 添加以下文件

if [ "x$KAFKA_OPTS"  ]; then
    export KAFKA_OPTS="-Djava.security.auth.login.config=/usr/local/kafka_2.12-1.1.1/config/kafka_server_jaas.conf"
fi

5、修改目录kafka_2.12-1.1.1/bin 下的 kafka-console-producer.sh 和 kafka-console-consumer.sh 文件

也是 都各自复制一份 在复制上面进行修改

if [ "x$KAFKA_OPTS"  ]; then
    export KAFKA_OPTS="-Djava.security.auth.login.config=/usr/local/kafka_2.12-1.1.1/config/kafka_client_jaas.conf"
fi

6、kafka中server.properties的配置

# The id of the broker. This must be set to a unique integer for each broker.
broker.id=0

############################# Socket Server Settings #############################

# The address the socket server listens on. It will get the value returned from
# java.net.InetAddress.getCanonicalHostName() if not configured.
#   FORMAT:
#     listeners = listener_name://host_name:port
#   EXAMPLE:
#     listeners = PLAINTEXT://your.host.name:9092
#listeners=PLAINTEXT://:9092

# 添加下面的配置  ip和端口改成自己需要
listeners=SASL_PLAINTEXT://0.0.0.0:9092
advertised.listeners=SASL_PLAINTEXT://ip:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN



# Hostname and port the broker will advertise to producers and consumers. If not set,
# it uses the value for "listeners" if configured.  Otherwise, it will use the value
# returned from java.net.InetAddress.getCanonicalHostName().
#advertised.listeners=PLAINTEXT://your.host.name:9092

到此为止 kafka的 SASL/PLAIN 认证 就添加完成了

开始验证

我这里使用idea 来进行验证
在这里插入图片描述
在这里插入图片描述
idea 插件在这里就不过多阐述了,请大家自由搭建自己的环境吧!!!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当然可以,下面是安装ZookeeperKafka的详细教程: 1. 安装Zookeeper: 1. 在终端中运行以下命令安装Zookeeper: ``` sudo apt update sudo apt install zookeeperd ``` 2. 安装完成后,Zookeeper将自动启动并在后台运行。 2. 配置Zookeeper: 1. 进入Zookeeper的配置目录: ``` cd /etc/zookeeper/conf ``` 2. 复制示例配置文件: ``` sudo cp zoo_sample.cfg zoo.cfg ``` 3. 使用文本编辑器(如nano或vim)打开配置文件: ``` sudo nano zoo.cfg ``` 4. 修改以下配置项: ``` dataDir=/var/lib/zookeeper ``` 5. 保存并关闭文件。 3. 启动Zookeeper: 1. 在终端中运行以下命令启动Zookeeper服务: ``` sudo systemctl start zookeeper ``` 2. 检查Zookeeper的状态: ``` sudo systemctl status zookeeper ``` 如果状态显示为"active (running)",则表示Zookeeper已成功启动。 4. 安装Kafka: 1. 在终端中运行以下命令安装Kafka: ``` sudo apt update sudo apt install kafka ``` 2. 安装完成后,Kafka将自动启动并在后台运行。 5. 配置Kafka: 1. 进入Kafka的配置目录: ``` cd /etc/kafka ``` 2. 使用文本编辑器(如nano或vim)打开配置文件: ``` sudo nano server.properties ``` 3. 修改以下配置项: ``` listeners=PLAINTEXT://localhost:9092 advertised.listeners=PLAINTEXT://your_server_ip:9092 ``` 将"your_server_ip"替换为你的服务器IP地址。 4. 保存并关闭文件。 6. 启动Kafka: 1. 在终端中运行以下命令启动Kafka服务: ``` sudo systemctl start kafka ``` 2. 检查Kafka的状态: ``` sudo systemctl status kafka ``` 如果状态显示为"active (running)",则表示Kafka已成功启动。 现在你已经成功安装和配置了ZookeeperKafka。你可以继续进行Kafka的使用和相关开发。如果需要更多详细的配置和使用信息,请参考官方文档或其他教程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值