Log4j appender身份验证

时间:2016-04-22 21:04:40

标签: java logging log4j apache-kafka

我知道我可以使用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

我正在运行启用了kerberos的Kafka 0.9。有没有办法让log4j appender对Kafka执行身份验证?某种服务帐户?

在运行log4j appender之前,有没有办法让运行java程序的机器通过kerberos对Kafka集群进行身份验证?

如果这不起作用,有没有办法通过机器向kerberized Kafka上的未经身份验证的生产者授予写权限? (并且仍然需要为消费者提供kerberos身份验证)?

2 个答案:

答案 0 :(得分:0)

如果您查看Kafka 0.9 source,您会看到KafkaLog4jAppender不支持Kerberos身份验证,尽管它通常是为Kafka生产者和消费者添加的。

Kerberos支持仅添加到版本0.10中的KafkaLog4jAppender。

通过快速浏览一下代码,看起来很容易创建一个自定义appender来扩展KafkaLog4jAppender并为Kerberos支持添加必要的位。

答案 1 :(得分:-1)

Kafka是开源的,为什么不检查代码并确定哪些属性与Kerberos相关以及如何使用它们?

快速浏览" trunk"即https://github.com/apache/kafka/blob/trunk/log4j-appender/src/main/java/org/apache/kafka/log4jappender/KafkaLog4jAppender.java暗示您必须附加 JAAS配置文件,并指定哪个"上下文"在该文件中使用,以便Kafka客户端可以使用标准的Java安全库。如果它不在标准位置(即/etc/krb5.conf),也可以选择提供自定义Kerberos配置文件。

所以最后我们要理解JAAS - 并找出要设置的Kafka和/或Log4J属性。

使用Google,只需点击几下即可获得教程 - 例如那kerberized_kafka帖子。