2017-09-21 79 views
1

從定製卡夫卡一個端口連接信宿連接是有辦法來推動所有日誌到一個端口或者我們需要編寫一個自定義日誌的appender來處理一樣嗎?推日誌,以從卡夫卡連接器

我會想在2步拆分任務(如果它不能直接實現):

1)寫的所有卡夫卡分佈式日誌連接到一個日誌文件的本地目錄 2)發佈日誌從日誌文件

所以一個端口上,是否有寫所有的卡夫卡連接日誌(啓動和連接建立消息)以及應用/業務邏輯日誌的方法嗎?

+0

你能解釋一下爲什麼你想這樣做嗎?從它的聲音中,你想從連接任務中獲取日誌並將它們放在其他地方,是嗎?什麼是「其他地方」?這聽起來像你想連接本身的事,而不是自定義連接 –

+0

我要發佈卡夫卡連接器應用程序日誌,以通過logstash暴露的端口的東西。所以,我可以容納我所有的卡夫卡連接日誌中搜索彈性 –

回答

1

卡夫卡Connect使用Log4J,所以用你想要將通過該記錄任何接口。它看起來像你0123':)

使用SocketAppender很容易與Kafka連接。

下面是一個例子配置時,我將其添加到作品在我的etc/kafka/connect-log4j.properties

log4j.rootLogger=INFO, server 
log4j.appender.server=org.apache.log4j.net.SocketAppender 
log4j.appender.server.Port=4512 
log4j.appender.server.RemoteHost=localhost 
log4j.appender.server.ReconnectionDelay=10000 

後來,當我啓動連接:

$ ./bin/connect-distributed ./etc/kafka/connect-distributed.properties 

,並在單獨的會議上,我看到這個使用netcat的:

$ nc -l -k 4512 
��sr!org.apache.log4j.spi.LoggingEvent��#t�? 
ZmdcCopyLookupRequiredZndcLookupRequiredJ  timeStampLcategoryNametLjava/lang/String;LlocationInfot#Lorg/apache/log4j/spi/LocationInfo;LmdcCopytLjava/util/Hashtable;Lndcq~LrenderedMessageq~L 
throwableInfot+Lorg/apache/log4j/spi/ThrowableInformation;xp^�'�[email protected]erpppt<Registered loader: [email protected] pxysr!org.apache.log4j.spi.LoggingEvent��#t�? 
ZmdcCopyLookupRequiredZndcLookupRequiredJ  timeStampLcategoryNametLjava/lang/String;LlocationInfot#Lorg/apache/log4j/spi/LocationInfo;LmdcCopytLjava/util/Hashtable;Lndcq~LrenderedMessageq~L 
throwableInfot+Lorg/apache/log4j/spi/ThrowableInformation;xp^�'�'[email protected]erppptDAdded plugin 'org.apache.kafka.connect.file.FileStreamSinkConnector'tmainpwN pxysr!org.apache.log4j.spi.LoggingEvent��#t�? 
ZmdcCopyLookupRequiredZndcLookupRequiredJ  timeStampLcategoryNametLjava/lang/String;LlocationInfot#Lorg/apache/log4j/spi/LocationInfo;LmdcCopytLjava/util/Hashtable;Lndcq~LrenderedMessageq~L 

然後您需要運行log4j logstash plugin來解碼這個。


您可能想要閱讀關於sending Log4J to Logstash;那裏的答案是使用Filebeat。

+0

感謝您的答覆!基於上述鏈接,以下是註釋 - 我們的建議是,當前的Log4j輸入用戶在其應用程序中停止使用log4j的SocketAppender。爲了安全傳輸log4j日誌,用戶應該配置log4j將日誌寫入磁盤並使用Filebeat轉發日誌信息到Logstash' 將日誌寫入文件然後在docker容器的情況下傳輸到logstash可能是一個挑戰。 –