将日志从kafka连接器推送到端口

时间:2017-09-21 11:19:56

标签: java apache-kafka-connect

从自定义kafka连接接收器连接器有没有办法将所有日志推送到端口或我们需要编写自定义日志appender来处理相同的?

我想分两步完成任务(如果不能直接实现):

1)将所有kafka connect分布式日志写入本地目录中的日志文件 2)从日志文件

发布端口上的日志

那么,有没有办法编写所有kafka连接日志(启动和连接建立消息)以及应用程序/业务逻辑的日志?

1 个答案:

答案 0 :(得分:1)

Kafka Connect使用Log4J,因此任何具有所需日志记录的界面都将通过它。看起来你好previously realised that :)

使用SocketAppender对于Kafka Connect来说非常简单。

以下是我将其添加到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^�'�t@org.apache.kafka.connect.runtime.isolation.DelegatingClassLoaderpppt<Registered loader: sun.misc.Launcher$AppClassLoader@764c12b6tmainpwN 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^�'�'t@org.apache.kafka.connect.runtime.isolation.DelegatingClassLoaderppptDAdded 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。