log4j appender身份验证

smdnsysy  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(340)

我知道我可以使用log4j-kafka appender从使用log4j的应用程序向apachekafka发送日志消息。例如,

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

这里描述的是:如何使用kafka0.8log4j appender
我正在运行kafka 0.9,它启用了kerberos。有没有办法让log4j appender对kafka进行身份验证?某种服务帐户?
在运行log4j appender之前,有没有方法让运行java程序的机器通过kerberos对kafka集群进行身份验证?
如果这不起作用,有没有办法通过机器将写权限授予未经验证的制作者(并且仍然需要对使用者进行kerberos身份验证)?

f5emj3cl

f5emj3cl1#

kafka是开源的,为什么不检查一下代码,找出哪些属性与kerberos相关,以及如何使用它们呢?
快速查看“ Backbone.js ”,即。https://github.com/apache/kafka/blob/trunk/log4j-appender/src/main/java/org/apache/kafka/log4jappender/kafkalog4jappender.java 提示您必须附加jaas配置文件,并指定要在该文件中使用的“上下文”,以便kafka客户机可以使用标准java安全库。如果自定义kerberos配置文件不在标准位置(即。 /etc/krb5.conf ).
因此,最终的问题是理解jaas,找出要设置的kafka和/或log4j属性。
而在谷歌上,只需点击几下就可以得到一个教程——比如Kafka的那篇文章。

yhived7q

yhived7q2#

如果您查看kafka 0.9源代码,就会发现kafkalog4jappender不支持kerberos身份验证,尽管它通常是为kafka生产者和消费者添加的。
kerberos支持只添加到版本0.10中的kafkalog4jappender中。
简单看一下代码,创建一个扩展kafkalog4jappender并为kerberos支持添加必要位的自定义appender似乎很简单。

相关问题