在linux服务器上旋转kafka 0.8日志

mcdcgff0  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(268)

在旋转kafka日志(kafka 0.8.1.1)的过程中,我成功地旋转了所有日志,除了kafkaserver.out。这不是由log4j处理的。在查看kafka-run-class.sh(启动java进程的脚本)之后,它会重定向到一个文件。我不能旋转文件,除非Kafka重新启动。截断它,进程就会忽略它并继续写入文件。
有没有办法强制它旋转这个日志文件?
谢谢。

6vl6ewon

6vl6ewon1#

我已经写了一个c++工具叫做“rotate”来解决这个问题。源代码可以在这里找到,https://github.com/peihanw/rotate
编译并部署到$app\u home/bin/rotate后,请修改kafka-run-class.sh中的start命令,下面是我的示例:

nohup $JAVA $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp $CLASSPATH $KAFKA_OPTS "$@" < /dev/null | $APP_HOME/bin/rotate -o "$CONSOLE_OUTPUT_FILE" -t 1 &

另外,还可以配置一些类似清洁工的维护工具或脚本来压缩或删除过期的“kafkaserver.out.yyyymmddhhmmss”文件。

相关问题