【ranger】CDP环境 更新 ranger 权限策略会发生低概率丢失权限策略的解决方法

一、问题描述:

我们的 kafka 服务在更新(添加) ranger 权限时,会有极低的概率导致 MM2 同步服务报错,报错内容 Not Authorized。但是查看 ranger 权限是赋予的,并且很早配置的权限策略也会报错。

相关组件版本:

  • CDP : 7.1.7
  • KAFKA: 2.5.0
  • RAGNER: 2.0.0
  • MM2:2.5.0

二、问题原因:

当高频更新 Ranger 策略时,Ranger plugin 处理 delta update 的时候有一定几率触发丢失 Kafka 权限策略的问题,导致个别权限没有被正确加载。

即:我们在 ranger WEB UI 中看到我们的策略确实是已经配置,但是实际上落实到各个服务的策略缓存时发生了丢失。

默认的缓存策略存放位置是在 /var/lib/ranger/ 目录下,这里我以 kafka 为例,kafkaranger 缓存策略在:

bash 复制代码
ls /var/lib/ranger/kafka/policy-cache/
kafka_cm_kafka.json kafka_cm_kafka_roles.json kafka_cm_kafka_tag.json 

其中的 kafka_cm_kafka.json 就是存放我们实际的缓存策略的文件。

三、解决方案:

关闭 Ranger 组件的增量更新,确认可以规避由此 bug 导致的权限丢失问题

四、操作步骤:

1.更改策略更新配置 (改为全量更新)

1.集群 -> Ranger -> 配置 -> 搜索conf/ranger-admin-site.xml_role safety_valve

-> 点击 "以 XML 格式查看",插入如下内容:

bash 复制代码
<property><name>ranger.admin.supports,policy.deltas</name><value>false</value></property>
<property><name>ranger.admin.supports.tag.deltas</name><value>false</value></property>

2.修改 ranger admin JVM 内存

CM -> 集群 -> Ranger-> 配置 -> 搜索 ranger admin max heap_size

-> 修改配置 8G

  1. 重启 ranger admin 和 mm2 服务。

四、如何获取 Ranger Policy HTTP 请求

CM ->ranger-> 配置 -> 日志 -> INFO改为 DEBUG

查看日志:

http 请求如下:

bash 复制代码
http://mn.test.com:6080/service/plugins/secure/policies/download/cm kafka?supportsPolicyDeltas=true&pluginld=kafka@kafka-03.test.com-cm_kafka&clusterName=Bigdata

查看返回结果:

bash 复制代码
curl -o rangerdata -u "admin:P@sswOrd2021" "1.5.4.5:6080/service/plugins/secure/policies/download/cm_kafka?supportsPolicyDeltas=true&pluginld=kafka@kafka-03.test.com/cm kafka&clusterName=Bigdata"

## 查看大小
du -sh rangerdata 

五、查看性能

查看修改配置后,ranger 的性能。如:堆内存使用率,非堆内存提交等等。

问题解决!

相关推荐
激流丶2 小时前
【Kafka 实战】Kafka 如何保证消息的顺序性?
java·后端·kafka
天冬忘忧8 小时前
Kafka 工作流程解析:从 Broker 工作原理、节点的服役、退役、副本的生成到数据存储与读写优化
大数据·分布式·kafka
工业甲酰苯胺10 小时前
Python脚本消费多个Kafka topic
开发语言·python·kafka
B站计算机毕业设计超人11 小时前
计算机毕业设计SparkStreaming+Kafka新能源汽车推荐系统 汽车数据分析可视化大屏 新能源汽车推荐系统 汽车爬虫 汽车大数据 机器学习
数据仓库·爬虫·python·数据分析·kafka·数据可视化·推荐算法
谷大羽12 小时前
Kafka Stream实战教程
spring boot·后端·中间件·kafka·stream
求积分不加C12 小时前
Kafka怎么发送JAVA对象并在消费者端解析出JAVA对象--示例
java·分布式·kafka·linq
GDDGHS_14 小时前
“Kafka面试攻略:核心问题与高效回答”
分布式·面试·kafka
宋发元14 小时前
Go语言使用 kafka-go 消费 Kafka 消息教程
golang·kafka·linq
꧁薄暮꧂15 小时前
kafka中的数据清理策略
数据库·分布式·kafka
hong16168815 小时前
大数据技术Kafka详解:消息队列(Messages Queue)
大数据·分布式·kafka