一、安装jdk1.8
此步骤省略
二、下载kafka
下载链接: Apache Kafka
本次安装的版本为:kafka_2.13-2.8.2
版本说明:
2.13 Scala 版本
2.8.2 kafka版本
本次安装的kafka为 kafka2.* 版本的最后一个版本,注册中心为Zookeeper。
kafka3.*版本注册中心改变
三、下载zookeeper并安装
此步骤省略
四、安装配置kafka
1.上传文件到安装目录
2.解压两个文件
cd /data/software/
tar -zxvf kafka_2.13-2.8.2.tgz
tar -zxvf zookeeper-3.4.9.tar.gz
3.配置zookeeper
cd /data/software/zookeeper-3.4.9/conf
vi zoo.cfg
# 文件清空,把下面配置写入文件
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper
dataLogDir=/tmp/zookeeper/log
clientPort=2181
# 上面的配置一般都是配置好的,下面的配置与加密相关
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
requireClientAuthScheme=sasl
jaasLoginRenew=3600000
zookeeper.sasl.client=true
访问加密
- 配置加密文件 zk_server_jaas.conf
注:文件中不能有备注
cd /data/software/zookeeper-3.4.9/conf
vi zk_server_jaas.conf
#文件内容
#username和password 必填,意思为账号admin 密码admin-2019
#user_* ,*为用户名,等于号后面的为对应的密码
Server {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-2019"
user_kafka="kafka-2019"
user_producer="prod-2019";
};
从kafka的libs文件夹中copy 三个文件到zk的libs文件夹下
版本根据kafka的版本有所不同,自行选择
kafka-clients-2.8.2.jar
lz4-java-1.7.1.jar
snappy-java-1.1.8.1.jar
- 启动命令中带上加密的配置文件
```bash
# 在 zkEnv.sh 中加上下面一行 (测试未成功)
SERVER_JVMFLAGS=" -Djava.security.auth.login.config=/data/software/zookeeper-3.4.9/conf/zk_server_jaas.conf"
#或者在zkServer.sh的启动命令上加上 (亲测有效)
"-Djava.security.auth.login.config=/data/software/zookeeper-3.4.9/conf/zk_server_jaas.conf"
cd /data/software/zookeeper-3.4.9/bin
#启动zk 后台启动
./zkServer.sh start
配置kafka
- 配置server.properties
注:找到相应的配置的地方,没有的新增,有的按需改
broker.id=0 # 集群需要在其他机器配置不同的id
log.dirs=/data/software/kafka_2.13-2.8.2/kafka-logs #日志位置
zookeeper.connect=192.168.0.62:2181 #配置zk的地址
listeners=SASL_PLAINTEXT://192.168.0.62: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
- 配置密码文件
注:文件中不能有备注
cd /data/software/kafka_2.13-2.8.2/config
vi kafka_server_jaas.conf
#文件内容
#KafkaServer为服务端的账号密码
#username、password为broker之间的账号密码必填
#user_* *为普通用户,等于号后面为对应的密码
#Client 是和zookeeper的客户端账号密码,需要和上面zk服务端的账号密码保持一致
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-2019"
user_admin="admin-2019"
user_producer="prod-2019"
user_consumer="cons-2019";
};
Client {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="kafka"
password="kafka-2019";
};
- 修改启动参数kafka-server-start.sh
#在文件加入KAFKA_OPTS 变量
export KAFKA_OPTS=" -Djava.security.auth.login.config=/data/software/kafka_2.13-2.8.2/config/kafka_server_jaas.conf"
- 启动kafka
#在kafka的home目录下执行 在log的文件server.log查看是否有报错
nohup bin/kafka-server-start.sh config/server.properties &