Ranger-Kafka插件安装,
使用Ranger0.7.0版本,集成Kafka插件到Kafka集群,
Kafka Plugin需要安装到所有的Kafka的集群节点上面。

1.登陆Kafka的安装用户

2.下载插件包

scp pub@10.43.156.193:/home/pub/ranger/ranger-0.7.0/target/ranger-0.7.0-SNAPSHOT-kafka-plugin.tar.gz .

3.解压插件包

tar -zxvf ranger-0.7.0-SNAPSHOT-kafka-plugin.tar.gz

4.修改install.properties参数如下:

COMPONENT_INSTALL_DIR_NAME=/home/kafka/kafka_2.10-0.10.1.0
POLICY_MGR_URL=http://zdh-245:6080
SQL_CONNECTOR_JAR=/usr/share/java/mysql-connector-java.jar
REPOSITORY_NAME=kafkadev
CUSTOM_USER=kafka
CUSTOM_GROUP=hadoop

5.在kafka的server.properties文件最下面添加如下内容

authorizer.class.name=org.apache.ranger.authorization.kafka.authorizer.RangerKafkaAuthorizer

6.添加config目录到kafka用户的CLASSPATH中

由于kafka启动时只指定了server.properties,否则会读取不到其他配置文件
在.profile增加如下配置:

export CLASSPATH=/home/kafka/kafka_2.10-0.10.1.0/config
source .profile

 

7.使用root用户执行安装脚本

./enable-kafka-plugin.sh

 

8.创建服务service

在RangerAdminServer里面Kafka标签下面创建名称为kafkadev的service,
service里面的Zookeeper Connect String填写zookeeper集群的IP:Port,例如:
zdh-237:2181,zdh-238:2181,zdh-239:2181

9.查看Kafka插件

在RangerAdminServer的Audit的Plugin页面里面可以看到Kafka插件,
插件kafka@zdh-237-kafkadev对应kafkadev的服务。

10.将ranger-0.7.0-SNAPSHOT-kafka-plugin拷贝到其他集群

并且重复上面的5,6,7步骤。

11.验证ranger的权限控制

在ranger-admin的users页面新建一个内部用户ANONYMOUS。
关闭all-topic策略
新建newTopic237only策略,配置ANONYMOUS用户(或者内部public组)对newTopic的所有权限,ip为10.43.159.237或者*
创建一个topic:

kafka-topics.sh --create --topic newTopic --replication-factor 3 --partitions 1 --zookeeper zdh-237:2181

开启生产者:

kafka-console-producer.sh --broker-list zdh-237:9092 --sync --topic newTopic

开启消费者:

kafka-console-consumer.sh --zookeeper zdh-237:2181 --topic newTopic --from-beginning

上述操作在10.43.159.237执行成功,在其他IP则执行失败。
由于执行kafka-console-producer.sh时,没有配置鉴权,使用的用户是ANONYMOUS(匿名用户),
会导致RangerKafkaAuthorizerd对其鉴权失败,客户端返回错误码ClusterAuthorizationFailedCode=31。

12.其他

kafka非安全模式对Ranger的策略配置要求说明:
https://community.hortonworks.com/articles/12699/ranger-and-kafka-integration-faq.html
https://cwiki.apache.org/confluence/display/RANGER/Kafka+Plugin

修改kafka的config目录下zookeeper.properties文件修改内容如下
dataDir=/home/garrison/zookeeper-3.5.1-alpha/tmp

通过log4j.properties开启ranger kafka插件的审计日志
log4j.logger.org.apache.ranger=DEBUG, authorizerAppender

版权声明:本文为felixzh原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/felixzh/p/10523067.html