前言
最近发现 kafka
服务 /var/log/kafka/audit/hdfs/spool
的 ranger
审计目录假脱机日志过多,过大。这里整理并记录一下解决方案。
问题现象
kafka
服务 /var/log/kafka/audit/hdfs/spool
日志过多。
-rw-r--r-- 1 kafka kafka 149654711 Mar 6 06:38 spool_kafka_20220305-0639.44.log
-rw-r--r-- 1 kafka kafka 150847877 Mar 7 06:43 spool_kafka_20220306-0644.01.log
-rw-r--r-- 1 kafka kafka 156952900 Mar 8 06:44 spool_kafka_20220307-0648.57.log
-rw-r--r-- 1 kafka kafka 158264048 Mar 9 06:47 spool_kafka_20220308-0649.44.log
-rw-r--r-- 1 kafka kafka 183659969 Mar 10 06:50 spool_kafka_20220309-0652.54.log
问题原因
当为 Kafka
启用 Ranger
审计时,当写入 HDFS
失败时,审计日志数据会在本地磁盘上假脱机。
我们的 Ranger
服务和 Kafka
服务的相关配置如下:
Ranger
Kafka
那么为什么写入 HDFS
失败呢,通过查看上下文发现 ranger 没有写入 /ranger/audit
文件的权限。
解决方案
CDP 环境解决如下:
Kafka 服务
-> 操作
-> Create Ranger kafka plugins audit Directory
然后重启 Kafka
服务。
如果环境不为 CDP 环境:
实际上就是创建 Ranger
服务对应的 HDFS Audit
目录,并对 /ranger/audit/kafka
目录赋予正确的权限(所属用户 和 读写权限),使得 Kafka
能够正常写入审计数据到 HDFS
即可。
再重启 Kafka
服务。
参考文章:
- https://github.com/apache/ranger/blob/master/plugin-kafka/scripts/install.properties#L65
- https://community.wandisco.com/s/article/Known-Issue-Using-Apache-Kafka-with-Apache-Ranger