kafka使用 SASL/PLAIN 认证服务端/客户端配置

使用 SASL/PLAIN 认证

1、配置kafka server端(每个broker)

vi $KAFKA_HOME/server.properties

listeners=SASL_PLAINTEXT://x-x-x-x:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN

在$KAFKA_HOME路径下新建JAAS文件。

vi kafka_server_jaas.conf

KafkaServer {
 org.apache.kafka.common.security.plain.PlainLoginModule required
 username="kafka"
 password="kafka#secret"
 user_kafka="kafka#secret"
 user_alice="alice#secret"
}

这个配置定义了2个用户(kafka 和 alice)。在KafkaServer部分,username和password是broker用于初始化连接到其他的broker,在这个例子中,kafka用户为broker间的通讯,useruserName定义了所有连接到broker和broker验证的所有的客户端连接包括其他broker的用户密码。(转自链接:http://orchome.com/270) 另,useruserName必须配置kafka用户,否则报错。博客http://wangzzu.github.io/2016/07/29/sasl-plain-kafka/和一些问答中都反应此问题。

JAAS文件作为每个broker的jvm参数,在kafka-server-start.sh脚本中增加如下配置。

vi $KAFKA_HOME/bin/kafka-server-start.sh

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

2、配置kafka client端 PLAIN机制下kafka生产者/消费者如何生产/消费

第一种,console

在$KAFKA_HOME路径下新建JAAS文件。

vi kafka_client_jaas.conf

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

KafkaClient部分,username和password是客户端用来配置客户端连接broker的用户,在这个例子中,客户端使用kafka 用户连接到broker。

修改consuer和producer的配置文件(配置注意空格不然报错)

在$KAFKA_HOME/config/consumer.properties和$KAFKA_HOME/config/producer.properties里分别加上如下配置

security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN

在启动consumer和producer时,分别添加jvm参数。

vi kafka-console-consumer.sh/kafka-console-producer.sh($KAFKA_HOME/bin目录下)

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

produce

kafka-console-producer.sh --broker-list x.x.x.x:9092 --topic perf --producer.config /usr/local/kafka_0.10/config/producer.properties

consume 只支持新的消费方式--bootstrap-server

不报错 --bootstrap-server

kafka-console-consumer.sh  --bootstrap-server x.x.x.x:9092  --topic perf --from-beginning --consumer.config /usr/local/kafka_0.10/config/consumer.properties --new-consumer

报错 --zookeeper

kafka-console-consumer.sh --zookeeper x.x.x.x:21818/kafka --topic perf  --consumer.config /usr/local/kafka_0.10/config/consumer.properties

第二种,java客户端消费

运行jar包的服务器的指定路径下必须有kafka_client_jaas.conf文件

在程序中添加如下配置

System.setProperty("java.security.auth.login.config", "/tmp/kafka_client_jaas.conf"); //配置文件路径
props.put("security.protocol", "SASL_PLAINTEXT");
props.put("sasl.mechanism", "PLAIN");

本文参考了: kafka使用SASL验证 http://orchome.com/270

Kafka JAAS Plain SASL 安全认证配置 http://blog.csdn.net/geting/article/details/52044055

Kafka 0.10.0 SASL/PLAIN身份认证及权限实现 http://wangzzu.github.io/2016/07/29/sasl-plain-kafka/

时间: 2024-10-06 11:53:06

kafka使用 SASL/PLAIN 认证服务端/客户端配置的相关文章

kafka使用SASL/PLAIN认证

SASL/PLAIN 是一种简单的 username/password 认证机制, 通常与 TLS 加密一起使用, 用于实现安全认证. Kafka 提供了一个默认的 SASL/PLAIN 实现, 可以做扩展后在生产环境使用. 1 配置kafka server端(每个broker) [email protected]:/opt/kafka/kafka1/kafka_2.12-0.10.2.1/config# vi server.properties listeners=SASL_PLAINTEXT

zabbix 服务端 代理服务端 客户端 配置

Zabbix 监控 zabbix 服务端 代理服务 客户端 配置 以及web前端图形监控配置 zabbix-server zabbix-proxy zabbix-agent 一.准备环境 node1 node2 node3 三台虚拟机1.Ip 分别为192.168,20.10 192.168,20.20 192.168,20.302.Node1 准备环境 LAMP 2.1. yum -y install php php-mysql httpd3.安装mysql 3.1.tar -xf mysql

NFS服务端+客户端配置

一.Server端配置 1.下载rpcbind和nfs #yum install -y rpcbind nfs-utils 2.创建共享文件并授权 创建共享文件夹 #mkdir /server-nfs 创建测试文件 #touch /server-nfs/test.txt #echo "Test file">/server-nfs/test.txt 分配权限 #chown -R nfsnobody.nfsnobody /server-nfs/ 3.配置文件并挂载 写配置文件 #ec

kafka sasl/plain安全认证

1.SASL认证机制版本支持 SASL/GSSAPI (Kerberos) - starting at version 0.9.0.0SASL/PLAIN - starting at version 0.10.0.0SASL/SCRAM-SHA-256 and SASL/SCRAM-SHA-512 - starting at version 0.10.2.0 2.以下采用SASL/PLAIN进行认证操作 zookeeper配置 1)修改zoo.cfg增加两行配置: authProvider.1=

