删除Kafka/log旧文件安全吗



我的云服务器中有Kafka服务器实例,由3个代理、3个zk和12个连接工作者组成。正如我们所知,Kafka主文件夹由bin、config和log组成。我想问一下,如果我想确保磁盘大小的安全,删除日志文件夹中的旧server.log、connect.log和zookeeper_gc.log文件是否安全?如果是,那么我如何定期删除/压缩它(例如每天或每周(?

要回答您的第一个问题,可以删除旧的Kafka日志文件。只有当您想追溯历史日志时,才可以使用这些日志。

对于第二个,您可以检查/config文件夹下的log4j属性文件。默认情况下,Kafka提供DailyRollingAppender,您可以将其更改为自己喜欢的RollingAppander。。

默认kafka log4j属性中的代码段。参考https://github.com/apache/kafka/blob/trunk/config/log4j.properties

log4j.appender.kafkaAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.kafkaAppender.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.kafkaAppender.File=${kafka.logs.dir}/server.log
log4j.appender.kafkaAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.kafkaAppender.layout.ConversionPattern=[%d] %p %m (%c)%n

您可以像下面这样更新RollingAppender,它将保留最多10个25MB的文件,因此永远不会占用超过250MB的空间。

log4j.appender.kafkaAppender=org.apache.log4j.RollingFileAppender
log4j.appender.kafkaAppender.File=${kafka.logs.dir}/server.log
log4j.appender.kafkaAppender.MaxFileSize=25MB
log4j.appender.kafkaAppender.MaxBackupIndex=10
log4j.appender.kafkaAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.kafkaAppender.layout.ConversionPattern=[%d] %p %m (%c)%n

请注意,在上面的日志属性文件中有几个appender(参考上面的链接(,您必须相应地更新每个appender的设置。

Kafka使用log.cleanup.policy配置属性来定义清理策略。此外,它还使用log.dretention.check.interval.ms配置属性作为定期日志检查之间的间隔。因此,以上两个属性将允许以所需的间隔清理旧日志。

以下是更多详细信息供您参考:https://jaceklaskowski.gitbooks.io/apache-kafka/content/kafka-log-cleanup-policies.html

最新更新