kafka集群三、增加密码验证
系列导航
五、kafka集群__consumer_offsets副本数修改
上一篇博客教会大家如何搭建kafka消息队列的集群,这一章增加kafka集群的密码验证,增加集群的安全性。
注:上一篇博客https://www.cnblogs.com/yclh/p/14769664.html
--------zoopkeeper改造---------
1、 修改zoopkeeper的配置文件
cd /opt/zookeeper/zookeeper-3.4.14/conf
vi zoo.cfg
增加如下内容
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
requireClientAuthScheme=sasl
jaasLoginRenew=3600000
增加新的配置文件
vi zk_server_jaas.conf
增加如下内容
Server {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin"
user_kafka="kafka-user"
user_producer="prod-pwd";
user_consumer="cons-user";
};
2、jar包引入
Zookeeper部署根目录下创建一个路径for_sasl
cd /opt/zookeeper/
mkdir for_sasl
将如下这些jar包放入for_sasl 中
kafka-clients-0.10.0.1.jar
lz4-1.3.0.jar
slf4j-api-1.7.21.jar
slf4j-log4j12-1.7.21.jar
snappy-java-1.1.2.6.jar
修改配置文件
cd /opt/zookeeper/zookeeper-3.4.14/bin
vi zkEnv.sh
添加如下内容
for i in /opt/zookeeper/for_sasl/*.jar;
do CLASSPATH="$i:$CLASSPATH"
done
SERVER_JVMFLAGS=" -Djava.security.auth.login.config=/opt/zookeeper/zookeeper-3.4.14/conf/zk_server_jaas.conf "
以上操作所有节点都做
3、启动zookeeper
cd /opt/zookeeper/zookeeper-3.4.14/bin
#启动服务(3台都需要操作)
./zkServer.sh start
#检查服务器状态
./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Mode: follower #他是否为领导
------------------kafka改造------------------------------
新增配置文件:kafka_server_jaas.conf
1、修改kafka的配置文件
cd /opt/kafka/kafka_2.11-2.1.1/config
vi kafka_server_jaas.conf
添加如下内容:
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin"
user_admin="admin"
user_testProducer="handleP-gzwl" #预留用户begin 注:这里用户名是testProducer 密码是handleP-gzwl
user_testConsumer="handleC-gzwl"
user_testAProducer="oilStatP-gzwl"
user_testAConsumer="oilStatC-gzwl" #预留用户end
user_producer="prod-pwd"
user_consumer="cons-user";
};
Client {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="kafka"
password="kafka-user";
};
2、配置server.properties
vi server.properties
添加如下部分 注意不同主机不同的地址 192.168.0.104、192.168.0.105、192.168.0.106
listeners=SASL_PLAINTEXT://192.168.0.104:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
allow.everyone.if.no.acl.found=true
原有的:advertised.listeners=PLAINTEXT://192.168.0.104:9092
也要改成SASL_PLAINTEXT
这两行注销掉
#inter.broker.protocol.version=0.9.0
#log.message.format.version=0.9.0
3、创建启动脚本
cd /opt/kafka/kafka_2.11-2.1.1/bin
cp kafka-server-start.sh kafka-server-start-sasl.sh
vi kafka-server-start-sasl.sh
将最后一行 exec $base_dir/kafka-run-class.sh $EXTRA_ARGS kafka.Kafka "$@"
改为
exec $base_dir/kafka-run-class.sh $EXTRA_ARGS -Djava.security.auth.login.config=/opt/kafka/kafka_2.11-2.1.1/config/kafka_server_jaas.conf kafka.Kafka "$@"
4、 启动kafka:
kafka-server-start-sasl.sh -daemon /opt/kafka/kafka_2.11-2.1.1/config/server.properties
5、关闭脚本
kafka-server-stop.sh
------------------kafka常用工具类改造------------------------------
1、创建kafka_client_jaas.conf文件
cd /opt/kafka/kafka_2.11-2.1.1/config
vi kafka_client_jaas.conf
添加如下内容:
KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="producer"
password="prod-pwd";
};
2、加入环境变量
cd /opt/kafka/kafka_2.11-2.1.1/config
vi admin_sasl.config
添加如下内容:
security.protocol = SASL_PLAINTEXT
sasl.mechanism = PLAIN
测试:
kafka-console-producer.sh --broker-list 192.168.0.104:9092 --topic handle
3、 使kafka-console-producer.sh好用
cd /opt/kafka/kafka_2.11-2.1.1/config
vi kafka_handle_p_jaas.conf
KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="handleProducer"
password="handleP-gzwl";
};
cd /opt/kafka/kafka_2.11-2.1.1/bin
cp kafka-console-producer.sh kafka-console-producer-sasl.sh
vi kafka-console-producer-sasl.sh
将 exec $(dirname $0)/kafka-run-class.sh kafka.tools.ConsoleProducer "$@"
改成 exec $(dirname $0)/kafka-run-class.sh -Djava.security.auth.login.config=/opt/kafka/kafka_2.11-2.1.1/config/kafka_handle_p_jaas.conf kafka.tools.ConsoleProducer "$@"
vi producer.config
添加如下内容:
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
测试:
kafka-console-producer-sasl.sh --broker-list 192.168.0.104:9092 --topic handle --producer.config /opt/kafka/kafka_2.11-2.1.1/config/producer.config
3、使 kafka-consumer-groups.sh 变得好用
cd /opt/kafka/kafka_2.11-2.1.1/bin
cp kafka-consumer-groups.sh kafka-consumer-groups-sasl.sh
vi kafka-consumer-groups-sasl.sh
将最后一行 exec $(dirname $0)/kafka-run-class.sh kafka.admin.ConsumerGroupCommand "$@"
改为 exec $(dirname $0)/kafka-run-class.sh -Djava.security.auth.login.config=/opt/kafka/kafka_2.11-2.1.1/config/kafka_client_jaas.conf kafka.admin.ConsumerGroupCommand "$@"
注:这里的配置文件kafka_client_jaas.conf不通topic要用不同的用户名和密码
------------------------group监控----------------------------
超级用户可以查看所有group 注:stat是消费者的group
kafka-consumer-groups-sasl.sh --bootstrap-server SASL_PLAINTEXT://192.168.0.104:9092 --describe --group stat --command-config /opt/kafka/kafka_2.11-2.1.1/config/admin_sasl.config
4、 kafka-topics.sh不用改直接用
创建topic
kafka-topics.sh --create --zookeeper 192.168.0.104:12181 --replication-factor 2 --partitions 2 --topic test2
查看topic
kafka-topics.sh --list --zookeeper localhost:12181
或者
kafka-topics.sh --list --zookeeper 192.168.0.104:12181
查看topic的详细情况
kafka-topics.sh --describe --zookeeper 192.168.0.104:12181
指定topic查看
kafka-topics.sh --describe --zookeeper 192.168.0.104:12181 --topic handle
删除topic
kafka-topics.sh --delete --zookeeper 192.168.0.104:12181 --topic test
添加topic的partion
kafka-topics.sh --alter --topic jyzImageAllNew --zookeeper localhost:12181 --partitions 4

推荐一个适合零基础学习SQL的网站:不用安装数据库,在线轻松学习SQL!
kafka集群三、增加密码验证的更多相关文章
- Kafka 集群在马蜂窝大数据平台的优化与应用扩展
马蜂窝技术原创文章,更多干货请订阅公众号:mfwtech Kafka 是当下热门的消息队列中间件,它可以实时地处理海量数据,具备高吞吐.低延时等特性及可靠的消息异步传递机制,可以很好地解决不同系统间数 ...
- (三)kafka集群扩容后的topic分区迁移
kafka集群扩容后的topic分区迁移 kafka集群扩容后,新的broker上面不会数据进入这些节点,也就是说,这些节点是空闲的:它只有在创建新的topic时才会参与工作.除非将已有的partit ...
- kafka学习(三)-kafka集群搭建
kafka集群搭建 下面简单的介绍一下kafka的集群搭建,单个kafka的安装更简单,下面以集群搭建为例子. 我们设置并部署有三个节点的 kafka 集合体,必须在每个节点上遵循下面的步骤来启动 k ...
- kafka集群环境搭建(Linux)
一.准备工作 centos6.8和jvm需要准备64位的,如果为32位,服务启动的时候报java.lang.OutOfMemoryError: Map failed 的错误. 链接:http://pa ...
- Kafka 集群配置SASL+ACL
一.简介 在Kafka0.9版本之前,Kafka集群时没有安全机制的.Kafka Client应用可以通过连接Zookeeper地址,例如zk1:2181:zk2:2181,zk3:2181等.来获取 ...
- kafka集群及监控部署
1. kafka的定义 kafka是一个分布式消息系统,由linkedin使用scala编写,用作LinkedIn的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础 ...
- 六十一.常用组件 、 Kafka集群 、 Hadoop高可用
1.Zookeeper安装搭建Zookeeper集群并查看各服务器的角色停止Leader并查看各服务器的角色 1.1 安装Zookeeper1)编辑/etc/hosts ,所有集群主机可以相互 pin ...
- Centos7.5安装kafka集群
Tags: kafka Centos7.5安装kafka集群 Centos7.5安装kafka集群 主机环境 软件环境 主机规划 主机安装前准备 安装jdk1.8 安装zookeeper 安装kafk ...
- ELK+Kafka集群日志分析系统
ELK+Kafka集群分析系统部署 因为是自己本地写好的word文档复制进来的.格式有些出入还望体谅.如有错误请回复.谢谢! 一. 系统介绍 2 二. 版本说明 3 三. 服务部署 3 1) JDK部 ...
- Kafka【第一篇】Kafka集群搭建
Kafka初识 1.Kafka使用背景 在我们大量使用分布式数据库.分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户 ...
随机推荐
- 搭建一个简易的IPv6网络测试环境
背景 近期一个项目要求产品在IPv6网络环境部署,在此之前所有的项目网络环境都是IPv4,为了验证产品网络适配能力,需要搭建一套IPv6的网络测试环境,网上搜了很多教程,也在某东找了很多路由器,对于如 ...
- 【工具推荐】LICEcap –GIF 屏幕录制工具
介绍: LICEcap 是一款简洁易用的动画屏幕录制软件,支持导出 GIF 动画图片格式,轻量级.高质量(每帧颜色数量可超过256).使用简单,录制过程中可以随意改变录屏范围. LICEcap 非常轻 ...
- VCS用法
1.时钟频率点击,鼠标左键点击波形上升沿,中间滚轮点击,然后选择hz,就显示当前信号时钟频率. 2.窗口乱掉,找不到文件列表,右下角点击弹出选择instance. 3.bus地址查找,选择信号,然后蓝 ...
- 吉特日化MES系统--通过浏览器调用标签打印
三年来做制造行业,差不多做了近30个工厂,也由纯软件转入到了大量的硬件对接,包含厂房设计(这个目前还只是小菜鸟),硬件设计(只是提提意见),安装实施调试(软件和硬件撕逼操作),当然面向的对象也由计算机 ...
- JXNU acm选拔赛 涛涛的Party
涛涛的Party Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other) Total Subm ...
- 算法1:Fibonacci数列
斐波那契数列(Fibonacci) 一.背景介绍 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为 ...
- MyBatis 源码解析
本文源码解析针对的是 MyBatis 3.4.4 MyBatis 执行流程 第一阶段 MyBatis 在这个阶段获得 Mapper 的动态代理对象,具体逻辑如下图所示: 其中,Configuratio ...
- 【MySql】数据库_MySql基础
yum install mysql mysql -u root -p 创建数据库 create database 数据库名; 查看所有数据仓库 show databases; 删除数据库 drop d ...
- Mysql在sql中截取时间类型字段的年月日和时间
DATE_FORMAT() 函数 DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据. 下面的脚本使用 DATE_FORMAT() 函数来显示不同的格式.我们使用 NOW() 来获得当 ...
- c#中用System.Diagnostics.Process.Start(Path.GetFullPath(“vlc.exe.lnk“), url);用vlc的快捷方式打开http的url不起作用?
vlc.exe.lnk双击这个文件,能正常打开vlc,但是用System.Diagnostics.Process.Start(Path.GetFullPath("vlc.exe.lnk&qu ...