CnetOS 6.6 rsync 的服务端和客户端配置

CentOS 6.6 rsync 的服务端和客户端配置 基本信息 系统版本 主机名 IP地址 角色 CentOS  6.6 backup 10.0.0.10 rsync服务端 CentOS  6.6 lamp01 10.0.0.8 rsync客户端 CentOS  6.6 lnmp02 10.0.0.9 rsync客户端 服务端配置 创建rsync配置文件,并写入配置内容(默认rsync文件是不存在的,需要创建) [[email protected] ~]# touch/etc/rsyncd.c

shadow服务端、客户端配置流程

服务端 系统环境 CentOS 7 64位,由于系统自带python,shadowsocks服务端我们选择python版,过程如下 yum install python-setuptools && easy_install pip pip install shadowsocks 第一步 安装pip包管理工具,如果之前安装过,可以跳过 第二步 安装shadowsocks 第三步 新建全局配置文件 /etc/shadowsocks.json,内容格式如下 { "server"

java自动化测试成长日记-之CVS客户端和服务端安装和部署1:CVS服务端的配置和基本使用

CVS服务端的配置和基本使用 在做java自动化测试集成环境搭建的时候,无论怎样,你都会选择一个源代码管理工具,如:SVN,CVS,VSS等:但如果你使用Eclipse工具,建议你使用CVS源代码管理工具,因为它本身就自带了CVS客户端插件,可以直接使用(具体使用情况,可参考:java自动化测试成长日记-之CVS客户端和服务端安装和部署2:CVS客户端的配置和基本使用章节): 首先,你需要下载:cvsnt-2.5.03.2151安装包.msi,服务端安装软件(可在百度里面搜索找到,相应的资源).

NFS(NFS介绍,NFS服务端和客户端配置)

一.NFS服务介绍 NFS是 Network File system的缩写 分为2.3.4三个版本,2和3由sun公司起草开发,4.0开始netapp公司参与并主导开发 NFS数据传输基于RPC协议: 应用场景:A,B,C三台机器上需要保证被访问到的文件是一样的,A共享数据出来,B和C分别取挂载A共享的数据目录,从而B和C访问到的数据和A上的一致. NFS原理图:(NFS服务不监听任何端口,但是RPC服务中的模块,rpcbind默认监听111端口,) 二.NFS服务端和客户端配置 [[email

rsync服务端和客户端配置自动化配置脚本

系统版本CentOS release 6.9 (Final)2.6.32-696.el6.x86_64 x86_64 rsync 服务端IP:172.16.1.41 计算机名:backuprsync客户端IP:172.16.1.31 计算机名:nfs 服务器配置: [[email protected] scripts]# cat backup_server.sh #!/bin/bash export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/