kafka维护问题总结

Kafka操做日志的清理方法

Kafka0.8版本长时间运行过程当中,在kafka_2.8.0-0.8.0/logs目录下产生了大量的kafka-request.log.*server.log.*文件,其中*表明日期和时间,好比kafka-request.log.2014-12-08-03server.log.2014-12-06-03,这些文件对磁盘空间的消耗很是大,须要按期备份或者清理。目前没有发现kafka自身提供了这些操做日志备份或者清理的方法,须要用户本身实现。linux

1.1 更改日志输出级别

kafka0.8版本中,config/log4j.properties中日志的级别设置的是TRACE,在长时间运行过程当中产生的日志大小吓人,因此若是没有特殊需求,强烈建议将其更改为INFO级别。具体修改方法以下所示,将config/log4j.properties文件中最后的几行中的TRACE改为INFO,修改前以下所示:vim

log4j.logger.kafka.network.RequestChannel$=TRACE, requestAppenderbash

log4j.additivity.kafka.network.RequestChannel$=falsespa

 

#log4j.logger.kafka.network.Processor=TRACE, requestAppender操作系统

#log4j.logger.kafka.server.KafkaApis=TRACE, requestAppender.net

#log4j.additivity.kafka.server.KafkaApis=false日志

log4j.logger.kafka.request.logger=TRACE, requestAppenderserver

log4j.additivity.kafka.request.logger=falsecrontab

 

log4j.logger.kafka.controller=TRACE, controllerAppenderkafka

log4j.additivity.kafka.controller=false

 

log4j.logger.state.change.logger=TRACE, stateChangeAppender

log4j.additivity.state.change.logger=false

修改后以下所示:

log4j.logger.kafka.network.RequestChannel$=INFO, requestAppender

log4j.additivity.kafka.network.RequestChannel$=false

 

#log4j.logger.kafka.network.Processor=INFO, requestAppender

#log4j.logger.kafka.server.KafkaApis=INFO, requestAppender

#log4j.additivity.kafka.server.KafkaApis=false

log4j.logger.kafka.request.logger=INFO, requestAppender

log4j.additivity.kafka.request.logger=false

 

log4j.logger.kafka.controller=INFO, controllerAppender

log4j.additivity.kafka.controller=false

 

log4j.logger.state.change.logger=INFO, stateChangeAppender

log4j.additivity.state.change.logger=false

1.2 按期备份删除日志

备份操做日志的方式是按期拷贝操做日志到指定大容量存储设备,而后将其删除。我在项目中采起的方式是直接清理过时操做日志,方法很是简单,利用linux操做系统提供的crontab功能,按期清理操做日志,方法以下:

/etc/crontab文件中添加删除操做日志的语句,而后执行crontab -f /etc/crontab命令便可,个人/etc/crontab文件以下所示,语句的含义是每4天在23:59执行清理操做:

[root@h10p11 logs]# vim /etc/crontab 

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

 

# For details see man 4 crontabs

 

# Example of job definition:

# .---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  |  .---------- day of month (1 - 31)

# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * user-name command to be executed

59 23 */4 * * rm -fr /root/kafka/kafka_2.8.0-0.8.0/logs/*-*-*

直接修改/etc/crontab文件重启机器不用重复设置。

相关文章
相关标签/搜索