Log4j 附加程序身份验证
Log4j appender authentication
我知道我可以使用 log4j kafka appender 将日志消息从使用 log4j 的应用程序发送到 Apache Kafka。例如,
log4j.appender.KAFKA_HIVE_AUDIT=kafka.producer.KafkaLog4jAppender
log4j.appender.KAFKA_HIVE_AUDIT.BrokerList=sandbox.hortonworks.com:6667
log4j.appender.KAFKA_HIVE_AUDIT.Topic=hive_audit_log
log4j.appender.KAFKA_HIVE_AUDIT.layout=org.apache.log4j.PatternLayout
log4j.appender.KAFKA_HIVE_AUDIT.layout.ConversionPattern=%d{ISO8601} %-5p [%t]: %c{2} (%F:%M(%L)) - %m%n
此处描述:how to use Kafka 0.8 Log4j appender
我是 运行 Kafka 0.9,它启用了 kerberos。有没有办法让 log4j appender 对 Kafka 执行身份验证?某种服务帐户?
有没有办法让 java 程序所在的机器 运行 在 运行 log4j appender 之前通过 kerberos 向 Kafka 集群进行身份验证?
如果这不起作用,有没有办法通过机器在 kerberized Kafka 上向未经身份验证的生产者授予写入权限? (并且仍然需要对消费者进行 kerberos 身份验证)?
Kafka 是开源的,您为什么不直接检查代码 并弄清楚哪些属性与 Kerberos 相关以及如何使用它们?
快速查看 "trunk" 即 https://github.com/apache/kafka/blob/trunk/log4j-appender/src/main/java/org/apache/kafka/log4jappender/KafkaLog4jAppender.java 提示您必须附加 JAAS 配置文件,并指定要使用的 "context"在该文件中,以便 Kafka 客户端可以使用标准 Java 安全库。如果自定义 Kerberos 配置文件不在标准位置(即 /etc/krb5.conf
),则可选择提供自定义 Kerberos 配置文件。
所以最后是理解 JAAS 的问题——并找出要设置的 Kafka and/or Log4J 属性。
而对于 Google,教程总是点击几下即可 -- 例如kerberized_kafka post.
如果你查看 Kafka 0.9 source,你会发现 KafkaLog4jAppender 不支持 Kerberos 身份验证,尽管它是为 Kafka 添加的生产者和消费者一般。
Kerberos 支持仅添加到版本 0.10 中的 KafkaLog4jAppender。
快速浏览一下代码,创建一个扩展 KafkaLog4jAppender 并添加 Kerberos 支持所需位的自定义附加程序似乎很简单。
我知道我可以使用 log4j kafka appender 将日志消息从使用 log4j 的应用程序发送到 Apache Kafka。例如,
log4j.appender.KAFKA_HIVE_AUDIT=kafka.producer.KafkaLog4jAppender
log4j.appender.KAFKA_HIVE_AUDIT.BrokerList=sandbox.hortonworks.com:6667
log4j.appender.KAFKA_HIVE_AUDIT.Topic=hive_audit_log
log4j.appender.KAFKA_HIVE_AUDIT.layout=org.apache.log4j.PatternLayout
log4j.appender.KAFKA_HIVE_AUDIT.layout.ConversionPattern=%d{ISO8601} %-5p [%t]: %c{2} (%F:%M(%L)) - %m%n
此处描述:how to use Kafka 0.8 Log4j appender
我是 运行 Kafka 0.9,它启用了 kerberos。有没有办法让 log4j appender 对 Kafka 执行身份验证?某种服务帐户?
有没有办法让 java 程序所在的机器 运行 在 运行 log4j appender 之前通过 kerberos 向 Kafka 集群进行身份验证?
如果这不起作用,有没有办法通过机器在 kerberized Kafka 上向未经身份验证的生产者授予写入权限? (并且仍然需要对消费者进行 kerberos 身份验证)?
Kafka 是开源的,您为什么不直接检查代码 并弄清楚哪些属性与 Kerberos 相关以及如何使用它们?
快速查看 "trunk" 即 https://github.com/apache/kafka/blob/trunk/log4j-appender/src/main/java/org/apache/kafka/log4jappender/KafkaLog4jAppender.java 提示您必须附加 JAAS 配置文件,并指定要使用的 "context"在该文件中,以便 Kafka 客户端可以使用标准 Java 安全库。如果自定义 Kerberos 配置文件不在标准位置(即 /etc/krb5.conf
),则可选择提供自定义 Kerberos 配置文件。
所以最后是理解 JAAS 的问题——并找出要设置的 Kafka and/or Log4J 属性。
而对于 Google,教程总是点击几下即可 -- 例如kerberized_kafka post.
如果你查看 Kafka 0.9 source,你会发现 KafkaLog4jAppender 不支持 Kerberos 身份验证,尽管它是为 Kafka 添加的生产者和消费者一般。
Kerberos 支持仅添加到版本 0.10 中的 KafkaLog4jAppender。
快速浏览一下代码,创建一个扩展 KafkaLog4jAppender 并添加 Kerberos 支持所需位的自定义附加程序似乎很简单。