Linux部署zookeeper和kafka(用户权限)

3,007 阅读3分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第25天,点击查看活动详情

部署zookeeper、kafka(用户权限)

一、 服务器资源

服务名称:Linux服务器

IP:[请查看资源分配文档]

操作系统:CentOS 6.9 x64

二、zookeeper安装

2.1、zookeeper下载

下载地址:mirror.bit.edu.cn/apache/zook…

image.png

image.png

2.2、将压缩包放到 tools目录下并解压

apache-zookeeper-3.5.9-bin.tar.gz上传到/opt/tools目录下,解压到/opt/app目录下

# cd /opt/tools

# tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz -C /opt/app/

# cd /opt/app/

目录改名

# mv apache-zookeeper-3.5.9-bin/ zookeeper

2.3、zookeeper配置

# cd /opt/app/zookeeper/conf

# cp zoo_sample.cfg zoo.cfg

编辑修改zoo.cfg文件

# vi zoo.cfg

添加以下内容:

#配置data dir
dataDir=/opt/app/zookeeper/data

#配置jetty启动端口(默认占用8080)
admin.serverPort=8888

2.4、zookeeper启动、关闭、重启

# cd /opt/app/zookeeper

# ./bin/zkServer.sh start

服务启动无误如图:

image.png

服务关闭命令:

# ./bin/zkServer.sh start

服务重启命令:

# ./bin/zkServer.sh restart

2.5、配置防火墙

启动2181端口

# vi /etc/sysconfig/iptables

添加以下内容:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 2181 -j ACCEPT

重启防火墙

# service iptables restart

三、kafka安装

3.1、kafka下载

下载地址:mirror.bit.edu.cn/apache/kafk…

image.png

image.png

3.2、将压缩包放到 tools目录下并解压

kafka_2.13-2.7.0.tgz上传到/opt/tools目录下,解压到/opt/app目录下

# cd /opt/tools

# tar -zxvf kafka_2.13-2.7.0.tgz -C /opt/app/

# cd /opt/app/

目录改名

# mv kafka_2.13-2.7.0/ kafka

3.3、kafka配置

# cd /opt/app/kafka/conf

编辑修改server.properties文件

# vi server.properties

添加以下内容:

#配置kafka的logs路径
log.dirs=/opt/app/kafka/logs

#zookeeper的连接地址
zookeeper.connect=localhost:2181

#配置远程连接
listeners=PLAINTEXT://ip:9092
advertised.listeners=PLAINTEXT://ip:9092

注:以上ip替换为linux服务器的ip

3.4、kafka启动、关闭

# cd /opt/app/kafka

# ./bin/kafka-server-start.sh ./config/server.properties

后台启动命令:

# nohup ./bin/kafka-server-start.sh ./config/server.properties 1>/dev/null 2>&1 &

服务关闭命令:

# ./bin/kafka-server-stop.sh

3.5、配置防火墙

启动9092端口

# vi /etc/sysconfig/iptables

添加以下内容:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 9092 -j ACCEPT

重启防火墙

# service iptables restart

3.6、添加用户权限SASL/PLAIN(非必需)

3.6.1.添加sasl权限配置:
# cd /opt/app/kafka

复制一份server.properties文件:

# cp config/server.properties config/server-sasl.properties

# vi config/server-sasl.properties

添加内容:

#配置kafka的logs路径
log.dirs=/opt/app/kafka/logs

#zookeeper的连接地址
zookeeper.connect=localhost:2181

#配置远程连接
listeners=SASL_PLAINTEXT://ip:9092     #(注意已修改为SASL_PLAINTEXT)
advertised.listeners=SASL_PLAINTEXT://ip:9092

#配置用户名和密码
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN
3.6.2.新增kafka_server_jaas.conf 文件:
# vi config/kafka_server_jaas.conf

添加内容:

KafkaServer {
    org.apache.kafka.common.security.plain.PlainLoginModule required

    username="kafka"
    password="kafka12qw!@P@ssw0rd"
    
    user_kafka="kafka12qw!@P@ssw0rd"
    user_kafkaUser="kafka12qw!@P@ssw0rd";
};
3.6.3.新增kafka_client_jaas.conf 文件:
# vi config/kafka_client_jaas.conf

添加内容:

KafkaClient {
        org.apache.kafka.common.security.plain.PlainLoginModule required

        username="kafkaUser"
        password="kafka12qw!@P@ssw0rd";
};
3.6.4.复制一份kafka-server-start.sh文件:
# cp bin/kafka-server-start.sh bin/kafka-server-start-sasl.sh

# vi bin/kafka-server-start-sasl.sh

添加内容:

#配置sasl
if [ "x$KAFKA_OPTS"  ]; then
    export KAFKA_OPTS="-Djava.security.auth.login.config=/opt/app/kafka/config/kafka_server_jaas.conf"
fi
3.6.5.复制一份kafka-console-producer.sh 和 kafka-console-consumer.sh文件:
# cp bin/kafka-console-producer.sh bin/kafka-console-producer-sasl.sh

# vi bin/kafka-console-producer-sasl.sh

添加内容:

#配置sasl
if [ "x$KAFKA_OPTS"  ]; then
    export KAFKA_OPTS="-Djava.security.auth.login.config=/opt/app/kafka/config/kafka_client_jaas.conf"
fi
# cp bin/kafka-console-consumer.sh bin/kafka-console-consumer-sasl.sh

# vi bin/kafka-console-consumer-sasl.sh

添加内容:

#配置sasl
if [ "x$KAFKA_OPTS"  ]; then
    export KAFKA_OPTS="-Djava.security.auth.login.config=/opt/app/kafka/config/kafka_client_jaas.conf"
fi
3.6.6.kafka启动、关闭
# cd /opt/app/kafka

# ./bin/kafka-server-start-sasl.sh ./config/server-sasl.properties

后台启动命令:

# nohup ./bin/kafka-server-start-sasl.sh ./config/server-sasl.properties 1>/dev/null 2>&1 &

服务关闭命令:

# ./bin/kafka-server-stop.sh
3.6.7.kafka测试(生产、消费)

创建个Topic:(Test)

# cd /opt/app/kafka/bin

# ./kafka-topics.sh  --zookeeper localhost:2181 --create --topic Test  --partitions 1 --replication-factor 1

启动生产者(生产信息):

# ./kafka-console-producer-sasl.sh --broker-list ip:9092 --topic Test --producer-property security.protocol=SASL_PLAINTEXT --producer-property sasl.mechanism=PLAIN

生产信息:

image.png

启动消费者(消息信息):

# ./kafka-console-consumer-sasl.sh --bootstrap-server ip:9092 --topic Test --consumer-property security.protocol=SASL_PLAINTEXT --consumer-property sasl.mechanism=PLAIN --from-beginning

消费信息:

image.png

3.6.7.kafka tool客户端连接
  • 连接得服务器 image.png

  • 使用SASL连接 image.png

  • 高级配置 image.png

  • 带账号密码

image.png

好了,以上就是linux部署zookeeper和kafka(用户权限)的全过程了,就是这样了!!!^_^

今天就先到这里了,溜了溜了溜了!!!^_^

image.png