在旋转kafka日志(kafka 0.8.1.1)的过程中,我成功地旋转了所有日志,除了kafkaserver.out。这不是由log4j处理的。在查看kafka-run-class.sh(启动java进程的脚本)之后,它会重定向到一个文件。我不能旋转文件,除非Kafka重新启动。截断它,进程就会忽略它并继续写入文件。有没有办法强制它旋转这个日志文件?谢谢。
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”文件。
1条答案
按热度按时间6vl6ewon1#
我已经写了一个c++工具叫做“rotate”来解决这个问题。源代码可以在这里找到,https://github.com/peihanw/rotate
编译并部署到$app\u home/bin/rotate后,请修改kafka-run-class.sh中的start命令,下面是我的示例:
另外,还可以配置一些类似清洁工的维护工具或脚本来压缩或删除过期的“kafkaserver.out.yyyymmddhhmmss”文件。