【问题标题】:Log4j appender authenticationLog4j appender 身份验证
【发布时间】:2016-04-22 21:04:40
【问题描述】:

我知道我可以使用 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 执行身份验证?某种服务帐号?

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

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

【问题讨论】:

    标签: java logging log4j apache-kafka


    【解决方案1】:

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

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

    快速浏览一下代码,创建一个自定义附加程序似乎很简单,该附加程序扩展了 KafkaLog4jAppender 并添加了 Kerberos 支持所需的位。

    【讨论】:

      【解决方案2】:

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

      快速查看“主干”,即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 的帖子。

      【讨论】:

      • 投反对票,因为这个问题专门针对 Kafka 0.9,这使得这个答案不正确。
      • 如果它能给你带来任何快乐,那么不客气。但我不确定你的“gittilly正确”答案是否会得到任何反馈......
      猜你喜欢
      • 2015-02-02
      • 2018-02-24
      • 2015-04-29
      • 2010-10-05
      • 2013-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-15
      相关资源
      最近更新 更多