2016-04-22 75 views
0

我知道我可以通過使用log4j kafka appender從使用log4j到Apache Kafka的應用程序發送日誌消息。例如,Log4j appender身份驗證

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

我跑卡夫卡0.9具有啓用了Kerberos。有沒有辦法讓log4j appender對Kafka執行身份驗證?某種服務帳戶?

在運行log4j appender之前,有沒有辦法讓運行java程序的機器通過Kerberos通過卡夫卡集羣進行身份驗證?

如果這樣不起作用,有沒有辦法通過計算機爲kerberized Kafka上未經身份驗證的生產者授予寫權限? (並且仍然需要消費者使用Kerberos認證)?

回答

0

如果你看卡夫卡0.9source,你會看到,Kerberos身份驗證不被KafkaLog4jAppender,儘管它是卡夫卡生產者和消費者普遍增加支持的事實。

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

快速瀏覽一下代碼,它看起來很容易創建一個自定義appender,它擴展了KafkaLog4jAppender併爲Kerberos支持添加了必要的位。

-1

卡夫卡是開源的,你爲什麼不只是檢查代碼制定出其性質與Kerberos和如何使用它們?

快速瀏覽一下「主幹」,即https://github.com/apache/kafka/blob/trunk/log4j-appender/src/main/java/org/apache/kafka/log4jappender/KafkaLog4jAppender.java暗示,您必須將JAAS配置文件,並指定在該文件中要使用的「上下文」,使卡夫卡客戶可以使用標準的Java安全庫。如果不在標準位置(即/etc/krb5.conf),可選擇提供自定義的Kerberos配置文件。

所以最終它是理解JAAS的問題 - 並找出要設置的Kafka和/或Log4J屬性。

對於Google來說,教程總是隻需點擊幾下 - 例如,那kerberized_kafka後。

+0

由於該問題專門針對Kafka 0.9,所以這個答案不正確,因此會進行投票。 –

+0

如果它帶給你任何喜悅,那麼歡迎你。但我不確定你的「gittilly correct」答案會得到任何反饋...... –