笔者之前启动kafka connect进程后,发现过一段时间,日志太大。

启动kafka connect的命令如下:

cd  /home/tidb/confluent-4.1.1
./bin/connect-distributed -daemon ./etc/schema-registry/connect-avro-distributed.properties  

但是会在如下目录生成一个connectDistributed.out文件,并且随着时间流逝,会变得很大。

root@ubuntu-100:/home/tidb/confluent-4.1.1/logs# ls -lh
total 1.3M
-rw-r--r-- 1 root root 280M Sep 21 15:15 connectDistributed.out
-rw-r--r-- 1 root root 363K Sep 21 15:15 schema-registry.log
-rw-r--r-- 1 root root 318K Sep 21 15:15 schemaRegistry.out

因此笔者希望能够配置成Daily Rolling的形式,每天生成一个输出文件。

通过如下命令,查看到了kafka connect的配置文件路径:

root@ubuntu-100:/home/tidb/confluent-4.1.1/bin# ./connect-distributed -h
[2018-09-21 15:14:51,314] INFO Kafka Connect distributed worker initializing ... (org.apache.kafka.connect.cli.ConnectDistributed:63)
[2018-09-21 15:14:51,330] INFO WorkerInfo values: 
	jvm.args = -Xms256M, -Xmx2G, -XX:+UseG1GC, -XX:MaxGCPauseMillis=20, -XX:InitiatingHeapOccupancyPercent=35, -XX:+ExplicitGCInvokesConcurrent, -Djava.awt.headless=true, -Dcom.sun.management.jmxremote, -Dcom.sun.management.jmxremote.authenticate=false, -Dcom.sun.management.jmxremote.ssl=false, -Dkafka.logs.dir=./../logs, -Dlog4j.configuration=file:./../etc/kafka/connect-log4j.properties
	jvm.spec = Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM, 1.8.0_171, 25.171-b11

从上面的输出-Dkafka.logs.dir=./../logs可以看出生成的日志文件应该在bin目录同级的logs目录,事实上确实是这样的。从Dlog4j.configuration=file:./../etc/kafka/connect-log4j.properties可以看出log4j的配置文件应该在bin目录同级的etc目录下的子目录kafka中,配置文件名字为connect-log4j.properties

connect-log4j.properties配置文件中加入如下内容:

log4j.rootLogger=INFO, kafkaConnectAppender

log4j.appender.kafkaConnectAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.kafkaConnectAppender.DatePattern='.'yyyy-MM-dd
log4j.appender.kafkaConnectAppender.File=/home/tidb/confluent-4.1.1/logs/kafka-connect.log
log4j.appender.kafkaConnectAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.kafkaConnectAppender.layout.ConversionPattern=[%d] %p %m (%c)%n

log4j.logger.org.apache.zookeeper=ERROR
log4j.logger.org.I0Itec.zkclient=ERROR
log4j.logger.org.reflections=ERROR

然后重启kafka connect(kafka connect似乎没有重启命令,笔者通过kill connectDistributed进程,然后再启动的),可以看到在/home/tidb/confluent-4.1.1/logs目录下面确实有kafka-connect.log文件生成,等跨天的时候应该就有按天命名的日志文件了。

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