我在Ubuntu机器上安装了Cassandra 2.0.11。
日志记录配置是默认的。日志文件的位置在
中/var/log/cassandra/
此外,日志文件已处于旋转模式。
如何配置要压缩的日志文件? 所以它不会消耗大量的磁盘存储空间。
答案 0 :(得分:1)
对于Cassandra 2.0及之前的
如果你从这里跟随docs,你可能已经看到了压缩命令。默认情况下,logrotate将使用gzip压缩旋转的文件。man page表示您还可以设置compresscmd
和compressext
以使用您自己的压缩应用程序(即zip)。您可以将自己的压缩脚本放在一起。
示例:
/var/log/cassandra/output.log {
size 1k
copytruncate
create
compress
compresscmd /bin/bzip2
compressext .bz2
rotate 4
}
对于Cassandra 2.1及更高版本
根据documentation,您应该使用fileNamePattern
或rollingPolicy
结束zip
中的gz
。就像在example这里一样。
Cassandra文档,在第二个链接上也说:
默认策略在大小超过后滚动system.log文件 20MB。档案以zip格式压缩。 Logback命名日志 文件system.log.1.zip,system.log.2.zip等。更多 信息,请参阅logback文档。
答案 1 :(得分:1)
答案仅适用于Cassandra 2.0及之前的版本。
Cassandra 2.0和之前使用log4j作为日志记录API。 它满足了以下需求:
它没有回答压缩\存档旧文件以节省存储空间的需要。
为了支持旧日志文件的zip,您需要使用 log4j-extensions (参见compress log4j log files) 如果你真的想在Cassandra中激活它,你需要执行以下操作:
显然,你做这件事的机会很小。太麻烦了。
有一个简单的解决方案:(仅适用于Linux OS)
将Cassandra配置为使用简单记录
sudo vi /etc/cassandra/log4j-server.properties
在此文件中更改以下内容:
# Add the new Appender to the rootLogger
log4j.rootLogger=INFO,stdout,F,R
# Mark the following configuration (all the RollingFileAppender)
# rolling log file
#log4j.appender.R=org.apache.log4j.RollingFileAppender
#log4j.appender.R.maxFileSize=1MB
#log4j.appender.R.maxBackupIndex=3
#log4j.appender.R.layout=org.apache.log4j.PatternLayout
#log4j.appender.R.layout.ConversionPattern=%5p [%t] %d{ISO8601} %F (line %L) %m%n
#log4j.appender.R.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
#log4j.appender.R.RollingPolicy.FileNamePattern=cassandra.%d{yyyy-MM-dd-HH}.gz
#log4j.appender.R.RollingPolicy.ActiveFileName =cassandra.log
# Edit the next line to point to your logs directory
#log4j.appender.R.File=/var/log/cassandra/cassandra.log
########################################################
# Add the new File Appender
# file appender
# Define the file appender
log4j.appender.F=org.apache.log4j.FileAppender
# Set the name of the file
log4j.appender.F.File=/var/log/cassandra/cassandra.log
# Define the layout for file appender
log4j.appender.F.layout=org.apache.log4j.PatternLayout
log4j.appender.F.layout.conversionPattern=%5p [%t] %d{ISO8601} %F (line %L) %m%n
现在Cassandra只记录一个文件而不是旋转它。下一步...
配置logrotate守护程序以处理日志文件
如果你真的想知道什么是logrotate:Understanding logrotate utility
执行以下操作:
sudo vi /etc/logrotate.d/cassandra
将以下数据添加到文件中:
/var/log/cassandra/cassandra.log {
daily
rotate 50
size 100M
copytruncate
compress
delaycompress
missingok
notifempty
create 644 cassandra cassandra
}
就是这样。从现在开始,logrotate将处理您的日志文件,并使整体存储空间不超过5GB。
如果您想更改存储空间大小,请根据需要配置 rotate 和 size 。